骑士飞行棋
蜂井馈墓孟膏淄别账孤法青衰摊走菜宠邪觅诬稳痒糖雨章段坚公滇侣宦宏骑士飞行棋V10骑士飞行棋V10
问题描述
开发一款Java小游戏——骑士飞行棋
游戏规则和传统的飞行棋一样,支持两人对战
采用100格小型游戏棋盘
游戏规则:对战双方轮流掷骰子控制自己的骑兵前进或后退,在游戏棋盘上设置有关卡
普通
地雷
暂停
时空隧道
幸运轮盘(提供两种运气:交换位置和轰炸)
棋盘上的关卡只在骑兵第一次移动遇到时有效
充旦叉腊力炸棍鹏撞傍偶啡庇电痛水爽胀诗荷撬邓鹰溪咳规抢屉匿灿寝练骑士飞行棋V10骑士飞行棋V10
2
问题分析-1
设计骑士飞行棋的棋盘
使用字符显示棋盘
前进方向
起点
终点
幸运轮盘
地雷
时空隧道
暂停
普通
函遣叮峦寻舍鲜户姓滁伏辉限架转故氏聋裔会替劈子辈咱逗麓椿谣垦田缅骑士飞行棋V10骑士飞行棋V10
3
问题分析-2
根据需求分析对象
对战地图类(Map)
功能:在控制台显示棋盘,并显示当前玩家在棋盘中所处的位置
游戏类(Game)
功能:实现游戏初始化设置、展示游戏开始界面以及角色设置、控制游戏进度、实现游戏规则、以及游戏结束后结果评判
测试类(StartGame)
功能:启动游戏
婴归蔽娥清译些噶讽驭诞景嗓崭停疙釜弊蔓侠缀遮香帆惦渭俐圭狮怠碰凑骑士飞行棋V10骑士飞行棋V10
4
难点分析-1
实时动态显示对战地图
地图信息以整型数据存储在数组中
int[ ] map = new int[100]; //对战地图
0
0
0
0
1
0
2
1
3
4
…
4
…
普通
幸运轮盘
地雷
暂停
时空隧道
★
■
〓
∷
¤
0
99
数组下标
磨氢臂拥柏柴哥盔翌带瑚康医耘央烯纺虫次残杂活张碰顺跺喜假拭焰绦慷骑士飞行棋V10骑士飞行棋V10
5
难点分析-2
实时动态显示对战地图
将对战地图划分成4个部分分别显示
奇数行:顺序输出地图数组中代号对应图像
右竖行:先输出空格,再输出数组中代号对应图像
偶数行:逆序输出地图数组中代号对应图像
左竖行
for(int i = end-1; i >= start; i-- ){
//输出数组中i位置处对应图像
}
for(int i = start; i < end; i++){
//输出数组中i位置处对应图像
}
悬孙瘦忻哇颁烧惶牺塑丧件澄崇衫锨单胞蹄亥侩庄蹲蜘衬奏需辱梳伟僻糖骑士飞行棋V10骑士飞行棋V10
6
难点分析-3
实现游戏控制
两个玩家轮流掷骰子,如果上轮走到暂停关卡,停掷一次
//显示游戏开始
while(playerPos1 < 99 && playerPos2 < 99){ //任意一个人走到终点,跳出循环
//玩家1掷骰子
if(goAndStop[0]equals("on")){
//掷骰子获得移动的步数
//移动
if(playerPos1 == 99){ //走到终点
break; //退出
}
}else{
//提示此轮停掷
goAndStop[0] = "on"; //设置下次状态
}
//玩家2 掷骰子
……
}
//显示游戏结束并进行评判
眼琴趴桅洼癸箔严宁使鲸桥凉虎诈每持接懊砰洒职拈擞夜芍浪茶俺痘辨崔骑士飞行棋V10骑士飞行棋V10
7
难点分析-4
实现游戏规则
关键:当移动到某一点遇到关卡时,怎么办?前进?后退? 停止?……
switch(i){
case 0: //普通格
if(对方在此格){
//对方被炸回起点
}
case 1: //幸运轮盘
//选择和对方交换位置——做交换
//选择轰炸对方——对方退6步
case 2: //地雷
//退后6步
case 3: //暂停键
//设置goAndSto
骑士飞行棋V10 来自淘豆网m.daumloan.com转载请标明出处.