首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用python写一个简单的贪吃蛇游戏(附代码)「建议收藏」

大家好,又见面了,我是你们的朋友全栈君。 不知道有多少同学跟我一样,最初接触编程的动机就是为了自己做个游戏玩?...方向的话只要上下左右4个固定方向就可以了。 有基本的数据结构和面向对象的思想在其中。游戏开发本身就会用到很多面向对象的概念,而蛇的身体又是一个天然的“链表”结构,太适合用来练习数据结构了。...“蛇”移动超出了游戏区的范围或者碰到了自己就算输了,轴坐标的范围是事先定好的,超出范围很容易判断。那么如何判断碰到自己呢?...pos_x = 1 pos_y = 0 # 如果蛇正在向右移动,那么快速点击向下向左,由于程序刷新没那么快,向下事件会被向左覆盖掉,导致蛇后退,直接GAME OVER...# 如果蛇正在向右移动,那么快速点击向下向左,由于程序刷新没那么快,向下事件会被向左覆盖掉,导致蛇后退,直接GAME OVER # b 变量就是用于防止这种情况的发生 b = True

41.9K31

【Python贪吃蛇】:编码技巧与游戏设计的完美结合

注意事项 如果在调用turtle.done()之前程序崩溃或被强制终止,绘图窗口可能会立即关闭。...蛇移动的方向 aim = [0, 10] aim列表定义了蛇的移动方向,其中第一个元素是水平方向(向右为正,向左为负),第二个元素是垂直方向(向下为正,向上为负)。这里,蛇默认向上移动。...参数作用 aim[0] = x:这行代码将水平方向的移动增量更新为参数 x 的值。如果 x 为正,蛇将向右移动;如果为负,则向左移动;如果为0,则蛇的水平位置不变。...游戏结束判断:检查新计算出的蛇头位置是否超出了游戏边界(通过inside函数判断),或者蛇头是否与蛇身的其他部分重叠(即蛇撞到自己了)。如果是,则结束游戏,并在蛇头位置绘制一个红色方块表示碰撞点。...“Down” 箭头:蛇向下移动(增加y坐标)。 “Left” 箭头:蛇向左移动(减少x坐标)。 “Right” 箭头:蛇向右移动(增加x坐标)。

