Thử thách giao diện người dùng - Python

Thử thách giao diện người dùng
Trong Thử thách Giao diện người dùng, bạn sẽ lập trình Clawbot để người dùng có thể nhấn vào màn hình của Brain để điều khiển động cơ cánh tay và móng vuốt. Sau đó, bốn nút trên màn hình sẽ được sử dụng để nhặt và thay thế mười vật thể khác nhau. Thử thách này không yêu cầu Clawbot phải lái hoặc rẽ. Các đồ vật được nhặt lên và sau đó đặt lại vào cùng một vị trí trên bàn hoặc sàn nhà.
Quy tắc:
- Mỗi nút trong bốn nút chỉ được thực hiện một trong bốn hành động: mở càng, đóng càng, nâng cánh tay hoặc hạ cánh tay.
- Không được phép sử dụng Bộ điều khiển.
- Mỗi Clawbot sẽ phải nâng và đặt lại càng nhiều đồ vật càng tốt trong vòng một phút mà không được làm rơi chúng. Nên nâng và đặt lại từng vật một.
- Vòng chơi kéo dài một phút sẽ kết thúc ở mốc 1 phút làhoặcnếu có bất kỳ vật thể nào bị rơi - ngay cả khi vòng chơi chỉ mới diễn ra vài giây. Việc thả một vật sẽ khiến đội đó bị loại khỏi toàn bộ phút của vòng chơi nhưng bất kỳ điểm nào kiếm được trước khi thả vật đó đều được tính.
- Nếu tất cả các vật thể được cung cấp đã được nhấc lên trước khi vòng chơi kéo dài một phút kết thúc, các vật thể đó có thể được sử dụng lại cho đến khi hết giờ.
- Vật cần được nâng cao hơn động cơ của cánh tay trước khi đặt lại lên bàn.
- Mỗi đồ vật được cầm, nâng lên, hạ xuống và đặt lại thành công sẽ được một điểm.
- Giữa các vòng, vai trò có thể thay đổi nhưng chỉ một người dùng mỗi Clawbot có thể chơi trong mỗi vòng.
- Nhóm nào có số điểm cao nhất sau mỗi vòng sẽ chiến thắng!

Vai trò trong Thử thách:
- Chỉ nên có một người dùng (người nâng) nâng vật trong mỗi vòng nhưng các nhóm có thể đổi người dùng giữa các vòng.
- Nên có mộtđược chỉ định để tính toán sốvật thể mà mỗi Clawbot có thể nâng thành công. Mỗi đối tượng được thay thế thành công sẽ được một điểm. Sau khi thả một vật xuống, lượt của Clawbot sẽ kết thúc. Có thể chơi nhiều vòng. Bảng tính điểm được bao gồm ở đây nhưng có thể thêm các hàng cho các nhóm và vòng chơi bổ sung. Mỗi nhóm có thể sử dụng bảng điểm riêng của mình hoặc tất cả mọi người có thể ghi vào cùng một bảng. Nếu nhiều nhóm sử dụng cùng một bảng điểm, hãy viết ID Clawbot hoặc tên nhóm của từng nhóm vào cột thứ hai. Ngoài ra, người ghi điểm phải cộng điểm từ mỗi vòng vào cuối Thử thách giao diện người dùng để có tổng điểm.
- Nên có một người được giao nhiệm vụ chuyển đổi các đồ vật ra khỏi bàn: người chuyển đổi. Vì Clawbot không quay hoặc lái nên vật được nâng lên sẽ cần phải được gỡ bỏ và thay thế bằng vật mới sau mỗi lần thử.
- Nên có một người được phân công theo dõi thời gian: người bấm giờ. Mỗi vòng kéo dài một phút.
- Giáo viên phải cung cấp các đồ vật được chấp thuận cho thử thách này trước khi bắt đầu.
Mẹo dành cho giáo viên
- Nhắc nhở học sinh rằng họ chỉ được phép chạm vào màn hình của Clawbot.
- Chỉ cung cấp những đồ vật an toàn khi có thể rơi: lon hoặc chai nước rỗng, khối VEX, một mảnh chưa sử dụng từ Bộ VEX hoặc bất kỳ thứ gì khác không bị hư hỏng vĩnh viễn khi rơi hoặc nảy.
- Cho phép học sinh quan sát xem màn hình của từng Clawbot trông như thế nào. Các hình chữ nhật phải giống nhau, nhưng màu sắc của mỗi Clawbot có thể sẽ khác nhau.
- Thảo luận ý kiến của học sinh về những lựa chọn màu sắc tốt nhất trong hoặc sau thử thách.
Hộp công cụ giáo viên
Dưới đây bạn sẽ tìm thấy một ví dụ về giải pháp lập trình cho thử thách này cùng với tiêu chí đánh giá lập trình, tiêu chí đánh giá sổ tay kỹ thuật cá nhân và tiêu chí đánh giá sổ tay kỹ thuật nhóm.
- Giải pháp lập trình ví dụ
# Bắt đầu mã dự án
screen_buttons = Event()
def has_screen_buttons():
brain.screen.set_fill_color(Color.GREEN)
brain.screen.draw_rectangle(0, 0, 240, 120)
brain.screen.set_fill_color(Color.PURPLE)
brain.screen.draw_rectangle(240, 0, 480, 120)
brain.screen.set_fill_color(Color.ORANGE)
brain.screen.draw_rectangle(0, 120, 240, 240)
brain.screen.set_fill_color(Color.CYAN)
brain.screen.draw_rectangle(240, 120, 480, 240)
wait(1, SECONDS)
screen_buttons(has_screen_buttons)
while True:
screen_buttons.broadcast()
nếu brain.screen.pressing():
nếu brain.screen.x_position() < 240:
nếu brain.screen.y_position() < 120:
claw_motor.spin(FORWARD)
trong khi brain.screen.pressing():
chờ(5, MSEC)
khác:
claw_motor.spin(REVERSE)
trong khi brain.screen.pressing():
chờ(5, MSEC)
khác:
nếu brain.screen.y_position() < 120:
arm_motor.spin(FORWARD)
trong khi brain.screen.pressing():
chờ(5, MSEC)
khác:
arm_motor.spin(REVERSE)
trong khi brain.screen.pressing():
chờ(5, MSEC)
claw_motor.stop()
arm_motor.stop()
wait(5, MSEC)- Tiêu chí lập trình - Google Doc / .docx / .pdf
- Phiếu chấm điểm sổ tay kỹ thuật (Cá nhân) - Google Doc / .docx / .pdf
- Bảng điểm Sổ tay Kỹ thuật (Nhóm) - Google Doc / .docx / .pdf