python写的贪吃蛇小游戏_Python贪吃蛇小游戏
贪吃蛇
1. 导入游戏库
# 1.导入库
import pgzrun
import random
2.游戏初始化
# 2.初始化
# 窗口大小
WIDTH = 600
HEIGHT = 480
# 贪吃蛇
bodys = [ [100,100],[80,100], [60,100], [40,100], [20,100]]
head = [100,100]
d = 'right'
# 食物
food = [290,290]
# 得分
score=0
3.游戏窗口绘制
def draw():
#清空屏幕
screen.clear()
# 绘制网格
for i in range(1,24):
screen.draw.line((0,i*20),(600,i*20),'gray')
for i in range(1,30):
screen.draw.line((i*20,0),(i*20,480),'gray')
#绘制蛇
for body in bodys:
rect = Rect(body,(20,20))
screen.draw.filled_rect(rect,(0,0,255))
inner = [body[0]+2,body[1]+2]
rect = Rect(inner, (15, 15),center='center')
screen.draw.filled_rect(rect, (0, 0, 180))
# 绘制头
rect = Rect(head, (20, 20))
screen.draw.filled_rect(rect, (0, 200,0))
inner = [head[0] + 2, head[1] + 2]
rect = Rect(inner, (15, 15))
screen.draw.filled_rect(rect, (0, 255, 12))
# 绘制食物
screen.draw.filled_circle(food,10, '#ffddee')
# 绘制得分
screen.draw.text('score:'+str(score),(20, 20), color="orange",fontsize=30)
4.蛇的移动功能
def run():
global food,d,head,bodys,score
# 新增一个格子的身体
if d=='right':
head[0] += 20
elif d=='left':
head[0] -= 20
elif d=='up':
head[1] -= 20
else:
head[1] += 20
bodys.insert(0,list(head))
if head[0] == food[0]-10 and head[1] == food[1] - 10:
food = [random.randint(1,30)*20-10,random.randint(1,20)*20-10]
score+=1
if score>3:
clock.unschedule(run)
clock.schedule_interval(run, 0.1)
else:
bodys.pop()
# 撞墙后重新开始
if head[0]<0 or head[0]>580 or head[1]<0 or head[1]>480 or head in
bodys[1:]:
# 蛇回到初始位置
bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]
head = [100, 100]
# 方向向右
d = 'right'
# 得分清零
score=0
clock.unschedule(run)
clock.schedule_interval(run, 0.3)
5.按键控制蛇的行走方向
# 按键控制蛇的行走方向
def on_key_down(key):
global d
# 改变方向
if key == keys.DOWN and d != 'up':
d = 'down'
if key == keys.UP and d != 'down':
d = 'up'
if key == keys.LEFT and d != 'right':
d = 'left'
if key == keys.RIGHT and d != 'left':
d = 'right'
6.启动游戏
# 定时设置
clock.schedule_interval(run, 0.3)
# 播放音乐
music.play('music.mp3')
# 启动游戏
pgzrun.go()
python写的贪吃蛇小游戏_Python贪吃蛇小游戏相关推荐
- 如何用python制作五子棋游戏_Python制作打地鼠小游戏
原文链接 Python制作小游戏(二十一)mp.weixin.qq.com 效果展示 打地鼠小游戏https://www.zhihu.com/video/1200492442610450432 简介 ...
- python写飞机大战游戏_python实现飞机大战游戏
飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累.实现出来,成就感还是满满的),如图所示: 完整代码如下: 1.工 ...
- python编游戏_python编的著名游戏
python编的著名游戏 2019-03-18 15:59:33 3323 0 没有找到相关结果 已邀请: 目前使用Python编写的游戏有文明4.星际迷航:舰桥指挥官.战地2等,小游戏有俄罗斯方 ...
- python做的大型游戏_Python有做大型游戏的潜力吗?
由于最近我要考试忙不过来没修改回答,谢谢评论区大们的指正,我认识到的pygame库确实可以做游戏,但是pygame限制很多,特别是做大型游戏方面,3D还没有相关的优化方法等(3D游戏,pygame表示 ...
- python做飞机大战游戏_python实现飞机大战游戏
飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累.实现出来,成就感还是满满的),如图所示: 完整代码如下: 1.工 ...
- python设计棋牌游戏_python开发棋牌类游戏
pycharm专门针对用户打造的一种可以进行编辑的工具,它的功能设置比较强大,而且具有跨平台的使用特性,能方便用户通过跨平台的方式使用该软件,有效节省的使用时间,那么这款详情>> 阅读: ...
- python写出来的程序怎么用_python写完程序怎么运行
安装并配置完成之后,我们就可以编写第一个python程序.学过其他语言的兄弟姐妹们,都知道语言的入门程序就是hello world.那么,我们这里也以hello world来抛砖引玉,打开python ...
- python扫雷游戏_python实现扫雷小游戏
前面我们用python实现了贪吃蛇.坦克大战.飞船大战.五子棋等游戏 今天我们用python来实现一下扫雷游戏 本游戏代码量和源文件较多 可以从我的GitHub地址中获取 构建地雷区 import r ...
- python人机猜拳游戏_Python实现剪刀石头布小游戏(与电脑对战)
具体代码如下所述: srpgame.py #!/urs/bin/env python import random all_choice = ['石头','剪刀','布'] win_list = [[' ...
最新文章
- 聚类技术---复杂网络社团检测_数据挖掘的技术有很多种,常用的数据挖掘技术就这13种...
- 【Python】SQLAlchemy长时间未请求,数据库连接断开的原因、解决方案
- matlab中均线交易策略,【每日一策】Matlab量化交易策略之 均线选股策略
- java在画布上画出变量_急..JAVA 在画布上画拖动滚动条可扩大缩小的长方形
- MC新手入门(二十八)------ 顺序结构程序
- maxwell监控mysql_利用Maxwell组件实时监听Mysql的binlog日志
- MySQL经常使用命令--create命令使用
- Leetcode刷题记录:构建最大数二叉树
- ORACLE11g升级19c,报ORA-01017
- Visual Studio Community 2017安装步骤(只装C++)
- 支付宝第三方应用,用户登录授权获取信息
- 一位技术主管的十年编程经验总结
- wxPython下载安装教程
- Binet‘s Formula 算法
- 利用栈实现中缀表达式转前缀表达式
- Bother, disturb and trouble 三个表示 “打扰” 的词语区分
- 系统cpu主频查看设置
- 如何在本地搭建FTP服务器以及搭建后的用途
- Nginx如何跳转到非443端口的https
- C语言正确的输入格式和输入方式
热门文章
- kali mysql停止服务器_从零开始:手把手教你黑客入门攻破服务器并获取ROOT权限...
- mysql触发器求属性和_MySQL触发器demo
- linux cmake变量,linux – CMake错误:此项目中使用了以下变量,但它们设置为NOTFOUND...
- 怎么修改腾讯视频的昵称
- Java面试题整理(附参考答案)
- java 泛型的上限与下限、泛型通配符、泛型上下限
- Eclipse 导入项目乱码问题
- python中sorted函数的用法_Python3 中sorted() 函数的用法
- android 蓝牙sco stream_voice_call,android TTS输出总是要 A2DP_android_开发99编程知识库
- 递归算法及其时间复杂度分析