Ana içeriğe atla

İki Çevre Duvarını Temizle

[Sürüş yönü], [Sürüş yönü], [Yöne dön] ve [Dönüş yönü] bloklarını, Aşağı Bakış Sensörünü, Ön Bakış Sensörünü ve GPS Sensörünü kullanarak VR Robotunu, Kale Yıkıcı + oyun alanından kaleyi yıkmadan iki çevre duvarını geçecek şekilde sürmek için bir algoritma oluşturun. Duvarlardan mümkün olduğunca çok kilogram ağırlığı temizleyin. En ağır olan kazanır!

  • Castle Crasher + Playground'u seçin.
  • Sanal gerçeklik robotunu, oyun alanındaki iki çit duvarını yıkacak şekilde programlayın.
    • Robotun duvarları aşmasına yardımcı olmak için gizli aleti kullanın.
    • Aşağı Bakış sensörünü ve koşullu bir döngüyü kullanarak, VR Robot'un duvardaki bir parçayı aşmak için kırmızı sınıra doğru hareket etmesini kodlayın.
    • GPS sensörünü ve koşullu bir döngüyü kullanarak VR robotunu X ekseni boyunca belirli bir konuma yönlendirin ve bir sonraki duvar parçasını geçmeye hazırlanın.
    • Sanal gerçeklik robotunun, oyun alanındaki iki çit duvarını temizlemek için belirli sayıda tekrar eden eylemler gerçekleştirmesini sağlamak üzere bir döngü kullanarak kod yazın.

Faydalı İpuçları

  • VR Robotun duvarları yıkarken kaleye çarpmamasını sağlamak için, robotu çevredeki duvarları yıkacak şekilde yönlendirin ve robotun duvar ile kale arasına girip hareket edebileceği bir giriş oluşturun.
  • Oyun alanının kenarından düşmemek için, kırmızı sınırı algılamak üzere Aşağı Bakış sensörünü kullanın.
  • GPS sensöründen konum değerleri almak için Algılama kategorisindeki Muhabir bloklarını kullanın. 

    VEXcode, GPS konumunu ', mm cinsinden' okuyan robot bloğunun konumunu belirtir.

    VEXcode, GPS konumunu (Y, mm cinsinden' 'okuyan robot bloğunun konumunu belirtir.

    • Eşleşen Python komutu:

      gps.x_konumu(MM)
      gps.y_konumu(MM)
  • Kontrol kategorisindeki repeat until bloğunu kullanarak, VR Robot'un Boolean koşulu doğru olana kadar içerdiği blokları tekrarlamasını kodlayın. 

    Boş VEXcode 'okunana kadar tekrarla' okunana kadar tekrarla.

    • Eşleşen Python komutu:

      while condition:
      	wait(5, MSEC)