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

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

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

最近有很多的同学问,能不能用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()
    推荐阅读
  • 分凝器是什么(分凝器是啥)

    跟着小编一起来看一看吧!分凝器是什么分凝器是化工系统中对某种热交换器的特称。热交换器中,对于被冷却的介质通常有三种类型:不发生相变的,该称为换热器。发生相变化的,由气相全部转化为液相的称为冷凝冷却器,部分发生相变化的,称为分凝器。

  • 鲜猴头菇的冷冻方法(鲜猴头菇如何冷冻)

    鲜猴头菇的冷冻方法将猴头菇用干净的塑料袋或者保鲜盒装好,然后置于冰箱冷藏保存即可,冷藏层的温度湿度适中,不仅可以保持猴头菇的新鲜度,还可以延长它的保存时间,一般可以保存5-7天。冷冻后的猴头菇如果没有腐烂的情况而话,仍然是可以食用的,并不会对人体产生不利影响;只是口感和营养会差一些;但是如果冷冻后的猴头菇解冻后发现有腐烂变味的情况的话,就不建议继续食用了否则容易引起身体不适。

  • 剑网35月10日更新了什么 剑网3正在准备自更新

    阵营1、综合据点贸易状态下侠士被重伤选择原地疗伤后,若施展武学招式则隐身加速状态会立即失效。九寨沟·镜海场景17号宅邸附近的河灯现在正常浮在水面上了。九寨沟·镜海场景望乡集区域新增教书先生,酱料商,酒商驻留;其场景宅邸品质等级更改为稀有宅邸。绝境战场1、白龙绝境修复部分情况下非无间死斗状态的侠士会受到腐沼毒雾伤害的问题。

  • 年休假每年一月一号就可以休吗(年休假不休掉就作废吗)

    用人单位应根据生产、工作的具体情况,并考虑劳动者本人意愿,统筹安排劳动者年休假。用人单位因生产、工作特点确有必要跨年度安排职工年休假的,可以跨1个年度安排。A结合具体情形确定。首先不能否认公司享有统筹安排年休假的权利,但应当提前通知员工延长春节假期进行年假安排的事宜,同时应考虑员工本人意愿。

  • 气急败坏造句(怎么用气急败坏造句呢)

    无缘无故挨了一顿打,他气急败坏地奔回山寨搬救兵去了。他见别人超过自己,就气急败坏地大骂起来。听说自己的父亲连连遭人奚落,他操起门后的闩门桩,气急败坏地向人群冲去,悍然不顾。一个人能在气急败坏的情绪下迅速发现另一个发怒的男性,这无疑使他具备了更强的生存能力。在这变化莫测气急败坏的一天里,两位原本犹豫不决的参议员,不再骑墙观望。等主人气急败坏地赶来时,小偷们早已跑远了。

  • 最搞笑的段子笑得都能让你肚子疼(笑岔气不偿命的15个段子)

    我们科一和科四是在一个比较大,看着都正规的地方考试的,而科二和科三直接就是别人的驾校,我们去考试。

  • 什么馅的包子好吃(怎么做猪肉大白菜馅包子)

    接下来我们就一起去了解一下吧!什么馅的包子好吃材料:面粉500g、酵母3g、猪肉馅500g、白菜半棵、大葱半棵、姜3片、盐3勺、鸡精2勺、十三香2勺、水100ml、食用油50ml。将面粉和酵母混合加水揉面,直到面不沾手,用保鲜膜覆盖,。将发好的面团取出,用干面粉揉面,擀皮开始包包子了。

  • 小白菜馅儿的包子(热腾腾的白菜肉馅大包子)

    大家好,我是你们的小陈,自己家的白菜终于可以丰收了。砂锅中加入温水,水温不要烫手,用面盆放在砂锅中,盖上盖子醒发三个小时。这样一锅胖乎乎热腾腾的肉包子就做好了,再配上一碗粥,自己腌的小咸菜,味道那是够哇塞了,跟着小陈一起做饭吧,找个没人的地儿,偷偷给个小爱心呗。

  • 5月8日是什么日子(5月8日的节日说啥)

    以下内容大家不妨参考一二希望能帮到您!5月8日是什么日子05月08日对应节日:世界红十字日。在这一天,红十字国际委员会、红十字会与红新月会国际联合会及各国红十字会和红新月会都以各种形式纪念这一日子,以表示红十字运动的国际性以及红十字人道工作不分种族、宗教及政治见解的特性。

  • 原神cos4人组(前螺旋猫成员神cos湊友希那)

    原神cos4人组如果你是一个偶像番或者偶像音游的爱好者,那么你一定知道《BanGDream!》。作为一款由日本娱乐公司Bushiroad策划的多媒体企划,以乐队组合「Poppin'Party」为核心,二次元在「月刊Bushiroad」、「电击G'sMagezine」进行漫画连载,三次元进行音乐活动,不仅有漫画、动漫、手游也有线下活动,可以说是一个很完整的爱豆产业链了。虽然三次元的真人小姐姐们也很不错,但是作为一个coser也很热爱的角色,也是有许多神还原的作品的。