资源简介
利用python编写了一个经典的贪吃蛇小游戏,运行python代码后可以实现可视化的方式玩贪吃蛇游戏,附有完整的代码以及代码注释。
代码片段和文件信息
#coding=UTF-8
from Tkinter import *
from random import randint
# import tkMessageBox
class Grid(object):
def __init__(self master=Noneheight=16 width=24 offset=10 grid_width=50 bg=“#808080“):
self.height = height
self.width = width
self.offset = offset
self.grid_width = grid_width
self.bg = bg
self.canvas = Canvas(master width=self.width*self.grid_width+2*self.offset height=self.height*self.grid_width+
2*self.offset bg=self.bg)
self.canvas.pack(side=RIGHT fill=Y)
def draw(self pos color ):
x = pos[0] * self.grid_width + self.offset
y = pos[1] * self.grid_width + self.offset
#outline属性要与网格的背景色(self.bg)相同,要不然会很丑
self.canvas.create_rectangle(x y x + self.grid_width y + self.grid_width fill=color outline=self.bg)
class Food(object):
def __init__(self grid color = “#23D978“):
self.grid = grid
self.color = color
self.set_pos()
self.type = 1
def set_pos(self):
x = randint(0 self.grid.width - 1)
y = randint(0 self.grid.height - 1)
self.pos = (x y)
def display(self):
self.grid.draw(self.pos self.color)
class Snake(object):
def __init__(self grid color = “#000000“):
self.grid = grid
self.color = color
self.body = [(8 11) (8 12) (8 13)]
self.direction = “Up“
for i in self.body:
self.grid.draw(i self.color)
#这个方法用于游戏重新开始时初始化贪吃蛇的位置
def initial(self):
while not len(self.body) == 0:
pop = self.body.pop()
self.grid.draw(pop self.grid.bg)
self.body = [(8 11) (8 12) (8 13)]
self.direction = “Up“
self.color = “#000000“
for i in self.body:
self.grid.draw(i self.color)
#蛇像一个指定点移动
def move(self new):
self.body.insert(0 new)
pop = self.body.pop()
self.grid.draw(pop self.grid.bg)
self.grid.draw(new self.color)
#蛇像一个指定点移动,并增加长度
def add(self new):
self.body.insert(0 new)
self.grid.draw(new self.color)
#蛇吃到了特殊食物1,剪短自身的长度
def cut_down(selfnew):
self.body.insert(0 new)
self.grid.draw(new self.color)
for i in range(03):
pop = self.body.pop()
self.grid.draw(pop self.grid.bg)
#蛇吃到了特殊食物2,回到最初长度
def init(self new):
self.body.insert(0 new)
self.grid.draw(new self.color)
while len(self.body) > 3:
pop = self.body.pop()
self.grid.draw(pop self.grid.bg)
#蛇吃到了特殊食物3,改变了自身的颜色纯属好玩
def change(self new color):
self.color = color
self.body.insert(0 new)
for item in self.body:
self.grid.draw(item self.color)
class S
相关资源
- Pyboard利用两个Zigbee模块发送并接收
- Python-TensorFlow语义分割组件
- numpy-1.17.2+mkl-cp37-cp37m-win_amd64.rar
- python大作业--爬虫完美应付大作业.z
- pyltp python3.7可用版本,已编译好的.
- python小游戏大全——30个
- python3网络爬虫开发实战 无密码
- 山东大学抢课脚本
- Python赶集网北京地区招聘信息爬虫
- wordcloud-1.6.0-cp38-cp38-win32.whl
- Python从入门到精通(明日科技出版)
- python 批量修改文件夹和文件名 解压
- python 快速搭建blog demo
- 面向Arcgis的python脚本编程 中文教程英
- 第十届蓝桥杯大赛青少年创意编程P
- python实现Alphapose骨骼关键点信息的提
- python实现photoshop自动化
- 利用Python爬虫抓取网页上的图片含异
- python基础视频地址.txt
- Python实现社区发现算法-fast_unfolding算
- python-cwt时频图绘制
- python火焰检测代码
- 树莓派_python_PCA9685_16路舵机自定义角
- python从入门到实践课后试一试代码.
- Python PyQt5编写的天气预报
- Hopfield Neural Network——神经网络pytho
- 计算N50的python脚本
- python调用opencv进行人脸检测
- DP算法Python源代码
- Python 产生任意形状的封闭图形,并将
评论
共有 条评论