Python轻松制作:经典小游戏代码全解析

创始人
2024-12-14 20:57:14
0 次浏览
0 评论

python可以做什么小游戏?

Python简单游戏代码如何使用Python制作一个简单的游戏

1.Python猜谜游戏代码:

2.importrandom#导入随机模块

3.

4.num=1

5。
yin_num=0

6。
shu_num=0

7.whilenum2:

12.print('无法打印超过2个值')

13.否则:

14。
data=['石头','剪刀','布']

15.com=random.randint(0,2)

16.print(你输出的是{},计算机输出的是{}.format(data[user],data[com]))

17.ifuser==com:

18,print('Tie')

19,继续

20,elif(user==0andcom==1)or(用户==1和com==2)或(用户==2和com==0):

21。
print('你赢了')

22.yin_num+=1

23。
否则:

24。
print('你输了')

25.shu_num+=1

26。
num+=1

27。
Python数字炸弹游戏代码:

28.导入随机

29,导入时间

30,

31,bomb=random.randint(1,99)

32,打印(炸弹)

33.start=0

34,end=99

35,while1==1:

36,

37、people=int(input('请在{}和{}之间输入数字:'.format(start,end)))

38、ifpeoplebomb:

39,print('更大')

40,end=人

41。
elifpeoplebomb:

42。
print('较小')

43.开始=人

44。
else:

45.print('BOOM!!!')

46.打破

47。
print('等待计算机输入{}到{}之间的数字:'.format(start,end))

48.time.sleep(1)

49.com=random.randint(start+1,end-1)

50。
print('计算机输入:{}'.format(com))

51.ifcombomb:

52。
打印('更大')

53.end=com

54、elifcombomb:

55,print('小')

56,start=com

57,否则:

58,打印('BOOM!!!')

59。

Python实现消消乐小游戏

pre{overflow-x:auto}消消乐实现的组成主要包括三个部分:游戏主体、计分器、计时器。
下面我们来看一下。
我们来具体实现一下。

首先我们看一下游戏所需的Python库。

import?osimport?sysimport?timeimport?pygameimport?random

定义一些常量,如窗口宽度和高度、网格行数和行数等,代码如下:

宽度?=?400HEIGHT?=?400NUMGRID?=?8GRIDSIZE?=?36XMARGIN?=?(WIDTH?-?GRIDSIZE?*?NUMGRID)?//?2YMARGIN?=?(HEIGHT?-?GRIDSIZE?*?NUMGRID)?//?2ROOTDIR?=?os.getcwd()FPS?=?30

然后使用以下代码创建一个主窗口:

pygame.init()screen?=?pygame.display.set_mode((WIDTH,?HEIGHT))pygame.display.set_caption('小小乐')

看看效果:

然后画一个窗口中8x8的网格,代码如下:

screen.fill((255,?255,?220))#?游戏界面中的网格绘制def?drawGrids(self):for?x?in?range(NUMGRID):for?y?in?range(NUMGRID):rect?=?pygame.Rect((XMARGIN+x*GRIDSIZE,?YMARGIN+y*GRIDSIZE,?GRIDSIZE,?GRIDSIZE))self.drawBlock(rect,?color=(255,?165,?0),?size=1#?绘制矩形?block?boxdef?drawBlock(self,?block,?color=(255,?0,?0),?size=2):pygame.draw.rect(self.screen,?color,?block,?size)

看看效果:

然后在网格中随机放置各种拼图块,代码如下:

while?True:自己。
all_gems?=?[]self.gems_group?=?pygame.sprite.Group()for?x?in?range(NUMGRID):self.all_gems.append([])for?y?in?range(NUMGRID):宝石?=?拼图(img_path=random.choice(self.gem_imgs),?size=(GRIDSIZE,?GRIDSIZE),?position=[XMARGIN+x*GRIDSIZE,?YMARGIN+y*GRIDSIZE-NUMGRID*GRIDSIZE],?downlen=NUMGRID*GRIDSIZE)self.all_gems[x].append(gem)self.gems_group.add(gem)if?self.isMatch()[0]?==?0:break

看看效果:

然后添加记分器和计时器,代码如下:

#?DisplayScoredef?drawScore(self):score_render?=?self.font.render('分数:'+str(self.score),?1,?(85,?65,?0))rect?=?score_render.get_rect()rect.left,?rect.top?=?(55,?15)self.screen.blit(score_render,?rect)#?显示额外分数def?drawAddScore(self,?add_score):score_render?=?self.font.render('+'+str(add_score),?1,?(255,?100,?100))rect?=?score_render.get_rect()rect.left,?rect.top?=?(250,?250)self.screen.blit(score_render,?rect)#?显示剩余时间def?showRemainingTime(self):remaining_time_render?=?self.font.render('倒计时:?%ss'?%?str(self.remaining_time),?1,?(85,?65,?0))rect?=?remaining_time_render.get_rect()rect.left,?rect.top?=?(WIDTH-190,?15)self.screen.blit(remaining_time_render,?rect)

看看效果:

当设定的游戏时间用完时,我们可以生成一些提示信息,代码如下:

while?True:for?event?in?pygame.event.get():if?event.type?==?pygame.QUIT:pygame.quit()sys.exit()if?event.type?==?pygame.KEYUP?and?event.key?==?pygame.K_r:flag?=?Trueif?flag:breakscreen.fill((255,?255,?220))text0?=?'最终得分:?%s'?%?scoretext1?=?'按?R?键重新启动'y?=?140for?idx,?text?in?enumerate([text0,?text1]):text_render?=?font.render(text,?1,?(85,?65,?0))rect?=?text_render.get_rect()if?idx?==?0:rect.left,?rect.top?=?(100,?y)elif?idx?==?1:rect.left,?rect.top?=?(100,?y)y?+=?60screen.blit(text_render,?rect)pygame.display.update()

