python小游戏源码
‘壹’ 用python写一个简单的小游戏
相信大家都玩过俄罗斯方块吧,应该是小时候的回忆吧,但是想不想了解一下这个程序是怎么写出来的呢,自己写出来的应该玩起来更有感觉吧!
感觉还是蛮好玩吧!
接下来,我就分享一下这个游戏的源码过程啊!
先用python创建一个py文件
定义这次程序所需要的类
然后写出它所需要的模块
画背景图
画网格线
# 画已经落下的方块
# 画单个方块
# 画得分等信息
这样就可以写出来一个十分简单的俄罗斯方块啦,是不是觉得还不错呢!
‘贰’ 请用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猜拳小游戏代码:
2、import random #导入随机模块
3、
4、num = 1
5、yin_num = 0
6、shu_num = 0
7、while num 2:
12、 print('不能出大于2的值')
13、 else:
14、 data = ['石头', '剪刀', '布']
15、 com = random.randint(0, 2)
16、 print(您出的是{},电脑出的是{}.format(data[user], data[com]))
17、 if user == com:
18、 print('平局')
19、 continue
20、 elif (user == 0 and com == 1) or (user == 1 and com == 2) or (user == 2 and com == 0):
21、 print('你赢了')
22、 yin_num += 1
23、 else:
24、 print('你输了')
25、 shu_num += 1
26、 num += 1
27、Python数字炸弹小游戏代码:
28、import random
29、import time
30、
31、bomb = random.randint(1, 99)
32、print(bomb)
33、start = 0
34、end = 99
35、while 1 == 1:
36、
37、 people = int(input('请输入{}到{}之间的数:'.format(start, end)))
38、 if people > bomb:
39、 print('大了')
40、 end = people
41、 elif people < bomb:
42、 print('小了')
43、 start = people
44、 else:
45、 print('BOOM!!!')
46、 break
47、 print('等待电脑了输入{}到{}之间的数:'.format(start, end))
48、 time.sleep(1)
49、 com = random.randint(start + 1, end - 1)
50、 print('电脑输入:{}'.format(com))
51、 if com > bomb:
52、 print('大了')
53、 end = com
54、 elif com < bomb:
55、 print('小了')
56、 start = com
57、 else:
58、 print('BOOM!!!')
59、 break
‘肆’ 10分钟教你用Python做个打飞机小游戏超详细教程
本文教你用Python和pygame库快速制作一个“打飞机”小游戏,无需过多代码知识,掌握核心概念即可快速上手。游戏主要使用面向对象编程思想,通过三个主要类实现游戏逻辑:玩家飞机、子弹和敌机。下面详细讲解游戏开发步骤:
### 01 前言
使用python的pygame库制作“打飞机”小游戏,聚焦游戏框架核心知识,简化代码,以便快速掌握游戏开发流程。代码参考自网络资源,包含游戏主体、精灵类、子弹类、玩家飞机类、敌机类等关键组件,以及游戏循环、帧率控制、键盘事件处理、分数显示等功能。
### 02 整体框架
采用面向对象编程,游戏主体分为三个类:
- **精灵类Sprite**:游戏中的动态元素,如图像、位置和移动方式。
- **子弹类**:继承自精灵类,定义子弹的移动速度、位置和发射逻辑。
- **玩家飞机类**:管理玩家飞机的移动、射击和状态。
- **敌机类**:生成敌机,并通过碰撞检测机制。
### 03 开始之前-精灵类Sprite
精灵类是游戏元素的基本单位,包含图像、位置和大小。精灵对象通过继承pygame.sprite.Sprite类实现,使用self.rect属性来定位显示位置,便于在游戏界面上呈现动态效果。
### 04 子弹类class Bullet
子弹类继承自精灵类,定义了子弹的图片、发射位置和移动速度。通过move方法,子弹以预定速度直线移动,直至离屏。
### 05 玩家飞机类class Player
玩家飞机类管理飞机的位置、移动、射击和状态。定义图像列表、速度、子弹集合和碰撞检测逻辑,实现飞机上下左右移动的边界判断。
### 06 敌机类class Enemy
敌机类生成游戏中的敌机,包含正常图像和爆炸图像,实现随机移动和碰撞处理。移动逻辑保证敌机从屏幕顶部向下移动。
### 07 游戏主体循环以及帧率设置
游戏主循环负责刷新屏幕,处理精灵对象的状态更新,包括移动、碰撞检测和状态变化。使用pygame.time.Clock控制帧率,保证游戏流畅运行。
### 08 让子弹飞
在游戏循环中,自动发射子弹,控制子弹飞行速度,确保子弹不会离屏,同时处理子弹与敌机的碰撞,更新游戏状态。
### 09 刷出敌机 打怪
随机生成敌机,并在循环中与子弹碰撞,实现敌机被击中后的效果处理。
### 10 把飞机、敌机、子弹都画出来
将游戏元素绘制在屏幕上,包括正常状态和碰撞后的效果,以及处理精灵碰撞检测,更新游戏画面。
### 11 处理键盘事件
通过键盘输入控制玩家飞机的移动,确保玩家能实时操作游戏,实现游戏交互。
### 12 分数显示和 GameOver
实现分数显示和游戏结束时的得分展示,为游戏添加基本的反馈机制。
### 13 最终代码和成品
提供完整代码示例,包括游戏资源(如图片、音效等),便于快速运行和修改,鼓励玩家根据需求自定义游戏功能,如增加特效、背景音乐或联网对战等。
通过以上步骤,你可以快速上手使用Python和pygame库开发“打飞机”小游戏,从理论到实践,逐步掌握游戏开发的基本技巧。
‘伍’ python编程应用:小游戏hangman
代码分析:
1.import random导入模块
导入random模块,本程序主要是使用random.randint(0,3)方法生成一个0-3之间的随机的随机数。
2、HANGMAN_PICS常量
Python默认把定义的常量大写,HANGMAN_PICS是一个字符列表常量,字母全部大些也提醒一次赋值之后不再改变,这就是常量的意思。
3、列表格式
animals=['frog','rabbit','owl','peacock'] 列表包含4个元素(item),每一个元素用逗号隔开,左边方括号和右边的方括号是列表必须格式必须带的。
4、列表访问
用索引访问元素animals[0],0就是索引号,以此类推还想访问其他元素...animals[1],animals[2],animals[3],如果继续访问animals[4]就会造成索引越界报indexError的错误。
5、“ + ”连接符
“ + ”号 在程序中除了进行运算,还有就是连接字符串和列表,例1:animals='frog',+'rabbit'就会得到animals = 'frograbbit'. 例2:animals = ['frog','rabbit']和river_animals = ['ck','snake']两个列表通过 “+”连接符 就获得['frog', 'rabbit', 'ck', 'snake']一个合成新列表。
6、用索引赋值来修改列表元素
animals[1] = 'swan' 生成一个新列表 animals = [ 'frog' , 'swan' ]
7、in操作符
in操作符告诉我们in左边的值是否包含在右边列表中,如果该值在列表中它将要返回True;如果该值不在列表中,返回值是False。例1:'dragonfly' in [ 'frog' , 'rabbit' ] 返回值是 False 例2 :'ck' in [ 'ck' , 'snake' ] 返回值是True 。例3: ' bee ' in ' sanke bee bird bear lion owl .'
8、调用方法(method)
8.1针对列表的方法 reverse( ) 和 append( )
reverse() 方法会把列表中的元素顺序反转,numbers = [ 1 , 2 , 3 , 4 , 5 ]然后 numbers.reverse( )会反转列表元素 numbers = [ 5 , 4 , 3 , 2 , 1 ]
append()方法在列表的最后添加一个元素,numbers.append( 6 ) 得到 numbers = [ 1 , 2 , 3 ,4 , 5, 6]
8.2 字符串方法 split( )
程序的51行使用此方法,让字符串 words 反馈一个words = [ 'ant', 'baboon', 'badger', 'bat', 'bear'........] 列表
‘陆’ 求个Python小游戏
Python3X\Lib\turtledemo\nim.py自带的尼姆游戏