python简单小游戏代码10行(python入门小游戏代码20行)
请用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("KeyRelease", 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()
贪食蛇
python入门可以做的小游戏
1、Python入门拼图小游戏
简单介绍:
将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状。
2、Python入门推箱子小游戏
简单介绍:
这是来自日本的一个经典游戏,在狭小的仓库中,要求把木箱放到指定的位置,如果不小心就可能出现箱子无法移动或者通道被堵的情况,所以,如何巧妙利用有限的空间和通道,合理安排移动顺序,就成了这个游戏能否通关的关键。
3、Python入门小游戏之外星人入侵
简单介绍:
玩家可以通过鼠标控制飞船的移动和射击,如果能在敌人达到游戏界面低端之前消灭所有敌人,则游戏胜利,否则游戏失败。
4、Python入门小游戏之吃豆子
简单介绍:
通过键盘方向键,控制游戏的人物吃豆人,吃掉藏在迷宫内的所有豆子,并且不能被敌人抓到。
5、Python入门小游戏之宝石消消乐
简单介绍:
玩家通过鼠标交换相邻的拼图,若交换后,在水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分。
6、Python入门小游戏之乒乓球对战
简单介绍:
中间是球网,玩家通过上下键移动球拍,并且这个游戏是可以两个人玩的哦。
7、还有其他四个游戏
它们是:炸弹人小游戏、逃出迷宫、飞扬的小鸟、五子棋
用Python写一个简单的小游戏
相信大家都玩过俄罗斯方块吧,应该是小时候的回忆吧,但是想不想了解一下这个程序是怎么写出来的呢,自己写出来的应该玩起来更有感觉吧!
感觉还是蛮好玩吧!
接下来,我就分享一下这个游戏的源码过程啊!
先用python创建一个py文件
定义这次程序所需要的类
然后写出它所需要的模块
画背景图
画网格线
# 画已经落下的方块
# 画单个方块
# 画得分等信息
这样就可以写出来一个十分简单的俄罗斯方块啦,是不是觉得还不错呢!
Python程序开发之简单小程序实例(11)小游戏-跳动的小球
Python程序开发之简单小程序实例
(11)小 游戏 -跳动的小球
一、项目功能
用户控制挡板来阻挡跳动的小球。
二、项目分析
根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。
三、程序源代码
源码部分截图:
源码:
#!/usr/bin/python3.6
# -*- coding: GBK -*-
#导入相应模块
from tkinter import *
import random
import time
#自定义小球的类 Ball
class Ball:
# 初始化
def __init__(self,canvas,paddle,color):
#传递画布值
self.canvas=canvas
#传递挡板值
self.paddle=paddle
#画圆并且保存其ID
self.id=canvas.create_oval(10,10,25,25,fill=color)
self.canvas.move(self.id,245,100)
#小球的水平位置起始列表
start=[-3,-2,-1,1,2,3]
#随机化位置列表
random.shuffle(start)
self.x=start[0]
self.y=-2
self.canvas_heigh=self.canvas.winfo_height()#获取窗口高度并保存
self.canvas_width=self.canvas.winfo_width()
#根据参数值绘制小球
def draw(self):
self.canvas.move(self.id,self.x,self.y)
pos=self.canvas.coords(self.id)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标)
#使得小球不会超出窗口
pad=self.canvas.coords(self.paddle.id)#获取小球挡板的坐标
if pos[1]=self.canvas_heigh or(pos[3]=pad[1] and pos[2]=pad[0] and pos[2]