高考考试网
当前位置: 首页 高考资讯

贪吃蛇c++代码详解(c语言贪吃蛇最简单代码)

时间:2023-06-04 作者: 小编 阅读量: 3 栏目名: 高考资讯

最近有很多的同学问,能不能用Python做出一个小游戏来,而且最好要讲清楚每一段干嘛是用来干嘛的那行,今天将来讲解一下用Pythonpygame做一个贪吃蛇的小游戏据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个贪吃蛇小游戏是一个像素版的,虽然简陋,但还是可以玩起来的私信小编01即可获取大量Python学习资源我们主要要做的内容创建游戏窗口绘制

最近有很多的同学问,能不能用Python做出一个小游戏来,而且最好要讲清楚每一段干嘛是用来干嘛的

那行,今天将来讲解一下用Python pygame做一个贪吃蛇的小游戏

据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个贪吃蛇小游戏是一个像素版的,虽然简陋,但还是可以玩起来的

私信小编01即可获取大量Python学习资源

我们主要要做的内容

  1. 创建游戏窗口
  2. 绘制贪吃蛇与食物
  3. 蛇吃食物

贪吃蛇的棋盘模型

现在就开始我们的代码,首先,还是导入模块

import pygameimport randomimport copy

1. 创建游戏窗口

1.1 游戏初始化

pygame.init()clock = pygame.time.Clock()# 设置游戏时钟pygame.display.set_caption("贪吃蛇-解答、源码、相关资料可私信我")# 初始化标题screen = pygame.display.set_mode((500, 500))# 初始化窗口 窗体的大小为 500500

1.2 初始化蛇的位置 蛇的长度 10 10 也就是蛇的 X Y 坐标

snake_list = [[10, 10]]

首先设置蛇的一个运行方向 接下来判断键盘事件在决定蛇的运行方向

蛇可以运行起来了,那么接下来就是,吃食物增加自己的长度和不吃食物在不同的位置显示

初始小蛇方向

move_up = Falsemove_down = Falsemove_left = Falsemove_right = True

1.3 初始化食物的位置

x = random.randint(10, 490)y = random.randint(10, 490)food_point = [x, y]

1.4 开启游戏循环

running = Truewhile running:# 游戏时钟 刷新频率clock.tick(20)

1.5 填充背景为白色

screen.fill([255, 255, 255])

1.6 绘制背景

for x in range(0, 501, 10):pygame.draw.line(screen, (195, 197, 199), (x, 0), (x, 500), 1)pygame.draw.line(screen, (195, 197, 199), (0, x), (500, x), 1)food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)

1.7绘制蛇

snake_rect = []for pos in snake_list:# 1.7.1 绘制蛇的身子snake_rect.append(pygame.draw.circle(screen, [255, 0, 0], pos, 5, 0))

2. 绘制贪吃蛇与食物

2.1 获取蛇的长度,移动蛇的身子

pos = len(snake_list) - 1while pos > 0:snake_list[pos] = copy.deepcopy(snake_list[pos - 1])pos -= 1

2.2 更改蛇头位置

if move_up:snake_list[pos][1] -= 10if snake_list[pos][1] < 0:snake_list[pos][1] = 500if move_down:snake_list[pos][1] += 10if snake_list[pos][1] > 500:snake_list[pos][1] = 0if move_left:snake_list[pos][0] -= 10if snake_list[pos][0] < 0:snake_list[pos][0] = 500if move_right:snake_list[pos][0] += 10if snake_list[pos][0] > 500:snake_list[pos][0] = 0

2.3 键盘控制移动职位

for event in pygame.event.get():# print(event)# 判断按下的按键if event.type == pygame.KEYDOWN:# 上键if event.key == pygame.K_UP:move_up = Truemove_down = Falsemove_left = Falsemove_right = False# 下键if event.key == pygame.K_DOWN:move_up = Falsemove_down = Truemove_left = Falsemove_right = False# 左键if event.key == pygame.K_LEFT:move_up = Falsemove_down = Falsemove_left = Truemove_right = False# 右键if event.key == pygame.K_RIGHT:move_up = Falsemove_down = Falsemove_left = Falsemove_right = True

2.4 获取蛇的长度,移动蛇的身子

pos = len(snake_list) - 1while pos > 0:snake_list[pos] = copy.deepcopy(snake_list[pos - 1])pos -= 1

3. 蛇吃食物

3.1 碰撞检测 如果蛇吃掉食物

if food_rect.collidepoint(pos):# 贪吃蛇吃掉食物snake_list.append(food_point)# 重置食物位置food_point = [random.randint(10, 490), random.randint(10, 490)]food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 15, 0)break

3.2 如果蛇吃掉了自己

