WindowsXP扫雷是无数80/90后的集体记忆。今天我们就用Python做一个高仿扫雷游戏。请原谅我的障碍,扫雷游戏从未赢过。测试的时候我偷偷把地雷的数量从99个改成50个才算赢。..先说一下我的实现逻辑。首先,如何表示地雷和非地雷。一开始想的是创建一个二维数组来表示整个区域,0表示非地雷,1表示地雷。后来一想不对,还有标记为地雷的,标记为问号的,还有表示周围地雷数量的数字。状态有很多,我们就做一个类吧:地雷很简单,随机取99个数字,从上到下按顺序排列即可:当我们点击一??个格子的时候,只需要根据坐标找到对应的地雷即可的点击,看看它的价值就知道我们是否踩到了地雷。如果没有踩到地雷,则需要计算周围8个位置有多少个地雷,从而显示相应的数字。如果周围有雷,就显示数字,这个简单,但是如果周围没有雷,就显示一个区域,直到有雷,如下图,我只点了中间,就出现了这样的大面积。这个计算其实也很简单,用递归就可以了。如果计算出周围的地雷数量为0,则递归计算周围8个位置周围的地雷数量,直到地雷数量不为0。接下来还有一个比较麻烦的地方。我们经常同时按下鼠标的左右键。如果所有的地雷都被标记,那么周围的所有格子都会一下子打开。如果有错误标记,抱歉,GAMEOVER。如果不是都标记出来的话,会出现一个效果,就是围绕着未开辟和标记出来的格子,扫雷的主要逻辑只有这么多,剩下的就是一些杂项事件。当然,这些杂七杂八的事件还是够你折腾的。
