Python 简易版贪食蛇

简易版贪食蛇代码如下,直接运行即可。

1. 效果图

2.源代码

源代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import pygame as pygame
import random
import sysfrom pygame.rect import Rectclass Snake(object):def __init__(self):self.black = pygame.Color(0, 0, 0)self.green = pygame.Color(0, 255, 0)self.white = pygame.Color(255, 255, 255)def gameover(self):pygame.quit()sys.exit()def initialize(self):pygame.init()clock = pygame.time.Clock()playSurface = pygame.display.set_mode((800, 600))pygame.display.set_caption('tanshishe')snakePosition = [80, 80]snakebody = [[80, 80], [60, 80], [40, 80]]targetPosition = [200, 400]targetflag = 1direction = 'right'changeDirection = directionself.main(snakebody, targetPosition, targetflag, direction, changeDirection, snakePosition, playSurface, clock)def main(self, snakebody, targetPosition, targetflag, direction, changeDirection, snakePosition, playSurface,clock):while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_RIGHT:changeDirection = 'right'print("向右转")if event.key == pygame.K_LEFT:changeDirection = 'left'print("向左转")if event.key == pygame.K_DOWN:changeDirection = 'down'print("向上走")if event.key == pygame.K_UP:changeDirection = 'up'print("向下走")if event.key == pygame.K_ESCAPE:pygame.event.post(pygame.event.Event(pygame.QUIT))if (changeDirection == 'left' and not direction == 'right'):direction = changeDirectionif (changeDirection == 'right' and not direction == 'left'):direction = changeDirectionif (changeDirection == 'down' and not direction == 'up'):direction = changeDirectionif (changeDirection == 'up' and not direction == 'down'):direction = changeDirectionif direction == 'right':snakePosition[0] += 20if direction == 'left':snakePosition[0] -= 20if direction == 'down':snakePosition[1] += 20if direction == 'up':snakePosition[1] -= 20snakebody.insert(0, list(snakePosition))if (snakePosition[0] == targetPosition[0] and snakePosition[1] == targetPosition[1]):targetflag = 0else:snakebody.pop()if targetflag == 0:x = random.randrange(1, 40)y = random.randrange(1, 30)targetPosition = [int(x * 20), int(y * 20)]targetflag = 1playSurface.fill(self.black)for position in snakebody:pygame.draw.rect(playSurface, self.white, Rect(position[0], position[1], 20, 20))pygame.draw.rect(playSurface, self.green, Rect(targetPosition[0], targetPosition[1], 20, 20))pygame.display.flip()if (snakePosition[0] > 900 or snakePosition[0] < 0):snake.gameover()elif (snakePosition[1] > 800 or snakePosition[0] < 0):snake.gameover()for i in snakebody[1:]:if (snakePosition[0] == i[0] and snakePosition[1] == i[1]):snake.gameover()clock.tick(5)snake = Snake()
snake.initialize()