head_rect = snake_rect[0]count = len(snake_rect)while count > 1:if head_rect.colliderect(snake_rect[count - 1]):running = Falsecount -= 1pygame.display.update()
    推荐阅读
  • 周星驰的一路经历(周星驰的那些事)

    1962年6月22日,一名男婴在香港九龙的贫民窟出生。今年6月22日,他迎来了自己的60岁生日。现在,周星驰在公共场合出现时,总是喜欢戴帽子遮住白发。但周星驰经常把肉弄脏,甚至把整条鸡腿都扔在地上,还被妈妈打了一顿。几十年后,当母子俩出现在节目中时,周妈妈提到了这件事,周星驰道出了真相。结果,梁朝伟一口气过关,周星驰连续两年才如愿以偿。直到1988年,在接手《雷霆先锋》之后,周星驰获得了金马奖最佳男配角。

  • 11月3日重庆铜梁区无症状感染者2活动轨迹公布

    若有轨迹交叉或时空交集,请主动向村(社区)报备,并按有关疫情防控要求做好相应措施。若健康码异常请迅速采取措施,红码人员立即主动报告村(社区)并原地等待,黄码和健康码弹窗人员尽快就近进行核酸检测。如出现发热、咳嗽、乏力、嗅觉味觉减退等不适症状,请佩戴医用口罩及时前往就近的发热门诊就诊。

  • 怎么样换汽车轮胎 咋样换汽车轮胎

    按下驻车制动器,并将档位设置为&ldquo停车。切勿完全提起螺母,只要足以消除阻力即可。使用随车附带的扳手或标准十字扳手。对所有爪形螺母重复此过程,并完全拆下螺母。轮胎可能因生锈而卡住。将汽车完全降下,取下千斤顶。检查并确保千斤顶与地面成直角。空空气滤清器滤芯最多两次保养应更换一次。而且3M滤网升降结构可以深度包容低阻力灰尘,有效延长使用寿命。现在3M的产品在中国市场大力推广。

  • 黑种人主要分布地区 黑种人主要分布地区在哪里?

    黑种人主要分布地区有非洲、北美洲、南美洲、大洋洲和欧洲。黑色人种又称尼格罗人种、赤道人种、刚果人种,是根据体质上可遗传的性状而划分的人群,人类分类学说里的一种。黑种人一般肤色黝黑,头发呈波浪或鬈曲,鼻子宽扁,鼻根低矮或中等,鼻突出度小、鼻孔横径较大,凸唇,口宽度大,嘴唇厚,胡子和体毛较少。

  • 提醒谁看对方怎样显示(发朋友圈提醒谁看对方有什么显示)

    对方打开朋友圈后,会在“发现”中出现红点数字提醒;,下面我们就来聊聊关于提醒谁看对方怎样显示?接下来我们就一起去了解一下吧!注意平时只有当我们发布朋友圈朋友给我们评论,或者我们给朋友评论朋友回复我们时,才会出现新消息提醒。打开新消息,会显示朋友发送消息时“提到了我”,点击这条消息可以直达这条朋友圈,避免因为朋友圈消息太多而找不到朋友所发的消息。

  • 萨米特瓷砖优点(萨米特瓷砖是几线品牌)

    萨米特瓷砖是一线品牌,性价比极高。萨米特瓷砖获奖无数,给大家罗列一下近期部分奖项。

  • 梦见大蛇有什么征兆(梦到蛇的含义介绍)

    我们一起去了解并探讨一下这个问题吧!梦见大蛇有什么征兆中年女子梦见大蛇,生活顺遂,家中多有好运之事,家和万事兴,此乃吉兆也。老年人梦见大蛇,乃是有晚年兴隆之迹象,子孙聪明,多可有作为之意,此乃吉兆。从事土木工程建设,房产开发等相关行业者梦见大蛇,事业中有不利之迹象,求财多被他人欺骗,人情世故处理不良,则事业多有败落之势。

  • 拍vlog有什么禁忌(疑难解答)

    如果你是户外Vlogging的话,记得使用相机的防抖功能或者使用稳定器等设备,保证拍摄的画面不会过于晃动而影响后期观众的观看,如果你的相机不支持防抖也没有稳定云台,建议不要试图在拿着相机时拍摄VLOG。如何最好地做VLOG是为了产生参与。同时也和我们小学写作为差不多,要有主题中心,而这个主题中心就是用来吸引观众或者定位自己VLOG视频的方向。VLOG跟需要的是描述清楚一个观点即可。

  • 细胞质是什么 细胞质属于什么

    细胞质的主要成分为核糖体、贮藏物、多种酶类和中间代谢物、各种营养物和大分子的单体等,少数细菌还有类囊体、羧酶体、气泡或伴孢晶体等。细胞质是由细胞质基质、内膜系统、细胞骨架和包涵物组成,细胞质是生命活动的主要场所。基质指细胞质内呈液态的部分,是细胞质的基本成分,主要含有多种可溶性酶、糖、无机盐和水等。细胞器是分布于细胞质内、具有一定形态、在细胞生理活动中起重要作用的结构。

  • 以国家需求为导向进行科学研究(从社会需求看基础科学研究关键领域)

    世界卫生组织数据显示,2016年全球有1790万人死于心血管疾病,占全球死亡总数的31%,是世界第一大死亡因素。癌症和心血管疾病等一些重大疾病严重影响着人类的健康水平。脑科学研究已成各国研究的热点领域。