代码

#!/usr/bin/env python
import pygame,sys,time,random
from pygame.locals import *
# 定义颜色变量
redColour = pygame.Color(255,0,0)
blackColour = pygame.Color(0,0,0)
whiteColour = pygame.Color(255,255,255)
greyColour = pygame.Color(150,150,150)# 定义gameOver函数
def gameOver(playSurface):gameOverFont = pygame.font.Font('arial.ttf',72)gameOverSurf = gameOverFont.render('Game Over', True, greyColour)gameOverRect = gameOverSurf.get_rect()gameOverRect.midtop = (320, 10)playSurface.blit(gameOverSurf, gameOverRect)pygame.display.flip()time.sleep(5)pygame.quit()sys.exit()# 定义main函数
def main():# 初始化pygamepygame.init()fpsClock = pygame.time.Clock()# 创建pygame显示层playSurface = pygame.display.set_mode((640,480))pygame.display.set_caption('Raspberry Snake')# 初始化变量snakePosition = [100,100]snakeSegments = [[100,100],[80,100],[60,100]]raspberryPosition = [300,300]raspberrySpawned = 1direction = 'right'changeDirection = directionwhile True:# 检测例如按键等pygame事件for event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()elif event.type == KEYDOWN:# 判断键盘事件if event.key == K_RIGHT or event.key == ord('d'):changeDirection = 'right'if event.key == K_LEFT or event.key == ord('a'):changeDirection = 'left'if event.key == K_UP or event.key == ord('w'):changeDirection = 'up'if event.key == K_DOWN or event.key == ord('s'):changeDirection = 'down'if event.key == K_ESCAPE:pygame.event.post(pygame.event.Event(QUIT))# 判断是否输入了反方向if changeDirection == 'right' and not direction == 'left':direction = changeDirectionif changeDirection == 'left' and not direction == 'right':direction = changeDirectionif changeDirection == 'up' and not direction == 'down':direction = changeDirectionif changeDirection == 'down' and not direction == 'up':direction = changeDirection# 根据方向移动蛇头的坐标if direction == 'right':snakePosition[0] += 20if direction == 'left':snakePosition[0] -= 20if direction == 'up':snakePosition[1] -= 20if direction == 'down':snakePosition[1] += 20# 增加蛇的长度snakeSegments.insert(0,list(snakePosition))# 判断是否吃掉了树莓if snakePosition[0] == raspberryPosition[0] and snakePosition[1] == raspberryPosition[1]:raspberrySpawned = 0else:snakeSegments.pop()# 如果吃掉树莓,则重新生成树莓if raspberrySpawned == 0:x = random.randrange(1,32)y = random.randrange(1,24)raspberryPosition = [int(x*20),int(y*20)]raspberrySpawned = 1# 绘制pygame显示层playSurface.fill(blackColour)for position in snakeSegments:pygame.draw.rect(playSurface,whiteColour,Rect(position[0],position[1],20,20))pygame.draw.rect(playSurface,redColour,Rect(raspberryPosition[0], raspberryPosition[1],20,20))# 刷新pygame显示层pygame.display.flip()# 判断是否死亡if snakePosition[0] > 620 or snakePosition[0] < 0:gameOver(playSurface)if snakePosition[1] > 460 or snakePosition[1] < 0:for snakeBody in snakeSegments[1:]:if snakePosition[0] == snakeBody[0] and snakePosition[1] == snakeBody[1]:gameOver(playSurface)# 控制游戏速度fpsClock.tick(5)if __name__ == "__main__":main()

游戏界面

python语言实现贪吃蛇相关推荐

  1. 使用Python语言制作贪吃蛇游戏,并制作成为exe可执行文件

    本项目为贪吃蛇游戏,上下左右控制蛇的行走路径,并将游戏打包为exe文件,可供其他没有python环境和代码的电脑 Play 游戏! 目录 一.项目成果 二.项目架构 三.项目代码 四.环境搭建 五.矢 ...

  2. python编程小游戏-10分钟用Python编写一个贪吃蛇小游戏,简单

    贪吃蛇,大家应该都玩过.小编当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最 ...

  3. 10分钟用python编写贪吃蛇小游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏...

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  4. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

  5. 10分钟python游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  6. 用pygame做一个简单的python小游戏---贪吃蛇

    用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...

  7. 学生学python编程---实现贪吃蛇小游戏+源码

    学生学python编程---实现贪吃蛇小游戏+源码 前言 主要设计 1.蛇的表示 2.蛇怎么移动? 3.玩家控制小蛇移动功能的实现 4.如何判定游戏结束? 应用知识点 1.python知识点 1.1 ...

  8. Python 简单实现贪吃蛇小游戏

    文章目录 1. pygame库的简介2. pygame库的安装3. python代码实现贪吃蛇小游戏4. pyinstaller打包成exe 很多人学习python,不知道从何学起. 很多人学习pyt ...

  9. 10分钟用Python编写一个贪吃蛇小游戏

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

最新文章

  1. mac mysql5.7 my_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决
  2. android-sdk-windows下载版
  3. 项目描述_单元测试技巧:创建描述性测试
  4. 如何在1年内从产品助理到产品高管?
  5. java常见的时间处理工具类
  6. java 快速删除文件夹_如何用Java删除文件夹里的所有文件?
  7. 《Java线程与并发编程实践》—— 2.6 小结
  8. Go 能拯救已经失败的可视化编程?
  9. [算法课]算法课全题目解答及各周链接
  10. 服务器集群速度文件传输,为什么要实现服务器集群
  11. 大学物理实验(二)气体比热容比的测定
  12. android 6g 有必要吗,手机6g运存有必要吗
  13. 运营商宽带网速为什么用bit而不用byte
  14. 容联AI获AIIA智能客服最高等级认证
  15. iOS 偏好设置 NSUserDefault
  16. 【Linux】IFS是个什么鬼
  17. 网页上facebook分享功能的具体实现
  18. 有一种图片形式是“data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQ…==”...
  19. AD模数转化电路的一种实现方式
  20. 提高质量管理体系的有效性(转载)

热门文章

  1. angularjs的$on、$emit、$broadcast
  2. UINavgationController中覆写preferredStatusBarStyle方法不执行的问题
  3. filter的原理(转)
  4. 用vim看代码的常用指令
  5. 定时执行程序-Quartz简单实例
  6. struts2 s:optiontransferselect 标签的使用
  7. 嵌入式Linux文件提取,嵌入式 Linux系统编程(四)——文件属性
  8. java主类与源代码名称_java 获取操作系统名称 附源代码
  9. 每日程序C语言8-打印“水仙花数”
  10. C语言学习之分别用while、for 编写程序,计算2*4*6*......*100的值