เกมงูในการใช้โมดูล Python

ฉันมั่นใจว่าบทความนี้จะเป็นประโยชน์กับคุณหากคุณเป็นแฟนตัวยงของเกมงู. ฉันจะแนะนำคุณเกี่ยวกับขั้นตอนการสร้างเกมง่ายๆ ในโพสต์นี้ ซึ่งแม้แต่มือใหม่ Python ก็ยังพบว่าสร้างได้ง่าย. ไลบรารี PyGame ใน Python, ซึ่งเป็นแพ็คเกจ Python ที่เราใช้ในการพัฒนาเกม, เป็นหนึ่งในแนวทางต่างๆ ในการออกแบบเกม.

การใช้เต่าห้องสมุดเป็นกลยุทธ์เพิ่มเติม. ผู้ใช้สามารถสร้างกราฟิกและวาดแบบฟอร์มบนผืนผ้าใบออนไลน์ได้ด้วยโมดูลนี้, ซึ่งติดตั้งด้วย Python เรียบร้อยแล้ว. ดังนั้น, ในบทช่วยสอนนี้, เราจะใช้ห้องสมุดเต่าเพื่อสร้างงูพื้นฐานของเรา

เกมงูใน Python

  • โมดูลเวลา. เทคนิคนี้ช่วยให้เราติดตามจำนวนวินาทีที่ผ่านไปตั้งแต่ครั้งก่อน.
  • โมดูลสุ่มเกมงู – มันสร้างตัวเลขสุ่มใน Python.

เครื่องมืออื่นๆ ที่คุณต้องการ ได้แก่ ตัวแก้ไขสำหรับข้อความที่คุณต้องการ. ฉันจะใช้ VSCode ในโพสต์นี้. แน่นอน, คุณจะต้องตั้งค่า Python 3 บนอุปกรณ์ของคุณหากคุณยังไม่ได้ติดตั้ง. คุณยังสามารถดาวน์โหลดเพื่อติดตั้ง Geekflare Compiler. นี่อาจเป็นประสบการณ์ที่สนุกสนานมาก!

สารบัญ

เกมงูทำงานอย่างไร

ผู้เล่นจะต้องควบคุมงูเพื่อให้ได้อาหารที่แสดงบนหน้าจอเพื่อให้ได้คะแนนที่ดีที่สุดในเกมนี้. ผู้เล่นบังคับงูโดยกดปุ่มทิศทางหนึ่งในสี่ปุ่มที่ชี้ไปในทิศทางที่งูกำลังเคลื่อนที่.

งูจะถูกนำออกจากเกมหากมันไปโดนผู้เล่นหรือสิ่งของ. ขั้นตอนที่เราจะใช้ในการเล่นเกมนี้ต่อไป.

  • นำเข้าโมดูลที่ติดตั้งไว้ล่วงหน้าในแอปพลิเคชันของเรา (เวลาเต่า, เต่าเป็นแบบสุ่ม).
  • การแสดงผลหน้าจอของเกมสร้างขึ้นด้วยโมดูล Turtle.
  • ตั้งปุ่มเพื่อควบคุมทิศทางการเคลื่อนที่ของงูไปรอบๆ หน้าจอ.
  • การใช้งานของเกม.

สร้างไฟล์ snakegame.py ที่เราจะเพิ่มโปรแกรมการใช้งาน.

การนำเข้าโมดูล

ส่วนนี้ของโปรแกรมจะโหลดเวลาที่ติดตั้ง Python, เต่า, และโมดูลสุ่ม. นอกจากนี้, ตัวเลขเริ่มต้นสำหรับคะแนนเริ่มต้นของผู้เล่น, คะแนนสูงสุดที่พวกเขาสามารถทำได้, และระยะเวลาที่ผู้เล่นล่าช้าระหว่างการเคลื่อนไหวแต่ละครั้งจะถูกกำหนด. เพื่อพิจารณาว่าได้เลื่อนเวลาออกไปเท่าใด, จำเป็นต้องใช้โมดูลเวลา.

import turtle
import random
import time

player_score = 0
highest_score = 0
delay_time = 0.1

สร้างหน้าจอของเกม

โมดูลเต่าที่เราติดตั้งช่วยให้เราสร้างหน้าจอเสมือนที่จะทำหน้าที่เป็นหน้าจอหน้าต่างของเกม. จากนั้นเราก็สามารถสร้างลำตัวของงูได้, ตลอดจนรายการอาหารที่งูจะกิน. หน้าจอจะแสดงคะแนนของตัวติดตามของผู้เล่นด้วย.

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

รหัสในข้อความที่ตัดตอนมาดังกล่าวสร้างหน้าจอเต่าก่อนที่จะเพิ่มชื่อเริ่มต้นและสีฉากหลัง. อันดับแรก เราเลือกขนาดก่อนที่จะร่างรูปร่างของงูลงบนผืนผ้าใบดิจิตอลของเรา. เพื่อป้องกันการขีดเส้นในขณะที่เต่าเคลื่อนไหว, วิธี penup หยิบปากกาของเต่า.

ด้วยการใช้เทคนิค goto, เต่าอาจถูกนำไปยังตำแหน่งที่แน่นอนโดยใช้พิกัด. อาหารที่งูกินเราทำเอง.

ทุกครั้งที่งูคาบอาหาร, เราต้องการแสดงคะแนนของผู้เล่นแต่ละคน. เรายังต้องการแสดงคะแนนสูงสุดที่แต่ละคนได้รับระหว่างเกม. สำหรับเหตุผลนี้, เราใช้ปากกา. เป็นปากกา, เขียน. อธิบายวิธีการทำให้เสร็จ.

การตั้งค่าปุ่มทิศทางสำหรับงู

ในกรณีนี้, เราตั้งโปรแกรมปุ่มบางอย่างเพื่อควบคุมการเคลื่อนไหวของงูบนหน้าจอ. เราจะใช้จดหมาย “แอล” เป็นปุ่มซ้าย, “ร” สำหรับซ้าย, “ยู” สำหรับขึ้น, และ “ง” สำหรับลง. คำแนะนำเหล่านี้จะถูกนำไปปฏิบัติโดยการเรียกงูโดยใช้ฟังก์ชันทิศทางของเต่า.

รวมตัวอย่างโค้ดต่อไปนี้ในของคุณ.

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

เคลื่อนไหว() ฟังก์ชั่นดังกล่าวข้างต้นช่วยให้การเคลื่อนไหวของงูในตำแหน่งที่ระบุภายในพิกัดที่ระบุ. ฟัง() ทำหน้าที่เป็นผู้ฟังเหตุการณ์ซึ่งเรียกใช้เมธอดที่นำงูไปในทิศทางใดทิศทางหนึ่งเมื่อผู้ใช้กดปุ่ม.

การดำเนินเกมเพลย์ในรูปแบบของงู

เกมจะต้องแปลงเป็นการแสดงสดหลังจากสร้างโครงสร้างพื้นฐานแล้ว. นี่คือสิ่งที่จะรวม:

  • ขยายความยาวของงูด้วยสีที่แตกต่างกันทุกครั้งที่มันกินอาหาร.
  • เมื่อใดก็ตามที่งูกินอาหาร, คะแนนของผู้เล่นจะเพิ่มขึ้น, และติดตามผลคะแนนสูงสุด.
  • อาจจับงูไว้เพื่อป้องกันไม่ให้กระแทกกับผนังหรือแม้แต่ตัวของมันเอง.
  • หลังจากตีงู, เกมยังคงดำเนินต่อไป.
  • บนหน้าจออย่างไรก็ตาม, คือคะแนนสูงสุดของผู้เล่น แม้ว่าคะแนนของผู้เล่นจะถูกรีเซ็ตเป็นศูนย์เมื่อเริ่มเกมใหม่.
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()

ในข้อมูลโค้ดด้านบนที่เราใช้, เราได้กำหนดสถานที่สุ่มสำหรับอาหารงูบนหน้าจอ. ทุกครั้งที่งูกินสารอาหาร, ร่างกายเติบโตเป็นสีอื่น, สีขาวในกรณีนี้, เพื่อให้เห็นได้ชัดเจนว่าการเติบโตนั้นแตกต่างกัน.

เมื่องูเก็บอาหารแล้วไม่ชนกัน, อาหารจะแสดงในตำแหน่งสุ่มภายในพื้นที่พิกัด 270 องศาของขนาดของหน้าจอ. ทุกครั้งที่งูคาบอาหาร, คะแนนของผู้เล่นเพิ่มขึ้น 5. ถ้างูมีส่วนเกี่ยวข้องในการปะทะกับผู้เล่น, คะแนนของพวกเขาจะถูกรีเซ็ตเป็น 0 และหน้าจอเก็บคะแนนสูงสุดไว้.

ข้อสรุป

ห้องสมุดเต่าเป็นวิธีที่สนุกและง่ายในการสร้างเกมงูที่เราได้เห็นในบทช่วยสอนนี้. คุณยังสามารถใช้ไลบรารี PyGame ใน Python เพื่อใช้งานเกมเดียวกันได้. ค้นหาว่าคุณจะใช้ประโยชน์จากเกมนี้อย่างไรโดยอ่านข้อมูลเหล่านี้ ไพเกม คำแนะนำ.

ดาวน์โหลดเกม Snake Rivals Fun เกมงู

เกมวิ่งงูวิ่งแข่ง 3 มิติ

ดาวน์โหลด Snake.io – เกม Snake .io แสนสนุก