Hướng dẫn play with python - chơi với trăn

Nhằm giúp ace nâng cao kỹ năng và kiến thức lập trình Python cho người mới bắt đầu từ con số 0, hôm nay cafedev chia sẻ cho ace một số bài tập liên quan tới GAME trong python. bài tập liên quan tới GAME trong python.

Nội dung chính

  • Giao diện sử dụng Tkinter
  • Tiện ích Canvas:
  • Tiện ích Bind:
  • Sơ đồ cấu trúc của game python
  • Cấu trúc code:
  • Các chức năng khởi tạo:
  • Chức năng vẽ:
  • Các chức năng logic:
  • Ví dụ 1: Tic-Tac-Toe:
  • Ví dụ 2: Dots and Boxes
  • Tổng kết:

Mục tiêu chính:

  • Xây dựng ứng dụng Game đơn giản với PyGame

Bài 1:Xe tránh vật

Yêu cầu: Xây dựng ứng dụng Xe tránh vật như sau:

  • Màn hình bắt đầu game bao gồm Nút start, Nút quit game
  • Khi chọn start game, chúng ta sẽ có một chiếc xe, và nó sẽ tránh các vật hay khối vuông, tròn, chữ nhật, ở trên rơi trúng mình.
  • Trò chơi sẽ kết thúc khi vật rơi trúng xe hoặc xe chạy đụng các biên trái, phải

Bạn tham khảo hình demo bên dưới

Hướng dẫn sử dụng:

  • Người dùng chọn Start để chơi
  • Nhấn phím “P” để tạm dừng
  • Nhấn Play Again để chơi lại
  • Nhấn Quit để thoát
  • Trò chơi sẽ kết thúc khi vật rơi trúng xe hoặc xe chạy đụng các biên trái, phải

Bạn tham khảo hình demo bên dưới Xây dựng trò chơi “Đổ xúc xắc”:

  • Hướng dẫn sử dụng:

Hướng dẫn sử dụng:

  • Người dùng chọn Start để chơi
  • Nhấn phím “P” để tạm dừng

Nhấn Play Again để chơi lại

Nhấn Quit để thoát

Bài 2: Xây dựng trò chơi “Đổ xúc xắc”:

Tận dụng lại một số hàm trong trò chơi “Xe tránh vật” ở trên để xây dựng trò chơi “Đổ xúc xắc” như sau:mọi lúc mọi nơi tại đây.

Người dùng sẽ nhấn Play để đổ hai con xúc xắc => xem số điểm mình có dựa trên hai xúc xắc này.

  • w3school
  • python.org
  • Nhấn Quit để ngừng chơi và thoát khỏi chương trình

Bài giải

  • Hướng dẫn cách xem và tải tài liệu từ trang cafedev tại đây.
  • Full bài giải
  • Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
  • Nguồn và Tài liệu tiếng anh tham khảo:
  • geeksforgeeksCafedevn tại đây.

Tài liệu từ cafedev:

  • Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
  • Tự học ML bằng Python từ cơ bản tới nâng cao.
  • Ebook về python tại đây.
  • Các series tự học lập trình MIỄN PHÍ khác
  • Nơi liên hệ hợp tác hoặc quảng cáo cùng Cafedevn tại đây.
  • Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
  • Group Facebook
  • Fanpage

Youtube

Instagram

Twitter

Linkedin

Giao diện sử dụng Tkinter

Pinterest
- Canvas: Để vẽ đồ họa trò chơi trên cửa sổ
- Bind: Để bắt các đầu vào của người dùng tương tác/nhập vào.

Tiện ích Canvas:

Trang chủ
Create_line(): Để vẽ các đường
Create_oval(): Để vẽ vòng tròn
Create_text(): Để in văn bản trên cửa sổ
delete(): Xóa các đối tượng đã vẽ khỏi cửa sổ

Tiện ích Bind:

Chào thân ái và quyết thắng!
Button-1: Xác định nhấp chuột trái
Button-2: Xác định nhấp chuột giữa
Button-3: Xác định nhấp chuột phải
Phương thức liên kết nhận tham số trên làm đối số đầu tiên và tên mô-đun làm đối số thứ hai. Mô-đun được gọi khi sự kiện nhấp chuột xác định tham số được xác định.

Sơ đồ cấu trúc của game python

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!

03/09/2020 07:41 AM

Cấu trúc code:

Để có một tổ chức tốt hơn và hợp lý của code, chúng tôi sẽ cấu trúc các chức năng được cấu trúc thành ba loại. - Các chức năng khởi tạo - Chức năng vẽ - Các hàm logic
- Các chức năng khởi tạo
- Chức năng vẽ
- Các hàm logic

Các chức năng khởi tạo:

Các chức năng này có nhiệm vụ thiết lập trạng thái ban đầu cho trò chơi. Chúng bao gồm xác định các biến trò chơi, khởi tạo đồ họa trò chơi, đặt lại các biến trò chơi khi trò chơi kết thúc, xác định khung vẽ và các tiện ích liên kết, v.v. Các chức năng khởi tạo sẽ chủ yếu giải quyết việc thiết lập trò chơi trong trường hợp một trò chơi mới được bắt đầu hoặc trò chơi đã kết thúc và cần được chơi lại.

Chức năng vẽ:

Như tên cho thấy, các chức năng này sẽ chịu trách nhiệm vẽ các yếu tố đồ họa dựa trên trò chơi lên cửa sổ Tkinter. Dựa trên các phương pháp vẽ canvas cơ bản được đề cập ở trên, chúng tôi sẽ tạo các chức năng vẽ cấp cao cụ thể cho trò chơi của chúng tôi. Các chức năng vẽ cấp cao này sau đó sẽ được sử dụng như các khối xây dựng để cập nhật đồ họa trò chơi.

Các chức năng logic:

Các chức năng này sẽ không liên quan gì đến đồ họa trò chơi và sẽ xử lý logic trò chơi. Chúng bao gồm, nhưng không giới hạn ở, theo dõi trạng thái trò chơi, nhận thông tin đầu vào của người dùng, cập nhật trạng thái của trò chơi, kiểm tra xem động thái hiện tại có hợp pháp hay không, theo dõi điểm số của người chơi, kiểm tra xem trò chơi đã kết thúc hay chưa, quyết định kết quả của trò chơi, v.v.

Ví dụ 1: Tic-Tac-Toe:

Bạn có thể download code của trò này tại đây.

Đoạn code sử dụng một mảng có kích thước 3x3 để theo dõi trò chơi, tức là trạng thái của bàn cờ. ‘X’ được đánh dấu là -1 trong khi ‘O’ được đánh dấu là 1. Tất cả các ô trống được đánh dấu là 0 (không). Người dùng nhấp vào trong một hộp và sự kiện được ghi lại bằng phương thức liên kết "click". Vị trí lưới sau đó được chuyển đổi để xác định hộp trong đó sự kiện nhấp chuột đã xảy ra. Dựa trên người chơi, mã sau đó rút ra một chữ ‘X’ hoặc ‘O’ trong ô đã xác định chỉ khi ô đó chưa bị chiếm dụng. Tình trạng bảng cũng được cập nhật. Với mỗi lượt, mã sẽ kiểm tra xem có người chơi nào thắng hay không. Điều này được thực hiện bằng cách tìm các mẫu trong trạng thái bảng 3x3. Trò chơi kết thúc khi một trong hai người chơi thắng hoặc tất cả các ô đã bị chiếm. Ở giai đoạn này, màn hình kết quả được tạo hiển thị người chiến thắng và số điểm của mỗi người chơi.

Ảnh chụp màn hình của trò chơi:

Ví dụ 2: Dots and Boxes

Bạn có thể download code của trò này tại đây.

Đoạn code sử dụng một mảng có kích thước 3x3 để theo dõi trò chơi, tức là trạng thái của bàn cờ. ‘X’ được đánh dấu là -1 trong khi ‘O’ được đánh dấu là 1. Tất cả các ô trống được đánh dấu là 0 (không). Người dùng nhấp vào trong một hộp và sự kiện được ghi lại bằng phương thức liên kết "click". Vị trí lưới sau đó được chuyển đổi để xác định hộp trong đó sự kiện nhấp chuột đã xảy ra. Dựa trên người chơi, mã sau đó rút ra một chữ ‘X’ hoặc ‘O’ trong ô đã xác định chỉ khi ô đó chưa bị chiếm dụng. Tình trạng bảng cũng được cập nhật. Với mỗi lượt, mã sẽ kiểm tra xem có người chơi nào thắng hay không. Điều này được thực hiện bằng cách tìm các mẫu trong trạng thái bảng 3x3. Trò chơi kết thúc khi một trong hai người chơi thắng hoặc tất cả các ô đã bị chiếm. Ở giai đoạn này, màn hình kết quả được tạo hiển thị người chiến thắng và số điểm của mỗi người chơi.

Ảnh chụp màn hình của trò chơi:

Ví dụ 2: Dots and Boxes

Đoạn code sử dụng một mảng có kích thước (num_dots-1) x (num_dots-1) để theo dõi số lượng các cạnh được đánh dấu cho mỗi hộp. Bất cứ khi nào người chơi 1 đánh dấu một cạnh xung quanh một hộp, giá trị của mảng được liên kết với hộp đó sẽ giảm đi 1 và khi được người chơi 2 đánh dấu, nó sẽ tăng lên 1. Bất cứ khi nào bất kỳ phần tử nào của mảng này đạt đến giá trị -4 ( hoặc 4), điều này cho biết người chơi 1 (người chơi 2) đã tạo ô thành công.

  • Tic-Tac-Toe
  • Dots-and-Boxes