Trò chơi rắn trong việc sử dụng mô-đun Python

Tôi tin rằng bài luận này sẽ hữu ích cho bạn nếu bạn là người yêu thích trò chơi bắt rắn. Tôi sẽ hướng dẫn bạn các bước tạo một trò chơi đơn giản trong bài đăng này mà ngay cả những người mới sử dụng Python cũng thấy dễ dàng tạo. Thư viện PyGame trong Python, đó là gói Python mà chúng tôi sử dụng để phát triển trò chơi, là một trong những cách tiếp cận khác nhau để thiết kế trò chơi.

Sử dụng rùa thư viện là một chiến lược bổ sung. Người dùng có thể tạo đồ họa và vẽ biểu mẫu trên canvas trực tuyến nhờ mô-đun này, đã được cài đặt với Python. Vì thế, trong hướng dẫn này, chúng tôi sẽ sử dụng thư viện rùa để xây dựng con rắn cơ bản của chúng tôi

Trò chơi rắn trong Python

  • mô-đun thời gian. Kỹ thuật này cho phép chúng tôi theo dõi số giây đã trôi qua kể từ lần trước.
  • trò chơi con rắn Mô-đun ngẫu nhiên – Nó tạo ra các số ngẫu nhiên trong Python.

Các công cụ khác mà bạn sẽ yêu cầu bao gồm trình chỉnh sửa cho văn bản mà bạn thích. Tôi sẽ sử dụng VSCode trong bài đăng này. Tất nhiên, bạn sẽ cần để thiết lập Python 3 trên thiết bị của bạn nếu bạn chưa cài đặt nó. Bạn cũng có thể tải xuống để cài đặt Trình biên dịch Geekflare. Đây có thể là một trải nghiệm thú vị!

Nội dung

Trò chơi con rắn hoạt động như thế nào

Người chơi phải điều khiển con rắn để lấy thức ăn được hiển thị trên màn hình để đạt được số điểm cao nhất có thể trong trò chơi này. Người chơi điều khiển con rắn bằng cách nhấn một trong bốn phím định hướng chỉ theo hướng con rắn đang di chuyển.

Con rắn sẽ bị loại khỏi trò chơi nếu nó tấn công người chơi hoặc đồ vật. Các quy trình chúng tôi sẽ sử dụng để chơi trò chơi này trong tương lai.

  • Nhập vào các ứng dụng của chúng tôi các mô-đun được cài đặt sẵn (thời gian rùa, rùa cũng như ngẫu nhiên).
  • Màn hình hiển thị của trò chơi được tạo bằng mô-đun Rùa.
  • Đặt các phím để điều khiển hướng di chuyển của con rắn trên màn hình.
  • Triển khai trò chơi.

Tạo tệp Snakegame.py mà chúng tôi sẽ thêm chương trình triển khai.

Nhập các mô-đun

Phần này chương trình tải thời gian cài đặt Python, con rùa, và các mô-đun ngẫu nhiên. Ngoài ra, số mặc định cho điểm ban đầu của người chơi, số điểm tối đa họ có thể đạt được, và khoảng thời gian người chơi trì hoãn giữa mỗi lần di chuyển sẽ được xác định. Để xác định thời gian đã bị trì hoãn, mô-đun thời gian là cần thiết.

import turtle
import random
import time

player_score = 0
highest_score = 0
delay_time = 0.1

Làm màn chơi game

Mô-đun con rùa mà chúng tôi cài đặt cho phép chúng tôi tạo một màn hình ảo đóng vai trò là màn hình cửa sổ của trò chơi. Sau đó chúng ta có thể xây dựng cơ thể của con rắn, cũng như các loại thức ăn mà con rắn sẽ ăn. Màn hình cũng sẽ hiển thị số điểm theo dõi của người chơi.

# 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()

Mã trong đoạn trích nói trên thiết lập màn hình con rùa trước khi thêm tiêu đề ban đầu và màu phông nền. Trước tiên, chúng tôi chọn kích thước trước khi phác thảo hình dạng của con rắn trên canvas kỹ thuật số của chúng tôi. Để ngăn chặn các dòng được thực hiện trong khi con rùa đang di chuyển, phương pháp penup nhấc bút của rùa.

