python连连看小游戏_请用PYTHON编一个小游戏,如五子棋,连连看,贪吃蛇,扫雷,计算器等等...
展开全部
#!/usr/bin/python
from Tkinter import *
import random
class snake(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.body = [(0,0)]
self.bodyid = []
self.food = [ -1, -1 ]
self.foodid = -1
self.gridcount = 10
self.size = 500
self.di = 3
self.speed = 500
self.top = self.winfo_toplevel()
self.top.resizable(False, False)
self.grid()
self.canvas = Canvas(self)
self.canvas.grid()
self.canvas.config(width=self.size, height=self.size,relief=RIDGE)
self.drawgrid()
s = self.size/self.gridcount
id = self.canvas.create_rectangle(self.body[0][0]*s,self.body[0][1]*s,
(self.body[0][0]+1)*s, (self.body[0][1]+1)*s, fill="yellow")
self.bodyid.insert(0, id)
self.bind_all("", self.keyrelease)
self.drawfood()
self.after(self.speed, self.drawsnake)
def drawgrid(self):
s = self.size/self.gridcount
for i in range(0, self.gridcount+1):
self.canvas.create_line(i*s, 0, i*s, self.size)
self.canvas.create_line(0, i*s, self.size, i*s)
def drawsnake(self):
s = self.size/self.gridcount
head = self.body[0]
new = [head[0], head[1]]
if self.di == 1:
new[1] = (head[1]-1) % self.gridcount
elif self.di == 2:
new[0] = (head[0]+1) % self.gridcount
elif self.di == 3:
new[1] = (head[1]+1) % self.gridcount
else:
new[0] = (head[0]-1) % self.gridcount
next = ( new[0], new[1] )
if next in self.body:
exit()
elif next == (self.food[0], self.food[1]):
self.body.insert(0, next)
self.bodyid.insert(0, self.foodid)
self.drawfood()
else:
tail = self.body.pop()
id = self.bodyid.pop()
self.canvas.move(id, (next[0]-tail[0])*s, (next[1]-tail[1])*s)
self.body.insert(0, next)
self.bodyid.insert(0, id)
self.after(self.speed, self.drawsnake)
def drawfood(self):
s = self.size/self.gridcount
x = random.randrange(0, self.gridcount)
y = random.randrange(0, self.gridcount)
while (x, y) in self.body:
x = random.randrange(0, self.gridcount)
y = random.randrange(0, self.gridcount)
id = self.canvas.create_rectangle(x*s,y*s, (x+1)*s, (y+1)*s, fill="yellow")
self.food[0] = x
self.food[1] = y
self.foodid = id
def keyrelease(self, event):
if event.keysym == "Up" and self.di != 3:
self.di = 1
elif event.keysym == "Right" and self.di !=4:
self.di = 2
elif event.keysym == "Down" and self.di != 1:
self.di = 3
elif event.keysym == "Left" and self.di != 2:
self.di = 4
app = snake()
app.master.title("Greedy Snake")
app.mainloop()
贪食蛇e69da5e887aa62616964757a686964616f31333332616461
python连连看小游戏_请用PYTHON编一个小游戏,如五子棋,连连看,贪吃蛇,扫雷,计算器等等...相关推荐
- python判断列表维度_如何输出python中list的维度
python中输出list的维度可以使用numpy来实现:import numpy as np a = [[1,2],[3,4]] print(np.array(a).shape) 扩展: resha ...
- 什么是python全栈开发_什么是python全栈
全栈即指的是全栈工程师,指掌握多种技能,并能利用多种技能独立完成产品的人.就是与这项技能有关的都会,都能够独立的完成. 全栈只是个概念,也分很多种类.真正的全栈工程师涵盖了web开发.DBA .爬虫 ...
- 全国计算机python考试难吗_计算机二级python考试难吗
全国计算机等级考试于2018年9月新增计算机二级Python程序设计考试科目,从上次考试情况来看,考试难度不大,特别是考试内容也比较少,所以通过率高达54%(其它科目在30%以下). 那么二级Pyth ...
- 请设计、构造一个小程序,能够帮助用户查询食物的GI值,帮助用户选择健康的饮食。GI值的保存方式由设计者自行选择。GI:血糖指数
现代人很注重饮食与健康间的关系,食物的选择往往要注意热量.血糖生成指数(GI)等,保证饮食健康. **请设计.构造一个小程序,能够帮助用户查询食物的GI值,帮助用户选择健康的饮食.GI值的保存方式由设 ...
- 微信小程序实现跳转到另外一个小程序的方法
微信小程序实现跳转到另外一个小程序的方法 1,首先需要在当前小程序app.json中定义:需要跳转的小程序的app-id app.josn "navigateToMiniProgramApp ...
- 小福利,turtle库画了一个小风车
小福利,turtle库画了一个小风车 import turtle as tt.pencolor('blue') list1=['red','green','pink','yellow']for i i ...
- python编的俄罗斯方块游戏_手把手制作Python小游戏:俄罗斯方块(一)
手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...
- python爬取小游戏_如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)...
简介: Python 是一门简单易学且功能强大的编程语言,无需繁琐的配置,掌握基本语法,了解基本库函数,就可以通过调用海量的现有工具包编写自己的程序,轻松实现批量自动化操作,可以极大提高办公和学习效率 ...
- 利用python做一个小游戏_如何使用python做一个简单的猜数字的小游戏
1 首先小编先打开IDLE,如下图: 2 然后这里点击菜单栏的'File',然后点击菜单"New File",如下图: 3 然后我们就在idle中新建了一个python文件,如下图 ...
最新文章
- oracle打印乘法口诀,ORACLE中实现输出乘法口诀
- 固定顶部指定div不滑动
- 随机森林分类器_建立您的第一个随机森林分类器
- [Angularjs]锚点操作服务$anchorScroll
- 知识图谱最新权威综述论文解读:知识图谱补全部分
- jq处理返回来json_4个小窍门,让你在Python中高效使用JSON
- ArcEngine中多边形内外环的处理(转)
- 用java网络编程中的TCP方式上传文本文件及出现的小问题
- C# mvc4.0 MD5测试
- Spring自定义注解(验证身份证+性别+地区)
- H3CIE网络工程师成长之路
- 高德地图3D离线定位
- 2019年程序员薪资报告,网友:年薪20万只是起薪?
- 如何使用SpanReporter接口生成链路数据
- 邮件中的抄送和密送的区别
- Android 应用市场大全 主流市场
- 20172302 《Java软件结构与数据结构》第五周学习总结
- html网页的框架标记分别有,新手入门前端,应该知道HTML框架排版标记标签大全...
- 无线通信sip服务器常用品牌,一种无线Mesh网中多SIP服务器布局方法
- 白银之手服务器人物不显示,白银之手 - 萌娘百科 万物皆可萌的百科全书
热门文章
- Redis 05_List列表 数组 Hash散列
- leetcode 435. Non-overlapping Intervals | 435. 无重叠区间(单调栈)
- mac安装brew失败怎么办?
- netty系列之:自定义编码解码器
- rateLimiter令牌桶限流算法
- wpf加载上千张图片部分图片不显示_开源WPF控件库MaterialDesignInXAML推荐
- 【详细注释】1051 Pop Sequence (25 分)
- 1034 Head of a Gang (30 分) One way that the police finds the head of a gang is to check people‘s pho
- 【最新合集】编译原理习题(含答案)_15运行存储分配_MOOC慕课 哈工大陈鄞
- ArrayList方法源码