Thử thách Groove Machine - Python
Thử thách Groove Machine
Trong thử thách này, bạn sẽ chia thành các đội và lập trình cho robot của mình thực hiện một điệu nhảy dựa trên kiến thức về vòng lặp của bạn. Giáo viên của bạn sẽ đặt ra giới hạn thời gian để phát triển/kiểm tra điệu nhảy và giới hạn thời gian cho độ dài của điệu nhảy. Những người không thuộc các đội thi nhảy đối kháng sẽ đánh giá các điệu nhảy và bình chọn cho đội mà họ cho là xuất sắc nhất.
Quy tắc:
- Mỗi Clawbot sẽ nhảy theo từng con một trong khu vực có kích thước 1x1 mét.
- Việc nhảy múa sẽ tiếp tục cho đến khi nút Dừng trên màn hình của Brain được nhấn để dừng dự án đang chạy.
- Cánh tay phải được nâng lên và hạ xuống.
- Móng vuốt phải mở và đóng.
- Clawbot phải rẽ trái và phải.
- Clawbot phải di chuyển về phía trước và lùi lại.
- Dự án cần phải dừng lại ngay lập tức nếu Clawbot va vào bất cứ thứ gì hoặc bị đổ. Đó là một điệu nhảy thua cuộc.
Hộp công cụ giáo viên
Việc chấm điểm cho cuộc thi này có thể được thực hiện theo nhiều cách. Một cách để tăng sự tham gia là yêu cầu học sinh quay video cuộc thi nhảy và để học sinh từ các lớp khác bình chọn cho người chiến thắng. Nếu điều đó quá tham vọng, hãy cân nhắc việc chỉ định một hội đồng giám khảo công bằng trước khi bắt đầu thử thách này hoặc mời thêm học sinh, giáo viên hoặc nhân viên khác tham gia.
Giải pháp dưới đây chỉ đơn thuần là sự kết hợp của cả ba động tác nhảy mẫu lại với nhau.
# Thư viện nhập
từ vex import *
# Bắt đầu mã dự án
while True:
arm_motor.spin_for(FORWARD, 300, DEGREES)
arm_motor.set_stopping(BRAKE)
for repeat_count in range(3):
drivetrain.turn_for(RIGHT, 90, DEGREES)
for repeat_claw in range(2):
claw_motor.spin_for(REVERSE, 90, DEGREES)
claw_motor.spin_for(FORWARD, 90, DEGREES)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
for repeat_claw in range(2):
claw_motor.spin_for(REVERSE, 90, DEGREES)
claw_motor.spin_for(FORWARD, 90, DEGREES)
wait(5, MSEC)
wait(5, MSEC)
cho repeat_count trong phạm vi(2):
arm_motor.spin_for(FORWARD, 300, DEGREES)
arm_motor.set_stopping(BRAKE)
drivetrain.turn_for(RIGHT, 90, DEGREES)
cho repeat_turn trong phạm vi(9):
drivetrain.turn_for(LEFT, 10, DEGREES)
wait(5, MSEC)
arm_motor.spin_for(REVERSE, 300, DEGREES)
wait(5, MSEC)
arm_motor.set_velocity(80, PERCENT)
drivetrain.set_turn_velocity(65, PERCENT)
cho repeat_count trong phạm vi (2):
arm_motor.spin_for(FORWARD, 300, DEGREES)
cho repeat_turn trong phạm vi (3):
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(5, MSEC)
arm_motor.spin_for(REVERSE, 300, DEGREES)
wait(5, MSEC)