您的当前位置:首页正文

迷宫

来源:华佗健康网
需求

界面原型

1 2 3 4 5 6 7 8 Out 2 Entr 3 4 5 6 7 8 9 10 北 西 东 南

业务规则:

到达任何一个地方,尝试的方向:南,东,西,北

如果碰壁,常是下一个方向的cell,如果该方向的下一个cell走过,尝试下一个方向的cell,如果四周都走过,

如果到一个新的cell,排除原来的走过的路径,选择一个新的路径,尝试,如果只能走做过的路径,可以重走,但是每个各自都进行新的尝试。

用例模型

走迷宫Player

用例规格:走迷宫

//正常场景 player首先启动game, game打开map,显示map上的cell, player开始的时候位于entry, player开始选择一个direction,走, 如果前面是个road cell,继续同方向, 如果前面是个wall cell,选择下一个方向,走,重复以上过程 如果player走到了out ,game over

分析设计

类图

顺序图

: Game : Player//正常场景 player首先启动game, game打开map,显示map上的cell, player开始的时候位于entry, player开始选择一个direction,走, 如果前面是个road cell,继续同方向, 如果前面是个wall cell,选择下一个方向,走,重复以上过程 如果player走到了out ,game over4: create : Player2: Create( )1: start( ) : Map : Cell3: Create : Direction5: SetLocation( )6: GetDirection( )7: StartWalk( )8: IsWall( )9: false10: SetLocation( )11: IsOut( )12: [true] GameOver( )13: true14: GetNextDirection( )15: Walk( )协作图

12: [true] GameOver( )5: SetLocation( )10: SetLocation( )15: Walk( )6: GetDirection( ) : Direction14: GetNextDirection( )7: StartWalk( )4: create : Player2: Create( )11: IsOut( )8: IsWall( )9: false13: true3: Create : Map : Cell : Player1: start( ) : Game

需求变化

今后别人也可能开发迷宫,迷宫的基本结构类似,有些地方不同,例如:

有的迷宫游戏是人命令走,不是自动搜索,

有的迷宫游戏程序虽然是自动走,但是遍历算法可能不同,

新的迷宫程序也希望地图可以根据需要调整,可以自己设置墙,入口位置,出口位置,以及他们的颜色,

当然以上也可以随机生成。

为了方便别人的开发,我们可以建立一个迷宫程序的框架,支持别人的开发,请设计一个迷宫程序框架。

提示:框架要考虑分离变化与不变 框架要考虑对象的加载问题。

因篇幅问题不能全部显示,请点此查看更多更全内容