(一)
需求分析
题目
:
32
、实现一个
N*M
的扫雷游戏
设计要求
:
能够实现一个
N*M
的扫雷游戏
a
、能够打开一个方格(由于做的是静态显示,故在控制台上方格用‘—’代替)
,已打开的
方格不能关闭
b
、能够标记一个方格,标记方格的含义是对该方格有雷的预测(并不表示真的一定有雷)
c
、能够给出游戏结果:输、赢
d
、
N
和
M
可由玩家自己设置
系统功能需求分析
:
一个数字和一个雷(
boom
)
。你可以打开(
open
)一个方格,如果你打开的是
一个
boom
,
那么就失败;否则就会打开一个数字,该数字是位于
[0
,
8]
的一个整数,该数字表示其所有
邻居方格所包含的雷数,应用该信息可以帮助你扫雷。点击到了某区域发现其周围没有雷,
那么显而易见应该点开周围的区域,拓展空白区域
(二)概要设计
由于知识储备不足,
VC
中的
MFC
应用程序又过于复杂,故退而求其次,不再采用动态显示
和界面图形化,采用静态显示来实现扫雷游戏中的主要功能。
用键盘上的
‘
1
’
键代替鼠标左击,
即打开一个方格查看其属性,
已打开的方格不能在关闭;
用键盘上的‘
2
’键代替鼠标右击,即标记一个方格,标记方格的含义是对该方格有雷的预
测(并不表示真的一定有雷)
用键盘上的‘↑’
‘↓’
‘←’
‘→’四个键来实现光标在控制台上的自由移动,
相当于用鼠标实现光标在图形界面的移动
游戏区域的高度与宽度及总雷数可由玩家自己设定
应题目要求设计了一个基类:
Base
和一个继承类:
Game
。
基类
Base
主要实现一些基本功能:游戏结束时输出游戏的结果:输赢;
返回控制台上光标的位置返回按下键时所对应的按键控制符
基类
Base
: