Nếu bạn là một người thích chơi trò chơi rắn, tôi chắc chắn bạn sẽ thấy bài viết này thú vị.
Trong bài viết này, tôi sẽ dạy cho bạn cách đưa ra một trò chơi rắn đơn giản mà ngay cả người mới bắt đầu trong Python cũng sẽ dễ dàng phát triển.
Có tồn tại một số cách để tạo trò chơi này và một cách bao gồm việc sử dụng thư viện Python từ Pygame, một thư viện Python mà chúng tôi sử dụng để tạo trò chơi.
Một cách khác là bằng cách sử dụng thư viện rùa. Mô-đun này được cài đặt sẵn với Python và nó cung cấp một bức tranh ảo cho người dùng để tạo hình dạng và hình ảnh.
Do đó, bài viết này sẽ sử dụng thư viện Rùa để thực hiện trò chơi rắn đơn giản của chúng tôi, thân thiện với người mới bắt đầu, đặc biệt là đối với các nhà phát triển Python mới làm quen.
Ngoài mô -đun này, chúng tôi cũng sẽ sử dụng hai mô -đun khác là;
- Mô -đun thời gian - Phương pháp này sẽ cho phép chúng tôi theo dõi số giây đã trôi qua kể từ lần trước.
- Mô -đun ngẫu nhiên - Nó tạo ra các số ngẫu nhiên trong Python.
Các công cụ cơ bản khác bạn sẽ cần sử dụng bao gồm một trình soạn thảo văn bản mà bạn chọn. Tôi sẽ sử dụng VSCode trong bài viết này. Tất nhiên, bạn sẽ cần cài đặt Python 3 trên máy nếu bạn chưa có. Bạn cũng có thể sử dụng trình biên dịch GeekFlare.
Đây sẽ là niềm vui!
Trò chơi rắn hoạt động như thế nào
Mục tiêu cuối cùng của trò chơi này là để người chơi đạt được số điểm cao nhất bằng cách kiểm soát con rắn để thu thập thực phẩm mà màn hình hiển thị.
Người chơi điều khiển con rắn bằng các phím bốn hướng liên quan đến hướng con rắn đang tiến tới. Nếu con rắn đánh một khối hoặc chính nó, người chơi thua trò chơi.
Các bước sau đây chúng tôi sẽ làm theo để thực hiện trò chơi này.
- Nhập vào các chương trình của chúng tôi, các mô-đun được cài đặt sẵn (rùa, thời gian và ngẫu nhiên).
- Tạo màn hình màn hình trò chơi bằng mô -đun rùa.
- Đặt các phím cho hướng di chuyển của con rắn xung quanh màn hình.
- Việc thực hiện trò chơi.
Tạo một tệp snakegame.py trong đó chúng tôi sẽ thêm mã triển khai.
Nhập các mô -đun
Bit của mã này sẽ nhập các mô-đun rùa, thời gian và ngẫu nhiên theo mặc định được cài đặt sẵn trong Python. Ngoài ra, sau đó chúng tôi sẽ đặt các giá trị mặc định cho điểm số ban đầu của người chơi, điểm số cao nhất mà người chơi sẽ đạt được và thời gian trì hoãn được người chơi thực hiện trong mỗi lần di chuyển. Mô -đun thời gian được sử dụng ở đây để tính thời gian trễ.
Thêm bit mã sau vào tệp Snakegame.py của bạn.
import turtle import random import time player_score = 0 highest_score = 0 delay_time = 0.1Tạo màn hình màn hình trò chơi
Mô -đun rùa mà chúng tôi nhập ở đây sẽ cho phép chúng tôi tạo ra một bức tranh ảo sẽ là màn hình cửa sổ trò chơi. Từ đây, chúng ta có thể tạo ra cơ thể rắn rắn và thức ăn mà con rắn sẽ thu thập. Màn hình của chúng tôi cũng sẽ hiển thị điểm số theo dõi của người chơi.
Thêm mã này vào tệp Python.
# window screen created wind = turtle.Screen() wind.title("Snake Maze🐍") wind.bgcolor("red") # The screen size wind.setup(width=600, height=600) # creating the snake snake = turtle.Turtle() snake.shape("square") snake.color("black") snake.penup() snake.goto(0, 0) snake.direction = "Stop" # creating the food snake_food = turtle.Turtle() shapes = random.choice('triangle','circle') snake_food.shape(shapes) snake_food.color("blue") snake_food.speed(0) snake_food.penup() snake_food.goto(0, 100) pen = turtle.Turtle() pen.speed(0) pen.shape('square') pen.color('white') pen.penup() pen.hideturtle() pen.goto(0, 250) pen.write("Your_score: 0 Highest_Score : 0", align="center", font=("Arial", 24, "normal")) turtle.mainloop()Đoạn mã ở trên bắt đầu bằng việc khởi tạo màn hình rùa và chuyển một tiêu đề và màu nền cho màn hình. Sau khi xác định kích thước cửa sổ của màn hình của chúng tôi, chúng tôi vẽ hình dạng của con rắn trên vải ảo.
Phương pháp Penup () chỉ đơn giản là nhặt cây bút rùa rùa để không được vẽ khi con rùa di chuyển. Phương pháp GOTO (X, Y) chứa các vị trí tọa độ di chuyển con rùa đến một vị trí tuyệt đối.
Sau đó chúng tôi tạo ra thực phẩm mà con rắn thu thập. Chúng tôi sẽ muốn hiển thị điểm số của người chơi mỗi khi con rắn thu thập thức ăn và điểm số cao nhất mà người chơi đạt được trong trò chơi. Do đó, & nbsp; Chúng tôi sử dụng phương thức pen.write () để thực hiện điều này. Hideturtle () ẩn biểu tượng rùa từ màn hình trên phần tiêu đề mà văn bản này được viết.
Điều quan trọng là thêm rùa.mainloop () ở cuối mã của bạn, sẽ hiển thị màn hình lâu hơn để cho phép người dùng làm gì đó trên màn hình.
Chạy tệp và bạn nên có đầu ra sau:
Thiết lập các phím hướng cho con rắn
Ở đây, chúng tôi sẽ thiết lập các khóa cụ thể sẽ hướng dẫn hướng rắn sẽ di chuyển trên màn hình. Chúng tôi sẽ sử dụng ’l, cho bên trái,’ R, cho bên phải, ’u, cho Up,‘ D, cho xuống. Chúng tôi sẽ thực hiện các hướng này bằng cách sử dụng chức năng hướng rùa mà chúng tôi sẽ gọi trên con rắn.
Thêm đoạn mã sau vào mã của bạn.
# Assigning directions def moveleft(): if snake.direction != "right": snake.direction = "left" def moveright(): if snake.direction != "left": snake.direction = "right" def moveup(): if snake.direction != "down": snake.direction = "up" def movedown(): if snake.direction != "up": snake.direction = "down" def move(): if snake.direction == "up": coord_y = snake.ycor() snake.sety(coord_y+20) if snake.direction == "down": coord_y = snake.ycor() snake.sety(coord_y-20) if snake.direction == "right": coord_x = snake.xcor() snake.setx(coord_x+20) if snake.direction == "left": coord_x = snake.xcor() snake.setx(coord_x-20) wind.listen() wind.onkeypress(moveleft, 'L') wind.onkeypress(moveright, 'R') wind.onkeypress(moveup, 'U') wind.onkeypress(movedown, 'D')Hàm di chuyển () ở trên đặt chuyển động của con rắn ở vị trí được xác định trong một giá trị tọa độ chính xác.
Hàm nghe () là một trình nghe sự kiện gọi các phương thức di chuyển con rắn đến một hướng cụ thể khi người chơi nhấn phím.
Việc thực hiện trò chơi trò chơi rắn
Sau khi đặt ra triển vọng cơ bản của trò chơi rắn của chúng tôi, chúng tôi sẽ phải thực hiện trò chơi thời gian thực.
Điều này sẽ liên quan đến những điều sau đây:
- Trồng chiều dài của con rắn mỗi khi nó thu thập thực phẩm bằng cách sử dụng một màu khác.
- Tăng điểm số của người chơi mỗi lần con rắn thu thập thức ăn và theo dõi điểm số cao nhất.
- Người chơi có thể kiểm soát con rắn khỏi va chạm với bức tường hoặc cơ thể của chính nó.
- Trò chơi khởi động lại khi con rắn va chạm.
- Điểm số của người chơi được đặt lại về 0 khi trò chơi khởi động lại, trong khi màn hình giữ lại điểm số cao nhất của người chơi.
Thêm phần còn lại của mã này vào tệp Python của bạn.
segments = [] #Implementing the gameplay while True: wind.update() if snake.xcor() > 290 or snake.xcor() < -290 or snake.ycor() > 290 or snake.ycor() < -290: time.sleep(1) snake.goto(0, 0) snake.direction = "Stop" snake.shape("square") snake.color("green") for segment in segments: segment.goto(1000, 1000) segments.clear() player_score = 0 delay_time = 0.1 pen.clear() pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal")) if snake.distance(snake_food) < 20: coord_x = random.randint(-270, 270) coord_y = random.randint(-270, 270) snake_food.goto(coord_x, coord_y) # Adding segment added_segment = turtle.Turtle() added_segment.speed(0) added_segment.shape("square") added_segment.color("white") added_segment.penup() segments.append(added_segment) delay_time -= 0.001 player_score += 5 if player_score > highest_score: highest_score = player_score pen.clear() pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal")) # checking for collisions for i in range(len(segments)-1, 0, -1): coord_x = segments[i-1].xcor() coord_y = segments[i-1].ycor() segments[i].goto(coord_x, coord_y) if len(segments) > 0: coord_x = snake.xcor() coord_y = snake.ycor() segments[0].goto(coord_x, coord_y) move() for segment in segments: if segment.distance(snake) < 20: time.sleep(1) snake.goto(0, 0) snake.direction = "stop" snake.color('white') snake.shape('square') for segment in segments: segment.goto(1000, 1000) segment.clear() player_score = 0 delay_time = 0.1 pen.clear() pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal")) time.sleep(delay_time) turtle.mainloop()Trong đoạn mã trên, chúng tôi đặt một vị trí ngẫu nhiên cho thực phẩm rắn trong màn hình. Mỗi khi con rắn thu thập thực phẩm này, phân khúc cơ thể của nó tăng lên với một màu khác nhau; Trắng, trong trường hợp này, để phân biệt sự tăng trưởng của nó.
Sau khi con rắn thu thập thức ăn mà không va chạm, thức ăn được đặt ở vị trí ngẫu nhiên trong phạm vi tọa độ 270 của kích thước màn hình. Mỗi khi con rắn thu thập thực phẩm, người chơi điểm số tăng lên 5. & nbsp; Khi con rắn va chạm, điểm số của người chơi được đặt thành 0 trong khi màn hình vẫn giữ được điểm cao nhất .________ 4
Bây giờ hãy trả lại tệp Python và bạn sẽ thấy màn hình rùa của mình trông như thế này:
Kết luận 🐍🐍
Sử dụng thư viện Rùa là một cách thú vị và dễ dàng để tạo ra trò chơi rắn như chúng ta đã thấy trong bài viết này. Ngoài ra, bạn có thể thực hiện tương tự bằng thư viện pygame. Bạn có thể xem hướng dẫn Pygame tại đây và xem cách bạn có thể triển khai trò chơi khác nhau.
Bạn cũng có thể thử một trò chơi đoán số trong Python & nbsp; hoặc làm thế nào để lấy dữ liệu JSON trong mã hóa python.enjoy!
Enjoy coding!