Với việc sử dụng kỹ thuật goto của nó, con rùa có thể được hướng đến một vị trí chính xác bằng cách sử dụng tọa độ. Thức ăn mà con rắn ăn là do chúng tôi làm.

Mỗi khi con rắn thu thập thức ăn, chúng tôi muốn hiển thị điểm của từng người chơi. Chúng tôi cũng muốn hiển thị số điểm cao nhất mà một người nhận được trong trò chơi. Vì lý do này, chúng tôi sử dụng bút. Như cây bút, viết. Mô tả một phương pháp để hoàn thành.

Việc thiết lập các phím chỉ đường cho con rắn

Trong trường hợp này, chúng tôi lập trình một số phím nhất định để điều khiển chuyển động của con rắn trên màn hình. Chúng tôi sẽ sử dụng chữ cái “l” như phím trái, “r” bên trái, “WinSetupFromUSB Đối với máy tính Windows XP / 10/8 / 8,1 / 7” cho trở lên, và “D” cho xuống dưới. Những hướng dẫn này sẽ được đưa vào thực tế bằng cách gọi con rắn bằng chức năng chỉ đường của con rùa.

Bao gồm các ví dụ mã sau đây trong 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')

Di chuyển() chức năng được đề cập ở trên cho phép chuyển động của con rắn ở vị trí được chỉ định trong một tọa độ đã chỉ định. Nghe() hoạt động như một trình lắng nghe sự kiện gọi các phương thức hướng con rắn theo một hướng nhất định sau khi người dùng nhấn nút.

Việc thực hiện lối chơi của trò chơi dưới dạng một con rắn

Trò chơi sẽ cần được chuyển đổi thành live-action sau khi cấu trúc cơ bản đã được thiết lập. Đây là những gì nó sẽ bao gồm:

  • kéo dài chiều dài của con rắn bằng một màu khác nhau mỗi khi nó ăn thức ăn.
  • bất cứ khi nào con rắn tiêu thụ thức ăn, điểm của người chơi được tăng lên, và số điểm cao nhất sau đó được theo dõi.
  • Con rắn có thể được giữ để bảo vệ nó khỏi bị đập vào tường hoặc thậm chí là cơ thể của chính nó.
  • Sau khi đánh con rắn, trò chơi tiếp tục.
  • Tuy nhiên, trên màn hình, là điểm cao nhất của người chơi mặc dù điểm của người chơi được đặt lại về 0 khi trò chơi bắt đầu lại.
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 mà chúng tôi đã sử dụng, chúng tôi đã chỉ định một vị trí ngẫu nhiên cho thức ăn của rắn trên màn hình. Mỗi lần con rắn ăn dinh dưỡng, cơ thể phát triển trong một màu sắc khác nhau, màu trắng trong trường hợp này, để làm rõ rằng sự tăng trưởng của nó là khác biệt.

Khi con rắn đã lấy thức ăn và không va chạm, thức ăn được hiển thị ở một vị trí ngẫu nhiên trong khu vực tọa độ 270 độ của kích thước màn hình. Mỗi khi con rắn lấy thức ăn, điểm của người chơi tăng theo 5. Nếu con rắn có liên quan đến va chạm với người chơi, điểm của họ được đặt lại thành 0 và màn hình giữ điểm số cao nhất.

Phần kết luận

Thư viện rùa là một cách thú vị và đơn giản để tạo trò chơi rắn mà chúng ta đã thấy trong hướng dẫn này. Bạn cũng có thể sử dụng thư viện PyGame trong Python để triển khai trò chơi tương tự. Tìm hiểu cách bạn có thể sử dụng trò chơi theo cách khác bằng cách đọc những PyGame hướng dẫn.

Tải game Snake Rivals Fun Snake

Trò chơi chạy đua rắn 3D

Tải xuống Snake.io – Trò chơi rắn .io vui nhộn