25910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手把手教你完成第一个JS项目:用简单到极致的贪吃蛇游戏熟悉JS语法

    就是复制游戏的地址。 ? 点击这一项后,我们就会复制游戏所在的本地服务器地址,然后把地址粘贴进浏览器,然后通过浏览器进行调试了。 ?...坐标(4, 5)为蛇,可以看出如果蛇向左走,那么x坐标-1,y坐标不变;向右走x+1,y坐标不变;向上走y-1,x坐标不变;向下走y+1,x坐标不变。...举个例子:坐标为(4,5)的点向左移动,那么就是(4 ,5) + (-1, 0),移动后的坐标为(3,5);向右就是(4, 5) + (1, 0),移动后坐标为(5,5)。...玩过这个游戏的同学应该知道,当蛇在向右移动的过程中不能将方向改成向左的,我们只可以将蛇的移动方向改变成上或下的,而蛇向上移动的过程中也无法改成向下移动,只能变成左或右。...所以,当蛇在移动的过程中,不能将蛇的方向改变成它移动的相反方向,只能改变成除当前移动方向和当前移动的相反方向外的其它两个方向。

    1.1K20

    用python写一个简单的贪吃蛇游戏

    “贪吃蛇”这个小游戏在编程学习中的常客,因为: 1. 简单,最基本的游戏元素只需要蛇和食物两个就可以进行了。(打飞机还需要三个元素呢,想想分别是什么?)方向的话只要上下左右4个固定方向就可以了。...有基本的数据结构和面向对象的思想在其中。游戏开发本身就会用到很多面向对象的概念,而蛇的身体又是一个天然的“链表”结构,太适合用来练习数据结构了。...游戏的主循环里主要依次做这么几件事: 获取键盘事件 绘制背景 更新蛇的位置 画蛇、食物 碰撞检测 屏幕刷新 蛇和食物的绘制都是通过 pygame 里的 Surface 对象实现,绘制不同颜色的格子。...我们没有选择修改蛇的位置,而是每次移动时,根据蛇的前进方向增加一个头部节点,其余位置都向前移动一个节点,并删除尾端节点,这样就等于实现了蛇的移动。如果是吃到了食物,就在尾部再加上节点,就实现了增长。...= 2: direct = 3 # 向左 3, 向右 2 elif event.key == K_RIGHT and validDirect !

    2.3K10

    【网页游戏】Vue3 + Typescript 自己动手实现一个贪吃蛇

    如果现在能回到那节课,我就可以肆无忌惮的玩我的 贪吃蛇 了,被她抓到直接把源码地址给她一丢,岂不快哉。...这个地方是困扰我最长时间的,但是只要想通了就不是很难。我们需要根据方向去修改蛇头的坐标,然后我们把蛇头的坐标放进蛇身体的数组的最后一个元素,然后再删掉蛇身体的数组的第一个元素。...因为蛇移动永远都是下一节的蛇身走到上一节蛇身的位置,这样视图上看起来就像是蛇在移动了。...这个就很简单了,只要判断蛇头的坐标和蛇身体是否一样就行了。当相同的时候我们往蛇身体的数组里 push 当前蛇头的位置,但是不删掉蛇尾的元素,视图上看起来就像是蛇增加了一节。 如何检测蛇的碰撞?...这个也很简单,修改对应的 direction 值就好了,但是要注意判断蛇是不可以回头的。 食物类的设计 如何随机生成食物?

    98330

    JavaScript贪食蛇游戏制作详解

    常量LEFT、RIGHT、TOP、BOTTOM分别代表贪食蛇上下左右的走向 常量GAME_START、GAME_STOP、GAME_OVER代表游戏的三个状态,游戏进行中、游戏暂停中、游戏结束 游戏中的三个类是游戏的逻辑实现...获得节点的位置 SnakeNode.getNextPoint 这个方法是一个静态方法, 不属于节点实例, 它的功能是根据方向计算出某一个坐标的下一个坐标, 比如说10和10是某个节点当前的坐标, 那么它向左移动一个单位后坐标就是...9和10;向右移动一个单位后坐标就是11和10,同理向上和向下坐标分别是10,9和10,11。...其中局部变量reverse是用来计算新节点的位置用的,假如当前节点的方向是向右的,那么下一个节点肯定在当前节点的左边,以此类推, reverse变量就是当前节点相反方向的值,细节请结合代码理解。...此方法执行的操作分别是 将游戏的状态设置成 GAME_START常量的值(表示游戏开始) 让蛇身持续移动 每5秒生成一个食物 绑定交互事件,也就是我们用键盘的方向键上下左右控制蛇游动的方向的事件 先看被

    1.2K100

    贪吃蛇(C语言实现)

    大家好,又见面了,我是你们的朋友全栈君。...从文件读取最高分 更新最高分到文件 主函数 游戏说明 游戏界面当中没有打印相关的按键说明,这里先逐一列出,贪吃蛇游戏按键说明: 按方向键上下左右,可以实现蛇移动方向的改变。...短时间长按方向键上下左右其中之一,可实现蛇向该方向的短时间加速移动。 按空格键可实现暂停,暂停后按任意键继续游戏。 按Esc键可直接退出游戏。 按R键可重新开始游戏。...+ y; DrawSnake(1); //打印移动后的蛇 } 游戏主体逻辑函数 主体逻辑: 首先第一次进入该函数,默认蛇向右移动,进而执行run函数。...若未被敲击,则先判断蛇到达移动后的位置后是否得分或是游戏结束,然后再移动蛇的位置。 若键盘一直未被敲击,则就会一直执行run函数当中的while函数,蛇就会一直朝一个方向移动,直到游戏结束。

    2.1K20

    【项目实战】Java 贪吃蛇

    游戏的主启动类 作为贪吃蛇游戏的主启动类,构建了顶级窗口,可以容纳各种面板, package Snake; import javax.swing.*; /** * 游戏的主启动类 */ public...绘制动态小蛇 小蛇在动起来之后,蛇头会进行上下左右的移动,身体也会变长,因此不能局限于固定的坐标,需要对静态小蛇的代码做如下改动, 添加一个名为fx的String对象,存储小蛇的方向,使用if语句进行判断...让蛇动起来 让蛇能够动起来就是为程序添加监听事件,内部类或者外部类都可,   空格键获得响应 设置键盘的监听事件,先设置空格的监听事件, 接上接口KeyListener,重写它的三个方法, //键盘监听事件...游戏优化 移动优化 对蛇头的移动进行了优化,避免了蛇头与第一节蛇身的碰撞,即如果蛇头向右前进,这时候按向左是无效的, /** * 小蛇移动 */ if(keyCode == KeyEvent.VK_UP...,每种颜色代表不同的功能,其中, 蓝色:增加一节蛇的身体,分数+10 绿色:减少一节蛇的身体,分数+10 紫色:加快蛇的移动速度,分数+10 橘色:减慢蛇的移动速度,分数+10 通过随机数对食物种类进行分配

    22820

    python怎么运行代码_Python贪吃蛇代码

    大家好,又见面了,我是你们的朋友全栈君。 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!...首先呢,需要有贪吃蛇、有食物;需要能控制贪吃蛇来上下移动获取食物;贪吃蛇在吃取食物后,自身长度增加,同时食物消失并随机生成新的食物;如果贪吃蛇触碰到四周墙壁或是触碰到自己身体时,则游戏结束。...(‘人人都是Pythonista – Snake’) # 定义一个变量来控制游戏速度 FPSCLOCK = pygame.time.Clock() # 初始化游戏界面内使用的字体 BASICFONT =...food_flag = 1 3.3 实现贪吃蛇的上下左右移动 我们需要控制贪吃蛇的上下左右的移动,这里通过监听键盘输入来实现。利用键盘中的上下左右键或WASD键来控制贪吃蛇的运动。...snake_Body.insert(0, list(snake_Head)) 3.4 判断是否吃到食物 如果蛇头与食物的位置重合,则判定吃到食物,将食物数量清零;而没吃到食物的话,蛇身就会跟着蛇头运动

    1.1K20

    TypeScript 贪吃蛇游戏详细教程

    所以今天我准备用TypeScript来开发一个贪吃蛇的游戏,我尽量把实现步骤写得详细一点。大家如果感兴趣的话,可以跟着这篇博文一起敲,这样也有利于熟练TypeScript的语法和领悟它的思维。...六.游戏控制模块的开发 我们创建GameControl.ts ,我们这节开始编写和游戏控制有关的代码,里面都是控制游戏的核心代码。...如果判断出蛇有多节身体的话,就要判断蛇头移动的位置是否为第二节身体的位置,如果是,则不允许掉头,不是,则允许掉头,就这么简单。...; } // 修改x时,是在修改水平坐标,蛇在左右移动,蛇在向左移动时,不能向右掉头,反之亦然 if(this.bodies[1] && (this.bodies...,让蛇向反方向继续移动 if(value > this.X){ // 如果新值value大于旧值X,则说明蛇在向右走,此时发生掉头,应该使蛇继续向左走

    1.2K40

    贪吃蛇代码实现_贪吃蛇游戏代码

    大家好,又见面了,我是你们的朋友全栈君。 贪吃蛇代码实现 游戏说明 游戏界面当中没有打印相关的按键说明,这里先逐一列出。 贪吃蛇游戏按键说明: 按方向键上下左右,可以实现蛇移动方向的改变。...短时间长按方向键上下左右其中之一,可实现蛇向该方向的短时间加速移动。 按空格键可实现暂停,暂停后按任意键继续游戏。 按Esc键可直接退出游戏。 按R键可重新开始游戏。...RIGHT: //如果敲击的是“左”或“右” if (tmp !...: //方向键:左 run(-1, 0); //向左移动(横坐标偏移为-1,纵坐标偏移为0) tmp = LEFT; //记录当前蛇的移动方向 break; case RIGHT: //方向键:...右 run(1, 0); //向右移动(横坐标偏移为1,纵坐标偏移为0) tmp = RIGHT; //记录当前蛇的移动方向 break; case SPACE: //暂停 system(“pause

    2.4K30

    微信小游戏

    前一阵,微信的跳一跳小游戏很是火,打破了之前说的不会推出游戏的说法,2017年12月22日,微信发布了微信小游戏的体验版,打开自己的微信小程序账号,找到如下图: 屏幕快照 2018-03-05 上午10.18.17....png 小游戏点击上图中的小游戏,查看文档,目前小游戏不提供公开注册,可点击体验小游戏使用无 AppID 模式。...F0A8E5D1-5EAB-4A99-A419-79AFBB27739A.png 自己一步一步的按照文档说明,新建一个小程序项目 , 之前自己也遇到过一个坑,创立的项目总是和文档不一样,仔细看了文档,发现...微信自己提供一个飞机大战的游戏,可以自己在真机预览,自己也想创建一个自己的微信小游戏,在此基础上,我把之前微信小程序(贪吃蛇)的游戏放在微信小游戏(贪吃蛇),把之前的微信的飞机大战的多余代码去掉。...; 2.在手机预览时,会闪退(不知道这个问题是不是也和没有appid有关系) 如果想看源码的:https://github.com/dt8888/game

    1.8K50

    经典游戏—贪吃蛇从C++代码实现

    大家好,又见面了,我是你们的朋友全栈君。 1. 题目描述 小时候都玩过贪吃蛇这个经典的小游戏,在我们的普通手机里似乎都是必备的。它伴随着我们的童年,经历了好多好多时光。它带给我们了许多的乐趣。...分析思路 下面就来讲讲贪吃蛇的整个设计思路: 一、 贪吃蛇的特点是随机产生食物后,然后通过上下左右地方向键来控制贪吃蛇的移动, 当碰到食物时,便把它吃掉,从而身体长度增加一个,这里便采用...二、 然后便是吃食的问题了,当蛇头遇到一个食物时(食物在贪吃蛇前进的方向上),便将该食物变为蛇头,然后将原先的蛇头变为蛇身,从而达到了吃食的目的。 那如果没有碰到食物呢?...四、 为了增加游戏的娱乐性,我又从中加入了等级选择功能,通过输入数字来选择等级,等级越高,贪吃蛇移动速度越快,而且得分越高。...而是通过选择的方式决定继续游戏或者退出游戏。

    13.2K21

    一步步教你怎么用python写贪吃蛇游戏

    本文转自:Python专栏 4 后记 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!...首先呢,需要有贪吃蛇、有食物;需要能控制贪吃蛇来上下移动获取食物;贪吃蛇在吃取食物后,自身长度增加,同时食物消失并随机生成新的食物;如果贪吃蛇触碰到四周墙壁或是触碰到自己身体时,则游戏结束。...('人人都是Pythonista - Snake') # 定义一个变量来控制游戏速度 FPSCLOCK = pygame.time.Clock() # 初始化游戏界面内使用的字体 BASICFONT =...food_flag = 1 3.3 实现贪吃蛇的上下左右移动 我们需要控制贪吃蛇的上下左右的移动,这里通过监听键盘输入来实现。利用键盘中的上下左右键或WASD键来控制贪吃蛇的运动。...snake_Body.insert(0, list(snake_Head)) 3.4 判断是否吃到食物 如果蛇头与食物的位置重合,则判定吃到食物,将食物数量清零;而没吃到食物的话,蛇身就会跟着蛇头运动

    1.6K00

    用C语言写贪吃蛇笔记-1

    ,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束...用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。...如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇...---- 数据结构设计及用法说明 开始部分: 由于贪吃蛇游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,由此我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面...除了游戏结束画面外,我还设置了一个游戏退出画面,并提示玩家是否退出游戏或者是继续此前游戏。

    2.3K30

    贪吃蛇穿墙代码_C语言贪吃蛇实现暂停功能

    从文件读取最高分 更新最高分到文件 主函数 游戏说明 游戏界面当中没有打印相关的按键说明,这里做出统一说明: 按方向键上下左右,可以改变蛇的移动方向。...特别注意,代码当中需要将非边界的位置标记为空,你可能觉得这没有必要,因为又没有墙在存在,蛇活动的区域当中都是空的,只要到时候标记蛇身的位置,然后通过判断蛇头是否撞到蛇身来确定游戏是否结束即可。...当然,如果你只玩一局游戏,这完全没有问题,也不会出现什么奇怪的事情,但是如果你在某次死亡后点击的是再来一局,那么你将会在新开的一局游戏当中走着走着莫名其妙的游戏就结束了。...} 游戏主体逻辑函数 主体逻辑: 首先第一次进入该函数,默认蛇向右移动,进而执行run函数。...计算时也需要考虑越过边界的问题(和移动蛇那里一样)。

    2.6K30

    利用Python自制贪吃蛇游戏

    作者:丹枫无迹 来源:大龄码农的Python之路 一、游戏介绍 贪吃蛇是个非常简单的游戏,适合练手。先来看一下我的游戏截图: ?...二、游戏分析 贪吃蛇这个游戏很简单,屏幕上随机出现一个点,表示“食物”,上下左右控制“蛇”的移动,吃到“食物”以后“蛇”的身体加长,“蛇”碰到边框或自己的身体,则游戏结束。...我们可以用坐标来表示每一个小方格,X 轴和 Y 轴的范围都是可以设定好的。用一个列表来存放“蛇身”的坐标,那么一条“蛇”就出来了,最后只要显示的时候以不同的颜色表示即可。 2、蛇怎么移动?...“蛇”移动超出了游戏区的范围或者碰到了自己就算输了,轴坐标的范围是事先定好的,超出范围很容易判断。那么如何判断碰到自己呢?...如果脑子里想的是“蛇”动的画面,那真的比较难了,但是放到代码中,我们的“蛇”是一个列表,那么只要判断下一格的坐标是否已经包含在“蛇”的列表中岂不就可以了? 理清了这些问题,我们就可以开始编码了。

    67810

    通过C语言设计的贪吃蛇游戏(控制台终端)

    可以通过按下’w’、‘s’、‘a’、'd’四个键来分别控制蛇的向上、向下、向左、向右移动。同时还有一个暂停函数Pause(),用于控制蛇的移动速度,可以根据需要调整暂停时间。...Move()函数用于蛇的移动,根据当前行进方向进行移动。Control()函数用于用户操作,读取键盘输入并更新蛇的行进方向。Pause()函数用于控制游戏速度,通过调用Sleep()函数控制暂停时间。...length = 3; //蛇身长度,初始为3 int direction = 0; //蛇的行进方向,0表示向右,1表示向下,2表示向左,3表示向上 //函数声明 void InitGame...(); //检查游戏是否结束 void GenerateFood(); //生成随机食物 void Move(); //蛇的移动 void Control(); //用户操作,控制蛇的移动...= BLANK); //如果随机到的位置不为空白,则重新随机 food.x = x; food.y = y; board[x][y] = FOOD; //在随机位置生成食物 } //蛇的移动

    38630

    Python:游戏:贪吃蛇原理及代码实现

    一、游戏介绍 贪吃蛇是个非常简单的游戏,适合练手。先来看一下我的游戏截图: ? 玩法介绍: 回车键:开始游戏 空格键:暂停 / 继续 ↑↓←→方向键 或 WSAD 键:控制移动方向。...二、游戏分析 贪吃蛇这个游戏很简单,屏幕上随机出现一个点,表示“食物”,上下左右控制“蛇”的移动,吃到“食物”以后“蛇”的身体加长,“蛇”碰到边框或自己的身体,则游戏结束。...我们可以用坐标来表示每一个小方格,X 轴和 Y 轴的范围都是可以设定好的。用一个列表来存放“蛇身”的坐标,那么一条“蛇”就出来了,最后只要显示的时候以不同的颜色表示即可。 2、蛇怎么移动?...“蛇”移动超出了游戏区的范围或者碰到了自己就算输了,轴坐标的范围是事先定好的,超出范围很容易判断。那么如何判断碰到自己呢?...如果脑子里想的是“蛇”动的画面,那真的比较难了,但是放到代码中,我们的“蛇”是一个列表,那么只要判断下一格的坐标是否已经包含在“蛇”的列表中岂不就可以了? 理清了这些问题,我们就可以开始编码了。

    2.8K40
    领券