Python 简易版贪食蛇(源代码)相关推荐

  1. [原]Console小技巧——Console版贪食蛇

    这一篇是我的Console小技巧的最后一篇文章,以下是索引: 1.[原]Console小技巧--七彩输出 2.[原]Console小技巧--字符涂鸦 3.[原]Console小技巧--Console版 ...

  2. java贪吃蛇设计流程_JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)

    JAVA版贪食蛇(贪吃蛇)游戏的设计与实现(含录像)(任务书,开题报告,外文翻译,毕业论文12000字,程序代码,MySQL数据库,答辩PPT,答辩视频录像) 摘要 "贪食蛇"游戏 ...

  3. python简易版成绩管理系统_Python 实现简易版成绩管理系统

    上一次,公众号介绍了如何使用 Python 实现单链表,下面让我们一探单链表的简单应用:在命令行,实现简易版成绩管理系统. 这次的简易版成绩管理系统,主要有六大功能:增加学生信息.删除学生信息.修改学 ...

  4. tomcat websock html5,websocket实战(4) websocket版贪食蛇游戏(tomcat官方自带)

    通过前面3篇的阐述,相信可以构建一个简单的socket应用了.当然,也会遗漏了许多知识点,相信会在以后分享的实例中捎带说明下. 本文的主要是分析下tomcat官方自带的贪食蛇游戏.为什么选择分析这个项 ...

  5. Python 简易版小工具 | 计算天数

    文章目录 简易版小工具 | 计算天数 需求 实现思路 代码实现 使用效果 简易版小工具 | 计算天数 需求 给定一个日期,格式如 "2020-2-12",计算出这个日期是 2020 ...

  6. python低配贪食蛇

    那是一个无聊的下午,无聊的我看着无聊的py教程,了解到pygame这个奇妙的库后,我忽然想做一个无聊的贪食蛇玩玩..于是 #v0.1 ByDOGGOD_Q import pygame from ran ...

  7. Java版贪食蛇游戏的设计与实现毕业设计

    技术:Java.JSP等 摘要: 使用java语言,贪吃蛇游戏,其界面简单易于操作,受到了世界各地玩家的喜爱.近年来,作为一种的高级语言java收到了大家的欢迎欢迎,具有简单.易于理解的特性,被广泛应 ...

  8. 网页版贪食蛇【基于HTML+CSS+JavaScript】实现

    最终效果 HTML代码 <!DOCTYPE html> <html lang="en"><head><meta charset=" ...

  9. python简易版爬虫

    概念:网络爬虫,通过超链接(URL)爬取网页所有数据用于测试. 用途:在用户浏览网页的过程中,会看到许多图片.按钮.文字等(如http://image.baidu.com/ )这个过程其实就是用户输入 ...

最新文章

  1. php在没用xdebug等调试工具的情况下如何让调试内容优雅地展现出来?--php数组格式化...
  2. pyqt tableview mysql_当数据库中添加了一个新条目时,如何在PyQt中更新TableView?
  3. c# poi写入e_C# 面向对象 静态类和静态成员
  4. android 7.0 截图,Android,_7.0系统拍照后,使用系统截图功能,截图保存时崩溃如何解决,Android - phpStudy...
  5. 基于JavaSpringMvc+mybatis实现学生信息管理系统
  6. C++ Merge sort(归并排序)
  7. ERP实施项目主体计划模板
  8. 干货 | 每天十亿级数据更新,秒出查询结果,ClickHouse在携程酒店的应用
  9. Excel随机 除法 打印版下载
  10. CSS:个人常用搜索框样式
  11. 三星note3smn9005怎么放SIM卡
  12. Mobaxterm 中文输入Backspace按键问题
  13. AWS 获取AccessKey和密钥,上传文件到s3
  14. 计算机控制矢量网络分析仪,完全独立的HF(短波)软件定义收发器和矢量网络分析仪设计...
  15. #深入分析# pandas中使用 drop 和 del删除列数据的区别
  16. 原来将Excel表格转换成应用程序如此简单
  17. 爆款短视频速成技巧之视频发布篇,短视频介绍文案怎么写(下)
  18. 四川省某市智慧海绵城市监测系统案例分享
  19. Cisco Firepower FTD HA 配置文档
  20. CPU上的导热硅脂和散热片大比拼

热门文章

  1. 划词翻译—多种翻译平台集合体积不足1mb——QTranslate
  2. 用户画像打标签之RFM客户价值分析
  3. 中石化卖咖啡报:产品体验报告 | 网易云音乐,体验一个“社交+音乐+直播”的动听世界
  4. crash工具分析sysdump使用
  5. 什么是史诗、特性、用户故事和任务
  6. AI画作拿下比赛一等奖惹怒人类艺术家,主办方:照常颁奖
  7. 极客日报第 37 期:苹果官网出现价格 Bug;大众 CEO点评“苹果造车”;Spring Cloud 2020.0 正式发布
  8. a59s刷机包卡刷 oppo_OPPO A59s root教程_OPPO A59s卡刷获取root权限的方法
  9. 1 根文件系统 简单来说,(根文件系统)
  10. c语言next函数,详谈全排列next_permutation() 函数的用法(推荐)