如何使用Python语言编写贪吃蛇游戏?

liftword4周前 (12-09)技术文章22

以下是使用Python语言结合 turtle 库实现的一个简单贪吃蛇游戏代码示例,仅供参考:

python

import turtle

import time

import random


# 设置游戏窗口

win = turtle.Screen()

win.title("贪吃蛇游戏")

win.bgcolor("black")

win.setup(width=600, height=600)

win.tracer(0) # 关闭自动更新画面


# 蛇头

head = turtle.Turtle()

head.speed(0)

head.shape("square")

head.color("white")

head.penup()

head.goto(0, 0)

head.direction = "stop"


# 食物

food = turtle.Turtle()

food.speed(0)

food.shape("circle")

food.color("red")

food.penup()

food.goto(0, 100)


segments = [] # 蛇身片段列表


# 定义移动函数

def move():

if head.direction == "up":

y = head.ycor()

head.sety(y + 20)

elif head.direction == "down":

y = head.ycor()

head.sety(y - 20)

elif head.direction == "left":

x = head.xcor()

head.setx(x - 20)

elif head.direction == "right":

x = head.xcor()

head.setx(x + 20)


# 定义方向控制函数

def go_up():

if head.direction!= "down":

head.direction = "up"


def go_down():

if head.direction!= "up":

head.direction = "down"


def go_left():

if head.direction!= "right":

head.direction = "left"


def go_right():

if head.direction!= "left":

head.direction = "right"


# 键盘绑定

win.listen()

win.onkeypress(go_up, "Up")

win.onkeypress(go_down, "Down")

win.onkeypress(go_left, "Left")

win.onkeypress(go_right, "Right")


while True:

win.update() # 更新画面


# 检测与边界碰撞

if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:

time.sleep(1)

head.goto(0, 0)

head.direction = "stop"

for segment in segments:

segment.goto(1000, 1000) # 移到屏幕外

segments.clear()


# 检测与食物碰撞

if head.distance(food) < 20:

# 移动食物到随机位置

x = random.randint(-280, 280)

y = random.randint(-280, 280)

food.goto(x, y)


# 添加蛇身片段

new_segment = turtle.Turtle()

new_segment.speed(0)

new_segment.shape("square")

new_segment.color("grey")

new_segment.penup()

segments.append(new_segment)


# 移动蛇身

for index in range(len(segments) - 1, 0, -1):

x = segments[index - 1].xcor()

y = segments[index - 1].ycor()

segments[index].goto(x, y)

if len(segments) > 0:

x = head.xcor()

y = head.ycor()

segments[0].goto(x, y)


move()

time.sleep(0.1)


win.mainloop()


这段代码创建了一个简单的贪吃蛇游戏界面,通过键盘控制蛇头移动,吃到食物会增长蛇身,碰到边界游戏重新开始等基本功能。你可以根据需求进一步扩展和完善它,比如增加计分功能等。如果使用其他编程语言实现,思路类似但具体代码语法会有所不同。

相关文章

牛逼了!这21款Python游戏项目只需一行代码即可上手!「附源码」

导语随着时代的不同社会的改变伴随着一起长大的游戏逐渐淡出我们的视线却一直铭刻在我们心中??还记得你小时候都玩过什么游戏吗??超级玛丽——坦克大战——魂斗罗——贪吃蛇——植物大战僵尸.......咳咳咳...

Python生来就是一块做游戏的好料(附赠大型游戏开发源码)

Python编程语言的强大,几乎是众所周知的!那么,下面我给大家介绍一下几个用Python实现的各种游戏吧。不仅能用来做web、爬虫、数据分析等,没想到还能用做这么多的游戏,实在令人惊讶不已。注意:以...

用Python写一个游戏脚本,你会吗?

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。听说pywin32写脚本还不错pywin32主要代码我以楚留香的电脑版为例,记...

Python 简单实现贪吃蛇小游戏

文章目录1. pygame库的简介2. pygame库的安装3. python代码实现贪吃蛇小游戏4. pyinstaller打包成exe私信小编01即可获取Python学习资料1. pygame库的...