Snake játék a Python modul használatával
Biztos vagyok benne, hogy ez az esszé hasznos lesz számodra, ha rajongsz a kígyójátékért. Ebben a bejegyzésben végigvezetem egy egyszerű játék létrehozásának lépésein, amelyet még a Python kezdők is könnyen létrehozhatnak. A PyGame könyvtár Pythonban, amely egy Python csomag, amelyet játékok fejlesztésére használunk, a játék tervezésének egyik különféle megközelítése.
A könyvtári teknős használata egy további stratégia. Ennek a modulnak köszönhetően a felhasználók grafikákat generálhatnak és űrlapokat rajzolhatnak online vásznon, amely már telepítve van a Pythonnal. Így, ebben az oktatóanyagban, a teknőskönyvtárat fogjuk használni az alapvető kígyónk megépítésére
- időmodul. Ez a technika lehetővé teszi számunkra, hogy nyomon kövessük az előző alkalom óta eltelt másodpercek számát.
- a kígyó játék Random modul – Véletlen számokat hoz létre Pythonban.
Egyéb eszközök, amelyekre szüksége lesz, közé tartozik a kívánt szövegszerkesztő. Ebben a bejegyzésben a VSCode-ot fogom használni. természetesen, szüksége lesz a Python beállításához 3 készülékén, ha még nincs telepítve. Le is töltheti a Geekflare Compiler telepítéséhez. Ez nagyon kellemes élmény lehet!
tartalom
Hogyan működik a kígyós játék
A játékosoknak manipulálniuk kell a kígyóval, hogy megszerezzék a képernyőn megjelenő táplálékot, hogy a lehető legjobb pontszámot érjék el ebben a játékban. A játékos a kígyó mozgásának irányába mutató négy iránybillentyű egyikének megnyomásával irányítja a kígyót.
A kígyót eltávolítják a játékból, ha eltalál egy játékost vagy tárgyat. Azok az eljárások, amelyeket ennek a játéknak a folytatásában használunk.
- Az előre telepített modulok importálása alkalmazásainkba (teknős idő, teknős, valamint véletlenszerű).
- A játék képernyője a Turtle modullal készült.
- Állítsa be a gombokat a kígyó mozgási irányának szabályozásához a képernyőn.
- A játék megvalósítása.
Hozd létre a snakegame.py fájlt, amelyhez hozzáadunk egy implementációs programot.
A modulok importálása
A program ezen része betölti a Python által telepített időt, teknősbéka, és véletlenszerű modulok. Továbbá, alapértelmezett számok a játékos kezdeti pontszámához, az elérhető maximális pontszámot, és az idő, ameddig a játékos késik az egyes lépések között, meghatározásra kerül. Annak megállapítására, hogy mennyi idő késett, időmodulra van szükség.
import turtle
import random
import time
player_score = 0
highest_score = 0
delay_time = 0.1
A játék képernyőjének elkészítése
Az általunk telepített teknős modul lehetővé teszi egy virtuális képernyő létrehozását, amely a játék ablakaként fog szolgálni. Ezután megépíthetjük a kígyó testét, valamint az élelmiszerek, amelyeket a kígyó megeszik. A képernyőn megjelenik a játékos nyomkövetőjének pontszáma is.
# 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()
A fent említett kivonatban szereplő kód először létrehozza a teknős képernyőt, mielőtt hozzáadna egy kezdeti címet és háttérszínt. Először kiválasztjuk a méretet, mielőtt felvázolnánk a kígyó formáját a digitális vásznunkra. Annak megakadályozására, hogy vonalak keletkezzenek, miközben a teknős mozog, a penup módszer felveszi a teknős tollat.
Goto technikájának használatával, a teknős pontos pozícióba irányítható koordináták segítségével. Az ételt, amit a kígyó eszik, mi magunk készítjük.
Minden alkalommal, amikor a kígyó élelmet gyűjt, minden játékos pontszámát szeretnénk megjeleníteni. Azt is szeretnénk megmutatni, hogy az ember a legmagasabb pontszámot kapja a játék során. Emiatt, tollat használunk. Mint a toll, ír. Ismertesse a befejezés módját.
Útmutató gombok beállítása a kígyó számára
Ebben az esetben, programozunk bizonyos billentyűket a kígyó mozgásának vezérlésére a képernyőn. Használjuk a levelet “L” mint a bal gomb, “R” balra, “U” felfelé, és “D” lefelé. Ezeket az utasításokat a gyakorlatban úgy ültetik át, hogy a teknős irányító funkciójával hívják a kígyót.
Szerelje be a következő kódpéldákat.
# 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')
Mozog() A fent említett funkció lehetővé teszi a kígyó mozgását a megadott koordinátán belüli pozícióban. Hallgat() eseményfigyelőként működik, amely meghívja azokat a módszereket, amelyek a kígyót egy bizonyos irányba irányítják, ha a felhasználó megnyomja a gombot.
A játék játékmenetének megvalósítása kígyó formájában
A játékot élőszereplővé kell alakítani, miután az alapstruktúra létrejött. Ez lesz benne:
- a kígyó hosszának meghosszabbítása minden alkalommal más színnel, amikor táplálékot fogyaszt.
- valahányszor a kígyó táplálékot fogyaszt, a játékos pontszáma nő, és a legmagasabb pontszámot követi nyomon.
- A kígyót meg lehet tartani, hogy megóvja a falnak vagy akár a saját testének csapódásától.
- Miután lecsapott a kígyóra, a játék folytatódik.
- A képernyőn azonban, a játékos legmagasabb pontszáma, még akkor is, ha a játékos pontszáma nullára áll a játék újraindításakor.
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()
Az általunk használt fenti kódrészletben, véletlenszerű helyet jelöltünk ki a képernyőn a kígyó táplálékának. Minden alkalommal, amikor a kígyó megeszi a táplálékot, a test más színben nő, jelen esetben fehér, egyértelművé tenni, hogy növekedése határozott.
Amikor a kígyó összeszedte a táplálékot, és nem ütközik, az étel véletlenszerű helyen jelenik meg a képernyő méretének 270 fokos koordinátáján belül. Minden alkalommal, amikor a kígyó eszik, a játékos pontszáma eggyel nő 5. Ha a kígyó ütközik a játékossal, pontszámuk visszaáll 0 és a képernyő megtartja a legmagasabb pontszámot.
Következtetés
A teknőskönyvtár szórakoztató és egyszerű módja annak, hogy elkészítsd a kígyók játékát, amelyet ebben az oktatóanyagban láthattunk.. Ugyanennek a játéknak a megvalósításához használhatja a Python PyGame könyvtárát is. Olvassa el ezeket, és megtudhatja, hogyan használhatja másként a játékot PyGame utasítás.
Töltse le a Snake Rivals Fun Snake játékot
Töltse le a Snake.io – Fun Snake .io játékokat