摘要
本程序用Python语言编写俄罗斯方块游戏,左侧显示正在运行的游戏,右上角会显示下一个出现的形状。游戏运行时随着分数的增大而速度加快。本程序利用Python设计实现俄罗斯方块游戏的算法、游戏内部功能、游戏区域的绘图的程序设计。对于每个俄罗斯方块各自的形态变化改变到下一个形态利用数组来实现。
一.引言
背景
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
《俄罗斯方块》(Tetris,俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。该游戏曾经被多家公司代理过。经过多轮诉讼后,该游戏的代理权最终被任天堂获得。任天堂对于俄罗斯方块来说意义重大,因为将它与GB搭配在一起后,获得了巨大的成功。《俄罗斯方块》的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。
意义
本程序主要意义是为高手玩家提供训练平台,有助于反应能力和应变能力的提升。可以让人静下心来,转移注意力,能让人放松。也可以用来打发时间。
实现功能
游戏开始会随机产生不同形状的方块按照一定速度往下降,分数越高,方块下降速度越快。玩家控制方块移动,当一行填满方块则消去该行,转化成分数。接着上边方块往下掉。
↑:90°旋转方块方向
↓:使方块加速向下移动
←:控制方块往左边移动
→:控制方块往右边移动
空格space:使方块直接到达底部
当固定的方块堆到区域最上方而无法消除层数时,则游戏结束。
二、系统结构
方块设计:我们采用一个4×2的小数组标识出来,即用4个存储单位空间存储当前下坠物的每一子块的位置,也就是说,用4个存储单位空间存储当前下坠物的每一子块的位置来对整个下坠物件的位置进行标识,而每个存储空间的大小就是一个典的坐标值(x,y),而每个方块按照从左到右的方式进行编号,并且在编号过程中对于同一列的方块实行从上到下进行编号。
流程图:
方块左右移动,旋转:
下落:
三、实现代码
设计方块类型:
style = [
[[(0,0),(0,1),(1,1),(2,1)],[(1,0),(1,1),(1,2),(0,2)],[(0,1),(1,1),(2,1),(2,2)],[(1,0),(2,0),(1,1),(1,2)]],#L
[[(1,0),(1,1),(1,2),(2,1)],[(1,0),(0,1),(1,1),(2,1)],[(1,0),(1,1),(1,2),(0,1)],[(0,1),(1,1),(2,1),(1,2)]],#T
[[(0,1),(1,1),(2,1),(2,0)],[(0,0),(1,0),(1,1),(1,2)],[(0,1),(1,1),