看看效果:

说完与游戏图形界面相关的部分,我们看一下游戏逻辑的主要处理。

我们使用鼠标来操作拼图,因此程序需要检查是否有任何拼图被选中。
代码实现如下:

def?checkSelected(self,?position):for?x?in?range(NUMGRID):for?y?in?range(NUMGRID):if?self。
getGemByPos(x,?y).rect.collidepoint(*position):return?[x,?y]return?None

我们需要交换鼠标连续选择的拼图块的位置。
代码实现如下:

def?swapGem(self,?gem1_pos,?gem2_pos):margin?=?gem1_pos[0]?-?gem2_pos[0]?+?gem1_pos[1]?-?gem2_pos[1]if?abs(margin)?!=?1:return?Falsegem1?=?self.getGemByPos(*gem1_pos)gem2?=?self.getGemByPos(*gem2_pos)if?gem1_pos[0]?-?gem2_pos[0]?==?1:gem1.direction?=?'left'gem2.direction?=?'right'elif?gem1_pos[0]?-?gem2_pos[0]?==?-1:gem2.direction?=?'left'gem1.direction?=?'right'elif?gem1_pos[1]?-?gem2_pos[1]?==?1:gem1.direction?=?'up'gem2.direction?=?'down'elif?gem1_pos[1]?-?gem2_pos[1]?==?-1:gem2.direction?=?'向上'gem1.direction?=?'向下'gem1.target_x?=?gem2.rect.leftgem1.target_y?=?gem2.rect.topgem1.fixed?=?Falsegem2.target_x?=?gem1.rect。
leftgem2.target_y?=?gem1.rect.topgem2.fixed?=?Falseself.all_gems[gem2_pos[0]][gem2_pos[1]]?=?gem1self.all_gems[gem1_pos[0]][gem1_pos[1]]?=?gem2return?True

每次交换拼图时,我们都需要判断连续的拼图是否有三个或更多相同的拼图。
代码实现如下:

def?isMatch(self):for?x?in?range(NUMGRID):for?y?in?range(NUMGRID):if?x?+?2-2:对于每个?in?[res_match[1],?res_match[1]+1,?res_match[1]+2]:gem?=?self.getGemByPos(*[each,?start])if?start?==?res_match[2]:self.gems_group.remove(gem)self.all_gems[each]?=?Noneelif?start?=?0:gem.target_y?+=?GRIDSIZEgem.fixed?=?Falsegem.direction?=?'down'self.all_gems[each][start+1]?=?gemelse:gem?=?谜题le(img_path=random.choice(self.gem_imgs),?size=(GRIDSIZE,?GRIDSIZE),?position=[XMARGIN+each*GRIDSIZE,?YMARGIN-GRIDSIZE],?downlen=GRIDSIZE)self.gems_group.add(gem)self.all_gems[each][start+1]?=?gemstart?-=?1elif?res_match[0]?==?2:start?=?res_match[2]while?start-4:if?start?==?res_match[2]:for?each?in?range(0,?3):gem?=?self.getGemByPos(*[res_match[1],?start+each])self.gems_group.remove(gem)self.all_gems[res_match[1]][start+each]?=?Noneelif?start?=?0:gem?=?self.getGemByPos(*[res_match[1],?start])gem.target_y?+=?GRIDSIZE?*?3gem.fixed?=?Falsegem.direction?=?'down'self.all_gems[res_match[1]][start+3]?=?gemelse:gem?=?Puzzle(img_path=random.choice(self.gem_imgs),?size=(GRIDSIZE,?GRIDSIZE),?position=[XMARGIN+res_match[1]*GRIDSIZE,?YMARGIN+start*GRIDSIZE],?downlen=GRIDSIZE*3)self.gems_group.add(gem)self.all_gems[res_match[1]][start+3]?=?gemstart?-=?1

然后重复这个过程,直到游戏时间用完,游戏结束。

最后我们来看看动态的游戏效果。

总结

在这篇文章中,我们使用Python实现了一个简单的消除游戏。
有兴趣的可以进一步扩展游戏,比如增加关卡等。

这篇关于用Python实现消消乐游戏的文章就到这里了。
希望大家以后也能支持我!

《Python小游戏》据说是一款还原度很高的小游戏。
试试吧...

大家好~欢迎大家阅读我的文章!

又到了每日游戏更新系列时间了。
看到下面的.gif,让你想起了你的童年~

贪吃蛇的人气可以说是经久不衰。
已经有很多不同的版本,但游戏的一般规则是控制蛇的方向。

寻找可以吃的东西,每咬一口都会获得一定的积分,并且蛇的身体会随着进食而变得越来越长。
身体越长越难玩

不要碰墙,不能咬自己的身体,更不能咬自己的尾巴,还要小心其他蛇!

你的童年是哪个版本的贪吃蛇

这个

嘿~~~

好吧,给我看看图片?

今天将带领大家制作Python版本的贪吃蛇游戏的就是这个大项目!

直接放代码

无论你玩得多么熟练,技术多么高超,你最终都会听到贪吃蛇的惨叫声。
记住:小蛇低调,中蛇欺弱怕强,大蛇聪明保护自己~

热门文章
1
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

2
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

3
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

4
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

5
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

6
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

7
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

8
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...

9
C语言文本文件指定行输出技巧及汉字处理方... C语言如何从文本文件中输出指定行文字#include#include#inclu...

10
C语言字符串长度与内存占用解析:空字符与... 内存中的长度在C中,字符串的长度和字符串在内存中占用的字节数是两个概念。(1)长...