该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在自学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贪吃蛇简单的代码相关推荐

  1. python在线翻译代码_Python 20行简单实现有道在线翻译的详解

    简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是相关部分的代码: import urllib.re ...

  2. python怎么清除代码_python的shell中的代码怎么清理?

    python shell是Python的命令行. 交互模式下使用Python很方便,如果想清除显示过的信息,有两种方法可以采用. 方法一.针对Python命令行(python shell) 直接使用下 ...

  3. 贪吃蛇python语言代码_Python贪吃蛇简单的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在自学Python的过程中在网上查询资料时发现了一些好玩的东西,python的游戏库模块,它可以自己弄一个小游戏来玩玩,然后我在网上找了一些游戏的代码,, ...

  4. python贪吃蛇小游戏代码_python 贪吃蛇小游戏代码

    #!/usr/bin/python # -*- coding: UTF-8 -*- #作者:黄哥 #链接:https://www.zhihu.com/question/55873159/answer/ ...

  5. python写的贪吃蛇小游戏_Python贪吃蛇小游戏

    贪吃蛇 1. 导入游戏库 # 1.导入库 import pgzrun import random 2.游戏初始化 # 2.初始化 # 窗口大小 WIDTH = 600 HEIGHT = 480 # 贪 ...

  6. python数码时钟代码_Python+Pyqt实现简单GUI电子时钟

    本文实例为大家分享了Python+Pyqt实现简单GUI电子时钟的具体代码,供大家参考,具体内容如下 突发奇想想用GUI做一个简单的电子时钟界面,利用pyqt模块也很方便,代码如下: from PyQ ...

  7. python简单的聚类分析代码_python kmeans聚类简单介绍和实现代码

    一.k均值聚类的简单介绍 假设样本分为c类,每个类均存在一个中心点,通过随机生成c个中心点进行迭代,计算每个样本点到类中心的距离(可以自定义.常用的是欧式距离) 将该样本点归入到最短距离所在的类,重新 ...

  8. python面向对象大段代码_python面向对象部分简单整理

    面向对象 VS 面向过程 面向过程 面向过程的程序设计的核心是过程(流水线式思维) 优点: 极大的降低了写程序的复杂度 缺点: 一整个过程(流水线)只能解决一个问题,若问题更改,代码几乎要全部重写. ...

  9. python re 简单实例_python的re正则表达式实例代码

    本文研究的主要是python的re正则表达式的相关内容,具体如下. 概念:正则表达式(通项公式)是用来简洁表达一组字符串的表达式.优势是简洁,一行胜千言. 应用:字符串匹配. 实例代码: CODEC ...

  10. python热力图代码_python热力图实现简单方法

    在我们想要对不同变量进行判断的时候,会分析其中的之间的联系.这种理念同样也被用在实例生活中,最常见到的是做一个地理的热力图.很多人对画热力图的方法不是很清楚,我们可以先装好相关的工具,了解一些使用参数 ...

最新文章

  1. Blender 3.0基础入门学习教程 Introduction to Blender 3.0
  2. 如何判断变量是否是数字
  3. java中输出时间12小时制转换为24小时制显示
  4. Hadoop端口介绍及各种启动命令列表
  5. 云计算的概念_近500亿资金汹涌出逃!云计算概念龙头抛压沉重,科技股资金出逃名单出炉...
  6. 产品经理和程序员之间的“潜台词”,你能听懂多少?
  7. githup用户名密码怎么看_MacBook Pro 开机密码忘记解决方法
  8. 2016电大计算机网考,2016电大计算机网考选择题及答案.doc
  9. easyUI 的combobox如何获取除valueField和textField外的三个值
  10. 喜大普奔,FL Studio终于出官方中文版了!
  11. 将button改为圆形(swift/oc/xcode/iOS)
  12. clientkey(ClientKeyt利用)
  13. mysql每次查询加流水号_通过SQL自动添加流水号
  14. ECshop商城开发系列视频教程后盾网VIP课程
  15. 图层重命名快捷键_Principle快捷键大全
  16. win10+黑苹果 单硬盘的双系统引导配置
  17. iPhone装Android版,在iPhone里装了真·Android系统 这事情已经很神奇了
  18. T46:字符串转换成整数(Java)
  19. 微信小程序自定义tabbar底部菜单
  20. win10 无法打开计算器 显示需要打开新的应用

热门文章

  1. 超全!0基础程序员从入门到工作(持续更新...)
  2. 免费的ERP软件哪一款好用?这3款让综合管理更高效
  3. Administration interface
  4. Windows系统重装教程完整版(系统备份、系统还原与重装)
  5. Unity物体跟随鼠标移动
  6. Linux svn服务器自身回退版本
  7. 计算机网络技术云计算简历模板,云计算平台师个人简历模板
  8. MySQL 8.0.28 忘记密码,重置密码
  9. KITTI数据集下载链接
  10. Windows7系统的70个小技巧