30/09/2018, 18:24

Chơi trò chơi bằng cách sử dụng trực tiếp các phím điều hướng trên Python 3x thay vì L, R, U, D?

Chào mọi người !
Em có một vấn đề rất cần sự giúp đỡ … bởi bác Google cũng bó tay !
Hiện em cũng là người mới học Python, em có viết một chương trình dựa trên trò chơi 8 quân cờ!

https://scontent-sin1-1.xx.fbcdn.net/hphotos-xtp1/t31.0-8/p843x403/12140140_1721595444729077_3877386396457481594_o.jpg

Và đây là chương trình của em

https://scontent-sin1-1.xx.fbcdn.net/hphotos-xtp1/t31.0-8/p843x403/12113298_1721595484729073_6650593350768727077_o.jpg

(Em là người mới nên không post được ảnh)

Thay vì sử dụng điều khiển các quân cờ bằng cách input các ký tự L,R,U,D thì em muốn sử dụng các phím điều hướng!
VD: Ấn phím lên thì chương trình tự động dịch chuyển ô trắng lên trên, không còn kiểu nhập vào keyword then Enter nữa mà là tương tác trực tiếp !

Mong được sự chỉ dẫn và giúp đỡ của mọi người ! Em cảm ơn!
Và đây là code: https://github.com/IRisDo/FirstProject (đang cải tiến)


Dạy Nhau Học:
Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không. Còn bạn thì sao?


Mai Anh Dũng viết 20:40 ngày 30/09/2018

Em post code lên cho dễ nhìn đi em

Forum mình nhiều Python không nhiều nhỉ

Thành Phạm viết 20:26 ngày 30/09/2018

Bạn có thể search: “read key press in python” à mà game kiểu này bạn thử dùng \r để ghi đè text xem

IRis Đỗ viết 20:41 ngày 30/09/2018

đã up code rồi ạ ! code có phần nào khó hiểu e sẽ giải thích rõ hơn !

IRis Đỗ viết 20:36 ngày 30/09/2018

Cảm ơn bạn !
Mình vừa xem qua, nó không giống với cái mình cần !

Mai Anh Dũng viết 20:26 ngày 30/09/2018

Code này chạy OK chưa em?

Thành Phạm viết 20:30 ngày 30/09/2018

Bạn thử code này xem:

from msvcrt import getch

input_move = ord(getch()) 
print (input_move)

if input_move == ord('u'):
    move(0,1,2,-3,'up',SearchEmtry())
elif input_move == ord('r'):
    move(2,5,8,1,'right',SearchEmtry())
elif input_move == ord('l'):
    move(0,3,6,-1,'left',SearchEmtry())
elif input_move == ord('d'):
    move(6,7,8,3,'down',SearchEmtry())

Nếu muốn dùng mũi tên thì tìm mã số của nó

Mình không hiểu tại sao máy mình so sánh trực tiếp getch() với kí tự không được, nên phải convert hết sang mã ascii bằng ord có thể do đây là python 3, mình quen python 2 hơn

IRis Đỗ viết 20:25 ngày 30/09/2018

Không vấn đề gì a ạ ! E test thử nhiều lần rồi, nhưng đó mới là bản nền thôi e đang nâng cấp lên ! Buồn buồn a có theo down về chơi thử

IRis Đỗ viết 20:30 ngày 30/09/2018

Cảm ơn bạn rất nhiều ! Nhờ bạn mà mình tìm hiểu được nhiều thứ !
Do vấn đề điều khiển này ích có tài liệu chỉ dẫn nên mình tra google rất khó khăn, sau khi hoàn thành trò chơi của mình xong mình sẽ lập topic hướng dẫn kkkk

Thành Phạm viết 20:27 ngày 30/09/2018

sau khi hoàn thành trò chơi của mình xong mình sẽ lập topic hướng dẫn kkkk

Tuyệt vời

Bài liên quan
0