- Python
贪吃蛇
- 2024-6-9 11:14:41 @
第一部分:
1、导入相关的第三方库
2、设置主函数,窗口初始化
3、初始化设置蛇身体的位置列表和实物的位置信息、蛇的移动速度信息。
4、蛇的运动函数的编写
from random import randrange#导入随机函数的randrange工具,使food随机出现
from freegames import vector,square#导入freegames的向量函数与绘图函数,
# 用square正方形表示food、snake,用vector这个二维向量表示snake
import turtle# 导入绘图海龟模块
# 初始化,vector是向量的意思
food = vector(0,0)# 初始化food变量,用来表示第一个食物在坐标为(0,0)处
snake = [vector(10, 0)]# 初始化snake,而且snake是列表,其元素是向量
position = vector(0, -10) # 用来控制贪吃蛇的移动方向和距离,默认蛇每次走10像素,默认朝下走
def move():# 可以让蛇移动的方法
head = snake[-1].copy()# 确定蛇头的位置,表示复制snake列表的最后一个元素,这里用列表的最后一个元素表示蛇
head.move(position)# 移动一步
snake.append(head)# 更新蛇的身体
turtle.clear()# 清空蛇走过的位置
for body in snake:# 循环遍历蛇的坐标
square(body.x, body.y, 9, 'black') # 绘制黑色蛇
turtle.update()
turtle.ontimer(move, 1000)# 定时执行move函数
if __name__ == '__main__':# 主程序,程序的入口
turtle.setup(800, 600, 100, 100)# 创建窗体大小
# turtle.setup(窗口的长度, 窗口的高度, 窗口左上角的x坐标, 窗口左上角的x坐标),单位是像素
turtle.hideturtle()# 隐藏箭头显示
turtle.tracer(False)# 关闭绘画效果
move()# 调用让蛇移动的方法
turtle.done()# 停止画笔绘制,但绘图窗体不关闭
第二步:
1、判断蛇头是否吃到食物
吃到:得分增加,不删除蛇尾,食物位置重新随机
没吃到:删除蛇尾
2、绘制食物
from random import randrange#导入随机函数的randrange工具,使food随机出现
from freegames import vector,square#导入freegames的向量函数与绘图函数,
# 用square正方形表示food、snake,用vector这个二维向量表示snake
import turtle# 导入绘图海龟模块
# 初始化,vector是向量的意思
food = vector(10,-30)# 初始化food变量,用来表示第一个食物在坐标为(0,0)处
snake = [vector(10, 10),vector(10, 0)]# 初始化snake,而且snake是列表,其元素是向量
position = vector(0, -10) # 用来控制贪吃蛇的移动方向和距离,默认蛇每次走10像素,默认朝下走
def move():# 可以让蛇移动的方法
head = snake[-1].copy()# 确定蛇头的位置,表示复制snake列表的最后一个元素,这里用列表的最后一个元素表示蛇
head.move(position)# 移动一步
snake.append(head)# 更新蛇的身体
if head == food:# 如果蛇吃到食物
print('Snake:', len(snake))# 根据蛇的长度进行加分
food.x = randrange(-15, 15) * 10 # 随机生成食物x坐标
food.y = randrange(-15, 15) * 10 # 随机生成食物y坐标
else:
snake.pop(0)# 移除蛇走过的坐标
turtle.clear()# 清空蛇走过的位置
for body in snake:# 循环遍历蛇的坐标
square(body.x, body.y, 9, 'black') # 绘制黑色蛇
square(food.x, food.y, 9, 'green')# 绘制绿色食物
turtle.update()
turtle.ontimer(move, 1000)# 定时执行move函数
if __name__ == '__main__':# 主程序,程序的入口
turtle.setup(800, 600, 100, 100)# 创建窗体大小
# turtle.setup(窗口的长度, 窗口的高度, 窗口左上角的x坐标, 窗口左上角的x坐标),单位是像素
turtle.hideturtle()# 隐藏箭头显示
turtle.tracer(False)# 关闭绘画效果
move()# 调用让蛇移动的方法
turtle.done()# 停止画笔绘制,但绘图窗体不关闭
0 条评论
目前还没有评论...