python写个消消乐小游戏_用python写消消乐

情不好的时候玩,等车玩,睡前也玩。而且每一关必须是三星…

小编今天就用python,码一个消消乐小游戏

正文:

消消乐的构成主要包括三部分:游戏主体、计分器、计时器,下面来看一下具体实现。

先来看一下游戏所需 Python 库。

1 impormt os

2 impormt sys

3 impormt time

4 impormt pygame

5 impormt random​

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

1 WIDTH - 400

2 HEIGHT = 460

3 NUMGRID = 8

4 GRIDSIZE - 36

5 XMARGIN = (WIDTH - GRIDSIZE * NUMGRID) 11 2

6 YMARGIN - (HEIGHT - GRIDSIZE * NUMGRID) 1f 2

7 ROOTDIR = os . get cwd()

8 FPS = 30

接着创建一个主窗口,代码如下:

1 pygame. init()

2 screen = pygame . display.set_ mode( ( WIDTH, HEIGHT) )

3 руgаmе . dіѕрlау.ѕеt_ сарtіоn( '消消乐')

看一下效果:

图片

再接着在窗口中画一个 8 x 8 的网格,代码如下:

1 screen. fill((255, 255, 220))

2 #游戏界面的网格绘制

3 def dr awGrids(self):

4           for x in range(NUMGRID):

5                    for y in range(NUMGRID) :

6                          rect= pygame . Rect( (XMARGIN+x*GRIDSIZE ,

7 YMARGIN+y *GRIDSIZE, GRIDSIZE, GRIDSIZE) )

8                      self . dr awBlock(rect, color=(255, 165, Ѳ), size=1

9 #画矩形block框

10 def dr awBlock(self, block, color=(255, 0, 0), size=2):

11           pygame . draw.rect(self.screen, color, block, size)

看一下效果:

图片

再接着在网格中随机放入各种拼图块,代码如下:

1 while True:

2            self.all_ gems = []

3            self ·gems_ group = pygame.sprite.Group()
                
4            for x in range(NUMGRID) :

5            self .all_ gems . append( [])

6            for y in range(NUMGRID) :

7            gem =

8 Puzzle( img_ path=random . choice(self.gem_ imgs), size-(GRIDSIZE, GRIDSIZE),

9 position= [XMARGIN+x*GRIDSIZE, YMARGIN+ y*GRIDSIZE -NUMGRID*GRIDSIZE ] ,

10 down len=NUMGRID *GRIDSIZE )

11                            self .all_ gems [x] .append(gem)

12                            self gems_ group.add(gem)

13       if self .isMatch()[e] == e:

14               break

看一下效果:

图片

再接着加入计分器和计时器,代码如下:

看一下效果:

图片

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

看一下效果:

图片

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Python消消乐游戏的实现,其中包括生成游戏面板、找到可消除图案、消除图案、下落图案、计分和计时等功能。你可以根据需要进行修改和扩展。 ```python import random import time # 定义游戏面板大小 ROWS = 8 COLS = 8 # 定义可用的图案 PATTERNS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] # 定义每个图案的分数 SCORES = {'A': 10, 'B': 20, 'C': 30, 'D': 40, 'E': 50, 'F': 60, 'G': 70, 'H': 80} # 定义每个图案的颜色 COLORS = {'A': 'red', 'B': 'green', 'C': 'blue', 'D': 'yellow', 'E': 'purple', 'F': 'orange', 'G': 'pink', 'H': 'brown'} # 生成随机的游戏面板 def generate_board(): board = [] for i in range(ROWS): row = [] for j in range(COLS): pattern = random.choice(PATTERNS) row.append(pattern) board.append(row) return board # 打印游戏面板 def print_board(board): for i in range(ROWS): for j in range(COLS): print(board[i][j], end=' ') print() # 判断是否有可消除的图案 def has_matches(board): for i in range(ROWS): for j in range(COLS): if j < COLS - 2 and board[i][j] == board[i][j+1] == board[i][j+2]: return True if i < ROWS - 2 and board[i][j] == board[i+1][j] == board[i+2][j]: return True return False # 找到所有可消除的图案 def find_matches(board): matches = [] for i in range(ROWS): for j in range(COLS): if j < COLS - 2 and board[i][j] == board[i][j+1] == board[i][j+2]: matches.append((i, j)) if i < ROWS - 2 and board[i][j] == board[i+1][j] == board[i+2][j]: matches.append((i, j)) return matches # 消除所有可消除的图案 def remove_matches(board, matches): for i, j in matches: board[i][j] = board[i][j+1] = board[i][j+2] = None board[i+1][j] = board[i+2][j] = None # 下落所有图案 def drop_board(board): for j in range(COLS): for i in range(ROWS-1, -1, -1): if board[i][j] is None: for k in range(i-1, -1, -1): if board[k][j] is not None: board[i][j], board[k][j] = board[k][j], None break # 计算得分 def calculate_score(matches): score = 0 for i, j in matches: score += SCORES[board[i][j]] return score # 主函数,循环进行游戏 def main(): board = generate_board() score = 0 start_time = time.time() while True: print_board(board) if not has_matches(board): break matches = find_matches(board) score += calculate_score(matches) remove_matches(board, matches) drop_board(board) end_time = time.time() print('Game over!') print('Your score is:', score) print('Time used:', end_time - start_time, 'seconds') if __name__ == '__main__': main() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值