python贪吃蛇简单代码_Python贪吃蛇简单的代码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在自学Python的过程中在网上查询资料时发现了一些好玩的东西,python的游戏库模块,它可以自己弄一个小游戏来玩玩,然后我在网上找了一些游戏的代码,,自己改了一些,弄出了一个简单贪吃蛇,代码也是照着敲的只是稍微的改了一下
import pygame, sys, random, time
from pygame.locals import * # 从pygame模块导入常用的函数和常量
# 定义颜色变量
black_colour = pygame.Color(28, 56, 20)
white_colour = pygame.Color(255, 144, 20)
red_colour = pygame.Color(255,34 , 20)
grey_colour = pygame.Color(150, 150, 150)
# 定义游戏结束函数
def GameOver(gamesurface):
# 设置提示字体的格式
GameOver_font = pygame.font.SysFont("MicrosoftYaHei", 16)
# 设置提示字体的颜色
GameOver_colour = GameOver_font.render('GameOver', True, grey_colour)#只能英文
# 设置提示位置
GameOver_location = GameOver_colour.get_rect()
GameOver_location.midtop = (310, 200)
# 绑定以上设置到句柄
gamesurface.blit(GameOver_colour, GameOver_location)
# 提示运行信息
pygame.display.flip()
# 休眠5秒
time.sleep(5)
# 退出游戏
pygame.quit()
# 退出程序
sys.exit()
# 定义主函数
def main():
# 初始化pygame,为使用硬件做准备
pygame.init()
pygame.time.Clock()
ftpsClock = pygame.time.Clock()
# 创建一个窗口
gamesurface = pygame.display.set_mode((640, 480))
# 设置窗口的标题
pygame.display.set_caption('tanchishe snake')
# 初始化变量
# 初始化贪吃蛇的起始位置
snakeposition = [100, 100]
# 初始化贪吃蛇的长度
snakelength = [[100, 100], [80, 100], [60, 100]]
# 初始化目标方块的位置
square_purpose = [300, 300]
# 初始化一个数来判断目标方块是否存在
square_position = 1
# 初始化方向,用来使贪吃蛇移动
derection = "right"
change_derection = derection
# 进行游戏主循环
while True:
# 检测按键等pygame事件
for event in pygame.event.get():
if event.type == QUIT:
# 接收到退出事件后,退出程序
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
# 判断键盘事件,用w,s,a,d来表示上下左右
if event.key == K_RIGHT or event.key == ord('d'):
change_derection = "right"
if event.key == K_LEFT or event.key == ord('a'):
change_derection = "left"
if event.key == K_UP or event.key == ord('w'):
change_derection = "up"
if event.key == K_DOWN or event.key == ord('s'):
change_derection = "down"
if event.key == K_ESCAPE:
pygame.event.post(pygame.event.Event(QUIT))
# 判断移动的方向是否相反
if change_derection == 'left' and not derection == 'right':
derection = change_derection
if change_derection == 'right' and not derection == 'left':
derection = change_derection
if change_derection == 'up' and not derection == 'down':
derection = change_derection
if change_derection == 'down' and not derection == 'up':
derection = change_derection
# 根据方向,改变坐标
if derection == 'left':
snakeposition[0] -= 20
if derection == 'right':
snakeposition[0] += 20
if derection == 'up':
snakeposition[1] -= 20
if derection == 'down':
snakeposition[1] += 20
# 增加蛇的长度
snakelength.insert(0, list(snakeposition))
# 判断是否吃掉目标方块
if snakeposition[0] == square_purpose[0] and snakeposition[1] == square_purpose[1]:
square_position = 0
else:
snakelength.pop()
# 重新生成目标方块
if square_position == 0:
# 随机生成x,y,扩大二十倍,在窗口范围内
x = random.randrange(1, 32)
y = random.randrange(1, 24)
square_purpose = [int(x * 20), int(y * 20)]
square_position = 1
# 绘制pygame显示层
gamesurface.fill(black_colour)
for position in snakelength:
pygame.draw.rect(gamesurface, white_colour, Rect(position[0], position[1], 20, 20))
pygame.draw.rect(gamesurface, red_colour, Rect(square_purpose[0], square_purpose[1], 20, 20))
# 刷新pygame显示层
pygame.display.flip()
# 判断是否死亡
if snakeposition[0] < 0 or snakeposition[0] > 620:
GameOver(gamesurface)
if snakeposition[1] < 0 or snakeposition[1] > 460:
GameOver(gamesurface)
for snakebody in snakelength[1:]:
if snakeposition[0] == snakebody[0] and snakeposition[1] == snakebody[1]:
GameOver(gamesurface)
# 控制游戏速度
ftpsClock.tick(8)
if __name__ == "__main__":
main()
python贪吃蛇简单代码_Python贪吃蛇简单的代码相关推荐
- python在线翻译代码_Python 20行简单实现有道在线翻译的详解
简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是相关部分的代码: import urllib.re ...
- python怎么清除代码_python的shell中的代码怎么清理?
python shell是Python的命令行. 交互模式下使用Python很方便,如果想清除显示过的信息,有两种方法可以采用. 方法一.针对Python命令行(python shell) 直接使用下 ...
- 贪吃蛇python语言代码_Python贪吃蛇简单的代码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在自学Python的过程中在网上查询资料时发现了一些好玩的东西,python的游戏库模块,它可以自己弄一个小游戏来玩玩,然后我在网上找了一些游戏的代码,, ...
- python贪吃蛇小游戏代码_python 贪吃蛇小游戏代码
#!/usr/bin/python # -*- coding: UTF-8 -*- #作者:黄哥 #链接:https://www.zhihu.com/question/55873159/answer/ ...
- python写的贪吃蛇小游戏_Python贪吃蛇小游戏
贪吃蛇 1. 导入游戏库 # 1.导入库 import pgzrun import random 2.游戏初始化 # 2.初始化 # 窗口大小 WIDTH = 600 HEIGHT = 480 # 贪 ...
- python数码时钟代码_Python+Pyqt实现简单GUI电子时钟
本文实例为大家分享了Python+Pyqt实现简单GUI电子时钟的具体代码,供大家参考,具体内容如下 突发奇想想用GUI做一个简单的电子时钟界面,利用pyqt模块也很方便,代码如下: from PyQ ...
- python简单的聚类分析代码_python kmeans聚类简单介绍和实现代码
一.k均值聚类的简单介绍 假设样本分为c类,每个类均存在一个中心点,通过随机生成c个中心点进行迭代,计算每个样本点到类中心的距离(可以自定义.常用的是欧式距离) 将该样本点归入到最短距离所在的类,重新 ...
- python面向对象大段代码_python面向对象部分简单整理
面向对象 VS 面向过程 面向过程 面向过程的程序设计的核心是过程(流水线式思维) 优点: 极大的降低了写程序的复杂度 缺点: 一整个过程(流水线)只能解决一个问题,若问题更改,代码几乎要全部重写. ...
- python re 简单实例_python的re正则表达式实例代码
本文研究的主要是python的re正则表达式的相关内容,具体如下. 概念:正则表达式(通项公式)是用来简洁表达一组字符串的表达式.优势是简洁,一行胜千言. 应用:字符串匹配. 实例代码: CODEC ...
- python热力图代码_python热力图实现简单方法
在我们想要对不同变量进行判断的时候,会分析其中的之间的联系.这种理念同样也被用在实例生活中,最常见到的是做一个地理的热力图.很多人对画热力图的方法不是很清楚,我们可以先装好相关的工具,了解一些使用参数 ...
最新文章
- Blender 3.0基础入门学习教程 Introduction to Blender 3.0
- 如何判断变量是否是数字
- java中输出时间12小时制转换为24小时制显示
- Hadoop端口介绍及各种启动命令列表
- 云计算的概念_近500亿资金汹涌出逃!云计算概念龙头抛压沉重,科技股资金出逃名单出炉...
- 产品经理和程序员之间的“潜台词”,你能听懂多少?
- githup用户名密码怎么看_MacBook Pro 开机密码忘记解决方法
- 2016电大计算机网考,2016电大计算机网考选择题及答案.doc
- easyUI 的combobox如何获取除valueField和textField外的三个值
- 喜大普奔,FL Studio终于出官方中文版了!
- 将button改为圆形(swift/oc/xcode/iOS)
- clientkey(ClientKeyt利用)
- mysql每次查询加流水号_通过SQL自动添加流水号
- ECshop商城开发系列视频教程后盾网VIP课程
- 图层重命名快捷键_Principle快捷键大全
- win10+黑苹果 单硬盘的双系统引导配置
- iPhone装Android版,在iPhone里装了真·Android系统 这事情已经很神奇了
- T46:字符串转换成整数(Java)
- 微信小程序自定义tabbar底部菜单
- win10 无法打开计算器 显示需要打开新的应用