python60行绘图程序_不敢相信,60行python代码就写出了贪吃蛇游戏
通过写游戏玩编程是一个非常有趣的事,网上用Python写贪吃蛇的代码很多,大部分都用类来写的,比较复杂。今天看到一个非常简洁的贪吃蛇游戏代码,只有60几行,非常适合小白上手,而且思路极其清晰,赶紧分享给大家!
我们先来看一下游戏的效果图:
一般来说一个贪吃蛇游戏需要考虑下面几点:
首先:画出food和snack
接着:控制snack上下左右的移动
然后:计算snack和food的碰撞,然后snack变长
最后:当snack碰到四周的墙壁或者蛇头碰到身体,则游戏结束
看起来需要写的东西还蛮多的,怎么就能60几行代码搞定呢了!大家还记不记得Python有内置的海龟库turtle.这个库可以画出很多好玩有趣的图案和小动画。没错,这个代码就是用turtle这个库完成了!源码非常简单,我一一给大家说一下:
第一步
引用turtle库,里面有一堆简单好玩的函数,方便我们来制作动画的
引用random库,主要是为了让食物随机出现
引用freegames库,这个库把一些元素封装好了,比如方形,二维向量vector.这个二维向量非常重要,因为snack的move,坐标的变换,上升下降等等,我们只需要简单的调用vector里面封装函数就可以搞定。当然这是第三方的库pip install 一下即可!其实看它的源码也是用的turtle.
接着我们初始化出food和snack。注意为啥snack要用list,这个地方非常巧妙我后面会讲到
aim是snack行走的方向Vector(0,10),第一个数字表示x轴,第二个数字表示y轴。10表示向上移动10,如果是-10表示向下移动10
change函数主要是来改变方向的
inside函数是用来判断snack有没有碰到墙壁
第二步
这部分的代码主要是处理动态交互的过程:
1).snack分head和body:
当没有碰到食物的时候,snack只有一个矩形框,既是头也是身体!
所以这里用的snack[-1].copy把head 拷贝一份出来,方便后面的move.
2).考虑游戏如果结束:
一种就是判断有无碰到墙体,或者头部碰到了身体!看这里的代码非常简洁用head in snack,就轻松搞定。
接着snack这里列表会把移动过的head放进来,也就是说snack这时有头和身体了(当前坐标和移动后的坐标)。
3).最难的碰到食物如何处理:
考如果snack碰到了food(蛇吃到食物),应该怎么办?食物会去画布上的随机另外一个坐标,snack会变长。
否则snack列表pop(0),也就是只保留移动后的坐标。
非常巧妙的解决了snack身体变成的问题.
4).接着把food画出来,把snack的整体身体和头都画出来
5).为了用动态移动的效果,需要用循环!这里用了一个递归循环调用move函数,并且设置为300ms的延迟
第三步
这里主要是初始化画布,已经绑定一些键盘的方向键,这样好让snack上下左右移动!然后用listen()来监听。
有同学问hideturtle()函数是干吗的,主要是隐藏海龟头,用过turtle的同学就懂的!
这个我目前为止见过的最简单的贪吃蛇的游戏源码,非常牛逼!也非常适合小白上手玩,基本上没有复杂的概念。大家有兴趣可以去看Github上的源码,一定获益匪浅!
python60行绘图程序_不敢相信,60行python代码就写出了贪吃蛇游戏相关推荐
- 贪吃蛇python撞墙不死_不敢相信,60行python代码就写出了贪吃蛇游戏
通过写游戏玩编程是一个非常有趣的事,网上用Python写贪吃蛇的代码很多,大部分都用类来写的,比较复杂.今天看到一个非常简洁的贪吃蛇游戏代码,只有60几行,非常适合小白上手,而且思路极其清晰,赶紧分享 ...
- 用200行C语言代码写出一个贪吃蛇——1.0(基本版)
1.设计思路 总的来说,贪吃蛇这个小游戏涉及到的东西不多,但是对逻辑思维是比较吃基本功的. 贪吃蛇,显示给我们看的有三部分:蛇.食物.地图边界. 我们可以用一个二维数组来标记这些部分: 例如这里我创建 ...
- python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
有吧友需要PDF的下载站点,好吧,我这边汇总一下 [经验]谈谈怎么找自己想要的资源吧~ http://www.cnblogs.com/dunitian/p/4715482.html PDF Free ...
- php调用python绘图程序_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
- 记事本贪吃蛇游戏代码_厉害了,程序员28行代码写贪吃蛇游戏,附源码!
对于贪吃蛇游戏,大家基本上都玩过,但是作为一个程序员,大家是否想过要自己去写一个贪吃蛇,毕竟玩别人写的游戏和自己写的游戏是两种截然不同的感受,而且也可以通过制作来提升自己的技术! 其实贪吃蛇的逻辑并不 ...
- python设计贪吃蛇游戏论文_用Python写一个贪吃蛇AI,让程序自己玩游戏
前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...
- python新手程序_推荐:一个适合于Python新手的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
- c语言程序员写贪吃蛇代码28,厉害了,程序员28行代码写贪吃蛇游戏,附源码!...
对于贪吃蛇游戏,大家基本上都玩过,但是作为一个程序员,大家是否想过要自己去写一个贪吃蛇,毕竟玩别人写的游戏和自己写的游戏是两种截然不同的感受,而且也可以通过制作来提升自己的技术! 其实贪吃蛇的逻辑并不 ...
- 单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏
为了让大家更深入地了解底层的原理,在讲解时特意选择了51单片机(而非STM系列),另外16*16点阵由译码器和移位缓存器直接驱动(而非MAX系列芯片),摇杆也利用ADC功能判断方向. 那如何让单片机驱 ...
最新文章
- (转)C语言位运算详解
- 【c语言】蓝桥杯算法提高 征税程序
- IOS delegate 委托 使用 两个View之间传数据
- 判断滚动条是否到某个位置,还有滑动的方向,以此来判断什么时候阻止滚动条滚动...
- poj2079(一堆点找出最大的三角形)
- 小度智能音箱维修点_智能音箱哪个好?小度 小爱 天猫 评测
- 【Nginx】判断URL中是否存在某个参数Parameter
- js中的showModalDialog的实战应用
- 【Linux】一步一步学Linux——make命令(259)
- 关于python的垃圾回收机制_Python的垃圾回收机制
- 【jQuery学习】—jQuery对象的过滤
- JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
- 图文并茂带你了解依存句法分析
- CentOS安装Nvidia驱动和CUDA
- java的dequeue_$.queue() 与 $.dequeue() -- 队列
- 51单片机带闹钟c语言程序,51单片机带闹钟可调时间的电子时钟程序设计
- C++两个函数可以相互递归吗_设计递归函数竟然这么简单!
- 惠普CEO李艾科的“金刚钻儿”
- H5+在浏览器中打开相机扫描二维码
- 6.Spring Cloud初相识-------Zool路由