آرایش دفاعی

در صورتی که ربات‌ها توپ را نبینند باید در یک آرایش دفاعی قرار گیرند تا از گل خوردن یا عبور توپ جلوگیری کنند. در برنامه زیر سه نقطه در زمین تیم زرد انتخاب شده که به ترتیب (0, -0.5)، (-0.4, -0.3) و (0.4, -0.3) می‌باشد.

robot1.py
from rcj_soccer_robot import RCJSoccerRobot, TIME_STEP
from utils import *

class MyRobot1(RCJSoccerRobot):
    def run(self):
        defineVariables(self)
        while self.robot.step(TIME_STEP) != -1:
            if self.is_new_data():
                readData(self)
                if self.is_ball:
                    if self.ball_distance > 0.15:
                        move(self, self.xb, self.yb - 0.1)
                    else:
                        move(self, self.xb, self.yb)
                else:
                    move(self, 0, -0.5)

تمرین 21: برنامه آرایش دفاعی را در فایل utils.py در قالب یک تابع طوری بنویسید که با توجه به شماره ربات و فاصله ربات از هر سه نقطه انتخابی نزدیک ترین نقطه برای هر ربات انتخاب شود. برای دریافت شماره ربات می‌توانید از تابع int(robot.robot.getName()[1]) استفاده کنید.

تمرین 22: برنامه آرایش دفاعی را به گونه ای بنویسید که ربات ها هنگام رفتن به نقاط دفاعی با یکدیگر برخورد نکنند.

دیدگاه کاربران

1000 دیدگاه
4.7 (میانگین امتیاز کاربران)