Python 贪吃蛇 代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-import pygame as pygame
import random
import sysfrom pygame.rect import Rectclass Snake(object):def __init__(self): # 定义3个 颜色属性,以防后面需要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() # 初始化,就是初始化 pygame 里面的东西,没啥鸟用,但是没它不行,哈哈哈哈clock = pygame.time.Clock() # 创建时钟对象 (可以控制游戏循环频率playSurface = pygame.display.set_mode((800, 600)) # 创建游戏窗口pygame.display.set_caption('贪吃蛇') # 窗口名snakePosition = [80, 80] # 贪吃蛇的头snakebody = [[80, 80], [60, 80], [40, 80]] # 初始化贪吃蛇的长度 (注:这里以20*20为一个标准小格子)targetPosition = [200, 400] # 绿色方块目标位置targetflag = 1direction = 'right' # 初始化移动方向""" 注: 上面的属性啥的,定义是定义了, 但是 是静态的 还动不了,,而且 还没有颜色,黑麻麻的,,,所以才有了 下面的 这 一个 def main() 函数 ,我们 通过 main方法 让他们 嗨起来,五光十色,懂了吗?兄弟萌?"""changeDirection = direction # 输入的 方向self.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(): # 接收到退出事件后,退出程序# 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'):# 如果改变后的移动方向是 left ,而原来的移动不是向 right, 则将方向 调为 leftdirection = changeDirectionif (changeDirection == 'right' and not direction == 'left'):direction = changeDirectionif (changeDirection == 'down' and not direction == 'up'):direction = changeDirectionif (changeDirection == 'up' and not direction == 'down'):direction = changeDirection# 根据键盘的输入,改变蛇的头部,进行转弯操作if direction == 'right':snakePosition[0] += 20if direction == 'left':snakePosition[0] -= 20if direction == 'down':snakePosition[1] += 20if direction == 'up':snakePosition[1] -= 20# 将蛇的头部当前位置加入到蛇身的列表中,增加蛇的长度snakebody.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 = 1 # 用来判断是否吃到绿色块,吃到则为0,否则为1# 填充背景颜色playSurface.fill(self.black)for position in snakebody:"""在Surface上绘制矩形,第二个参数是线条(或填充)的颜色,第三个参数Rect的形式是((x, y), (width, height)),表示的是所绘制矩形的区域,其中第一个元组(x, y)表示的是该矩形左上角的坐标,第二个元组 (width, height)表示的是矩形的宽度和高度。width表示线条的粗细,单位为像素;默认值为0,表示填充矩形内部# 第一个参数surface 指定一个surface编辑区# 第二个参数color 指定颜色# 第三个参数rect 返回一个矩形包含位置信息(x,y),(width,height)# 第四个参数width 表示线条的粗细 width=0 实心 width=1 空心# 画蛇# 画目标方块儿"""# 画蛇 ,,,就是把蛇行走的身形画出来pygame.draw.rect(playSurface, self.white, Rect(position[0], position[1], 20, 20))# 画目标方块儿# print(targetPosition[0]) 你运行一下就知道了# print(targetPosition[1])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(6)snake = Snake()
snake.initialize()
注:代码不是本人所写,如有侵权,请告知我删除,谢谢!
Python 贪吃蛇 代码相关推荐
- python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...
- python小游戏代码大全-python贪吃蛇游戏代码
本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...
- python代码大全-python贪吃蛇游戏代码
本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...
- python贪吃蛇源码_Python:游戏:贪吃蛇(附源码)
Python:游戏:贪吃蛇(附源码) 发布时间:2018-09-05 09:59, 浏览次数:1295 , 标签: Python 贪吃蛇是个非常简单的游戏,适合练手. 首先分析一下这个游戏 1.蛇怎么 ...
- Python贪吃蛇双人大战-魔法豆登场
Python贪吃蛇双人大战-魔法豆登场 时隔两月之后,家里的小朋友再次对我之前改写的贪吃蛇游戏(过程可参考我之前写的 Python贪吃蛇双人大战 和 Python贪吃蛇双人大战-升级版,代码可以到此处 ...
- 用html编写一个贪吃蛇,HTML编写的贪吃蛇代码
<HTML编写的贪吃蛇代码>由会员分享,可在线阅读,更多相关<HTML编写的贪吃蛇代码(14页珍藏版)>请在人人文库网上搜索. 1.使用表格 var fangxiang;fan ...
- c语言安卓贪吃蛇代码下载,C语言贪吃蛇代码
c语言编写贪吃蛇源代码,简单易懂,文件为VC源代码.如果你正在学习c语言,就来下载吧.很经典的 C语言贪吃蛇代码部分 #include #include #include#include #defin ...
- Python贪吃蛇小游戏_完整源码免费分享
文章目录 Python 贪吃蛇小游戏 1. 导包 2. 配置初始化参数 3. 主函数及运行主体 4. 画食物的函数 5. 画贪吃蛇的函数 6. 画网格的函数(非必选,觉得多余的可以忽略此项) 7. 操 ...
- 【无标题】学习贪吃蛇代码
学习贪吃蛇代码
- 贪吃蛇的c语言程序码,C语言贪吃蛇代码下载_C语言贪吃蛇代码官方下载-太平洋下载中心...
C语言编写贪吃蛇源代码,简单易懂,文件为VC源代码.如果你正在学习c语言,就来下载吧.很经典的. C语言贪吃蛇代码原理: 产生一个固定大小没有边界的游戏区域,蛇从区域的中心开始,由玩家通过键盘控制蛇的 ...
最新文章
- GIT之git常用配置和操作
- css3运动后留下轨迹尾巴_球磨机的工作原理及机内运动轨迹分析
- roobo机器人怎么唱歌_可爱的小伙伴 ROOBO布丁豆豆智能陪护机器人评测
- ECSTORE 关于FILTER条件所代表的含义
- Opportunity Sales org F4 value help data source
- html5点击切换选项卡,简单纯js实现点击切换TAB标签实例
- h5文字垂直居中_CSS实现居中的几种方式你都了解吗?
- 华为成功完成中国联通NFV三层解耦测试验证
- php界面框架luy_LazyPHP
- java xmpp openfire_java应用之openfire入门篇
- 乐源机器人优点跟缺点_桁架上下料机械手与上下料机器人一样吗?
- 用户关闭浏览器页器,弹出一个提示
- [月报] 掘金翻译计划月报 — 2018 年 11 月
- Qt 远程开关机 WakeOnLAN 编辑MagicPacket
- 一起学爬虫(Python) — 05
- unity商店的Standard Assets自带人物移动插件的bug修改
- html中的排名怎么写,html制作畅销书排行榜
- SCU-3968 Mowing the Lawn(DP+单调队列)
- 智能名片为什么使用场景都是微信小程序?哪些新玩法值得一试?
- 操作系统 存储管理实验报告