Heim > Backend-Entwicklung > Python-Tutorial > Wie schreibe ich ein Snake-Spiel in Python?

Wie schreibe ich ein Snake-Spiel in Python?

王林
Freigeben: 2023-05-09 20:55:06
nach vorne
3383 Leute haben es durchsucht

Snake-Python-Minispiel (Quellcode + Kommentare + Einfügen und Spielen) Dieses Snake-Spiel ist sehr einfach und vermeidet die Verwendung von Pygame, das schwer zu laden ist:

Wie schreibe ich ein Snake-Spiel in Python?

Wie schreibe ich ein Snake-Spiel in Python?

Spielcode-Implementierung

1. Bilder zeichnen

Beim Zeichnen von Spielbildern verwenden wir Turtle Graphics in der Datenbank, die leichter als Pygame ist.

Erstellen Sie die Datenbank (gamebase.py)
from turtle import * # "*"是引用所有函数

def square(x, y, size, color_name):
    up()
    goto(x, y)
    down()
    color(color_name)
    begin_fill()

    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)

    end_fill()
Nach dem Login kopieren

Das Obige ist das Zeichnen durch die Schildkröte, die vorrückende Einheit Nach der Distanz, Um 90 Grad drehen und dann erneut um 90 Grad drehen, bis ein kleines Quadrat gezeichnet ist.

Apfel zeichnen (snake.py)

Verweisen Sie auf die Datenbank, die wir gerade gezeichnet haben Schleife (Entspricht dem Schleifenthread in Java)

from turtle import *
from gamebase import square
from random import randrange
Nach dem Login kopieren

Drawing Snake (snake.py)

Beachten Sie, dass wir uns Snake als Warteschlange vorstellen können und jedes Element in dieser Warteschlange zwei Variablen enthält ( Die horizontalen und vertikalen Koordinaten der Element)
setup(420,420,0,0)
//隐藏乌龟头 emoj.emoj.
hideturtle
//隐藏轨迹
tracer(False)

//绘制
done()
Nach dem Login kopieren
Zeichnen Sie die Bewegung der gierigen Schlange

Prinzip der Schlangenbewegung: Um die Bewegung der Schlange zu erleichtern, müssen wir die Schlange in die Warteschlange umdrehen. Wenn sie sich bewegt, werfen wir das erste Element von Fügen Sie der Schlangenwarteschlange (pop()) ein Element am Ende der Schlange hinzu (append()). Antwort

Wir müssen einen Tastaturmonitor einrichten, was für Python sehr einfach ist
def gameLoop():
	//随机生成苹果
	apple_x = randrange(-200, 200)
	apple_y = randrange(-200, 200)
	//绘制苹果
	square(apple_x, apple_y, 10, "red")
	//刷新画布
	update()
Nach dem Login kopieren

Bestimmen, ob die Schlange den Apfel gefressen hat

Das ist auch sehr einfach. Wir müssen nur vergleichen, ob die horizontalen und vertikalen Koordinaten der Schlange sind Kopf sind gleich den horizontalen und vertikalen Koordinaten des Apfels (Schlangenkopf stimmt mit dem Apfel überein)

def gameLoop():
	//随机生成苹果
	apple_x = randrange(-200, 200)
	apple_y = randrange(-200, 200)
	//绘制蛇
	for n in range(len(sanke)):
		square(snake[n][0],snake[n][1[],10,"black)
	//绘制苹果
	square(apple_x, apple_y, 10, "red")
	//刷新画布
	update()
Nach dem Login kopieren
Bestimmen Sie, ob die Schlange Sie beißt

Dieses Prinzip ähnelt dem oben genannten Prinzip, ob die Schlange den Apfel frisst

global apple_x, apple_y, snake, aim_x, aim_y #全局变量申请snake.append([ snake[-1][0] + aim_x, snake[-1][1] + aim_y ])snake.pop(0)global apple_x, apple_y, snake, aim_x, aim_y 
#全局变量申请
snake.append([ snake[-1][0] + aim_x, snake[-1][1] + aim_y ])
snake.pop(0)
Nach dem Login kopieren
Bestimmen Sie ob sich die Schlange innerhalb der Grenzen befindet
ontimer(gameLoop, 100)
 # 每100毫秒运行一下gameLoop函数
Nach dem Login kopieren

Spielquellcode

gamebase.py
listen() #监听
onkey(lambda: change(0, 10), "w")
onkey(lambda: change(0, -10), "s")
onkey(lambda: change(-10, 0), "a")
onkey(lambda: change(10, 0), "d")
gameLoop()
Nach dem Login kopieren

snake

Das obige ist der detaillierte Inhalt vonWie schreibe ich ein Snake-Spiel in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage