الگوریتم دروازه بان
یکی از الگوریتم های مهم در بازی الگوریتم دروازه بان است. دروازه بان باید از عبور توپ از محدوده پنالتی که با رنگ سفید مشخص شده جلوگیری کند. اما قانون مهمی در سیستم داوری این بازی وجود دارد که میگوید ربات نباید در محدوده پنالتی بیشتر از 10 ثانیه بماند. بدین ترتیب ناچاریم ربات دروازه بان را خارج از این محدوده قرار دهیم. برای نوشتن الگوریتم دروازه بان کافی است از مولفه x توپ استفاده کنیم و به ربات بگوییم به مختصات (xb, -0.55) حرکت کند. این کار باعث میشود ربات در یک خط فرضی مقابل دروازه هم راستا با توپ حرکت کند.
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:
move(self, self.xb, -0.55)
else:
move(self, 0, -0.5)
تمرین 23: برنامه دروازه بان را طوری بنویسید که ربات دروازه بان از محدوده (-0.4, 0.4) خارج نشود
تمرین 24: برنامه ای بنویسید که، ربات دروازه بان بین ربات ها بر اساس فاصله از توپ انتخاب شود. یعنی دورترین ربات نسبت به توپ همیشه به دروازه برود و از دروازه دفاع کند.




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