# ===============================================
# Robot 1 — Simple Soccer Controller
# Student: Nancy
# ===============================================

from controller import Robot

# إعدادات أساسية
TIME_STEP = 32
MAX_SPEED = 6.28

# إنشاء الروبوت
robot = Robot()

# المحركات
left_motor = robot.getDevice("left wheel motor")
right_motor = robot.getDevice("right wheel motor")
left_motor.setPosition(float("inf"))
right_motor.setPosition(float("inf"))
left_motor.setVelocity(0.0)
right_motor.setVelocity(0.0)

# حساس الكرة (Receiver)
receiver = robot.getDevice("receiver")
receiver.enable(TIME_STEP)

# دالة تحريك
def set_speed(left, right):
    left_motor.setVelocity(left)
    right_motor.setVelocity(right)

while robot.step(TIME_STEP) != -1:
    if receiver.getQueueLength() > 0:
        message = receiver.getData()
        import struct
        angle, strength = struct.unpack("ff", message[:8])
        receiver.nextPacket()

        # إذا الكرة قدام تقريباً → امشي لقدام
        if abs(angle) < 0.2:
            set_speed(MAX_SPEED, MAX_SPEED)
        # إذا الكرة عاليسار → لف يسار
        elif angle > 0.2:
            set_speed(0.2 * MAX_SPEED, -0.2 * MAX_SPEED)
        # إذا الكرة عاليمين → لف يمين
        elif angle < -0.2:
            set_speed(-0.2 * MAX_SPEED, 0.2 * MAX_SPEED)
    else:
        # لو ما في كرة → لفيان مستمر للبحث
        set_speed(0.3 * MAX_SPEED, -0.3 * MAX_SPEED)
