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 ! :grinning:
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 :smile:

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 ! :grinning: 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?


3 Likes

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

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

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

3 Likes

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

2 Likes

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

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

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ó :smile:

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 :smile: có thể do đây là python 3, mình quen python 2 hơn :smile:

2 Likes

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 ! :grinning: Buồn buồn a có theo down về chơi thử :smiley:

1 Like

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

1 Like

:+1: Tuyệt vời :smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?