from controller import Robot

TIME_STEP = 64

robot = Robot()

# الحساسات: IR ball sensor, compass, sonar
ir_sensor = robot.getDevice("irBallSensor")
ir_sensor.enable(TIME_STEP)

compass = robot.getDevice("compass")
compass.enable(TIME_STEP)

sonar = robot.getDevice("sonar")
sonar.enable(TIME_STEP)

left_motor = robot.getDevice("left wheel motor")
right_motor = robot.getDevice("right wheel motor")
left_motor.setPosition(float('inf'))
right_motor.setPosition(float('inf'))

# سرعة الحركة
MAX_SPEED = 6.28

def move_towards_ball():
ball_value = ir_sensor.getValue()
if ball_value > 80:
# الكرة قريبة، تحرك بسرعة
left_motor.setVelocity(0.5 * MAX_SPEED)
right_motor.setVelocity(0.5 * MAX_SPEED)
else:
# ابحث عن الكرة - دوران in place
left_motor.setVelocity(0.2 * MAX_SPEED)
right_motor.setVelocity(-0.2 * MAX_SPEED)

def avoid_obstacle():
distance = sonar.getValue()
if distance < 100.0:
# قُم بتجنب العائق بالتوقف أو الرجوع قليلاً
left_motor.setVelocity(-0.3 * MAX_SPEED)
right_motor.setVelocity(-0.3 * MAX_SPEED)

while robot.step(TIME_STEP) != -1:
avoid_obstacle()
move_towards_ball()
