欢迎来到天天文库
浏览记录
ID:52328652
大小:77.50 KB
页数:12页
时间:2020-03-26
《java骑士飞行棋 小游戏.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、突然想起自己刚学java时,老师让写一个java骑士飞行棋,那时候还不知道写,到处问人,勉强写好了,结果全是放在主函数里,今天闲来没事,花了一会,再次写了个骑士飞行棋小游戏,希望对初学者有帮助吧。代码中,可能用到了初学者还没接触到的东西,不过都不难,注释都有写明,花点时间就能明白的。一共三个类。分别:Game.javaMap.javaPlayer.javapackagechou.game.flying;importjava.util.Random;importjava.util.Scanner;pub
2、licclassGame{privateScannersc=newScanner(System.in);privatestaticMapmap=newMap();/***静态块,初始化地图*加载时就会被执行的内容*不理解的,可以在static{}块里打印一句话,看看控制台反映*/static{map.initMap();}/***游戏开始*/publicvoidGameStart(){//游戏开始界面welcome();//选择角色,生成对象数组Player[]players=getPlayer();
3、//游戏开始循环,直到有玩家胜出,结束booleanisAnyoneWin=false;while(!isAnyoneWin){//遍历玩家数组,让每个玩家依次进行掷点for(inti=0;i4、玩家,手动掷点if(i!=0){letPlayerRoll(players[i]);}//进行掷点intcount=roll();System.out.println(players[i].getName()+"掷出了"+count+"点");//记录玩家roll点前位置和roll点后位置,判断玩家位置是否到达终点players[i].setLastPosition(players[i].getPosition());players[i].setPosition(players[i].getPosit5、ion()+count);//判断是否踩中对方intsecondNum=Math.abs(1-i);if(isHit(players[i],players[secondNum])){players[secondNum].setPosition(0);if(players[i].getLastPosition()!=0){changMap(players[i].getLastPosition(),players[i].getLastPositionFlag());}}if(checkAnyoneWin(6、players[i].getPosition())){isAnyoneWin=true;//打印游戏结束标语gameOver(players[i]);continue;}else{//判断将去位置是否有特殊效果,判断效果之后,理论上来说,应该再次进行判断是否有特殊效果//但我们这里不设这种情出现,因为再来循环的话,代码会更复杂,不利于初学者学习//在这里,我们只判断再进行一次roll点的判定StringmapBuff=null;mapBuff=getMapFlag(players[i].getPosi7、tion());if(!("=".equals(mapBuff))){players[i]=checkBuff(players[i],mapBuff);}elseif("*".equals(mapBuff)){count=roll();players[i].setPosition(players[i].getPosition()+count);}//判断是否踩中对方secondNum=Math.abs(1-i);if(isHit(players[i],players[secondNum])){play8、ers[secondNum].setPosition(0);if(players[i].getLastPosition()!=0){changMap(players[i].getLastPosition(),players[i].getLastPositionFlag());}}//记录玩家去的位置的形状,地图复原使用mapBuff=getMapFlag(players[i].getPosition());players[i].setLastPositi
4、玩家,手动掷点if(i!=0){letPlayerRoll(players[i]);}//进行掷点intcount=roll();System.out.println(players[i].getName()+"掷出了"+count+"点");//记录玩家roll点前位置和roll点后位置,判断玩家位置是否到达终点players[i].setLastPosition(players[i].getPosition());players[i].setPosition(players[i].getPosit
5、ion()+count);//判断是否踩中对方intsecondNum=Math.abs(1-i);if(isHit(players[i],players[secondNum])){players[secondNum].setPosition(0);if(players[i].getLastPosition()!=0){changMap(players[i].getLastPosition(),players[i].getLastPositionFlag());}}if(checkAnyoneWin(
6、players[i].getPosition())){isAnyoneWin=true;//打印游戏结束标语gameOver(players[i]);continue;}else{//判断将去位置是否有特殊效果,判断效果之后,理论上来说,应该再次进行判断是否有特殊效果//但我们这里不设这种情出现,因为再来循环的话,代码会更复杂,不利于初学者学习//在这里,我们只判断再进行一次roll点的判定StringmapBuff=null;mapBuff=getMapFlag(players[i].getPosi
7、tion());if(!("=".equals(mapBuff))){players[i]=checkBuff(players[i],mapBuff);}elseif("*".equals(mapBuff)){count=roll();players[i].setPosition(players[i].getPosition()+count);}//判断是否踩中对方secondNum=Math.abs(1-i);if(isHit(players[i],players[secondNum])){play
8、ers[secondNum].setPosition(0);if(players[i].getLastPosition()!=0){changMap(players[i].getLastPosition(),players[i].getLastPositionFlag());}}//记录玩家去的位置的形状,地图复原使用mapBuff=getMapFlag(players[i].getPosition());players[i].setLastPositi
此文档下载收益归作者所有