java骑士飞行棋小游戏文档格式.docx
- 文档编号:19304034
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:6
- 大小:16.09KB
java骑士飞行棋小游戏文档格式.docx
《java骑士飞行棋小游戏文档格式.docx》由会员分享,可在线阅读,更多相关《java骑士飞行棋小游戏文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
*静态块,初始化地图
*加载时就会被执行的内容
*不理解的,可以在static{}块里打印一句话,看看控制台反映
*/
static{
map.initMap();
}
*游戏开始
publicvoidGameStart(){
//游戏开始界面
welcome();
//选择角色,生成对象数组
Player[]players=getPlayer();
//游戏开始循环,直到有玩家胜出,结束
booleanisAnyoneWin=false;
while(!
isAnyoneWin){
//遍历玩家数组,让每个玩家依次进行掷点
for(inti=0;
i<
players.length;
i++){
//对玩家的状态进行判断,是否处于暂停状态
if(players[i].getStatus()==1){
//如果玩家处于暂停状态,恢复暂停状态并跳过此回合
players[i].setStatus(0);
statusSay(players[i]);
continue;
//判断玩家,手动掷点
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].getPosition()+count);
//判断是否踩中对方
intsecondNum=Math.abs(1-i);
if(isHit(players[i],players[secondNum])){
players[secondNum].setPosition(0);
if(players[i].getLastPosition()!
changMap(players[i].getLastPosition(),
players[i].getLastPositionFlag());
if(checkAnyoneWin(players[i].getPosition())){
isAnyoneWin=true;
//打印游戏结束标语
gameOver(players[i]);
}else{
//判断将去位置是否有特殊效果,判断效果之后,理论上来说,应该再次进行判断是否有特殊效果
//但我们这里不设这种情出现,因为再来循环的话,代码会更复杂,不利于初学者学习
//在这里,我们只判断再进行一次roll点的判定
StringmapBuff=null;
mapBuff=getMapFlag(players[i].getPosition());
if(!
("
="
.equals(mapBuff))){
players[i]=checkBuff(players[i],mapBuff);
}elseif("
*"
.equals(mapBuff)){
count=roll();
secondNum=Math.abs(1-i);
changMap(players[i].getLastPosition(),players[i].getLastPositionFlag());
//记录玩家去的位置的形状,地图复原使用
players[i].setLastPositionFlag(mapBuff);
//改变地图上玩家的位置,先复原,再改变
//初始位置是为0,所以要判断
//三目运算符,i==0是一个布尔式,?
疑问,如果是真,返回:
前面的值,如果假,:
后面的值
mapBuff=i==0?
"
C"
:
P"
;
changMap(players[i].getPosition(),mapBuff);
map.showMap();
*判断是否踩中对方
*@paramfirst前面玩家
*@paramsecond后面玩家
publicbooleanisHit(Playerfirst,Playersecond){
booleantemp=false;
if(first.getPosition()==second.getPosition()){
temp=true;
returntemp;
*玩家掷点阻塞
*@paramplayer玩家信息
publicvoidletPlayerRoll(Playerplayer){
System.out.println("
请玩家"
+player.getName()+"
掷点~"
sc.next();
*检查玩家到达的地图位置是否有特殊效果
*@paramplayer玩家
*@parammapBuff地图标识
*@return执行过buff后的玩家对象
publicPlayercheckBuff(Playerplayer,StringmapBuff){if("
-"
System.out.println(player.getName()+"
进入黑洞,迷失了方向,后退6步"
System.out.println(player.getName()+"
:
shit!
"
player.setPosition(player.getPosition()-6);
+"
进入时空隧道,前进6步"
luckily!
player.setPosition(player.getPosition()+6);
进行了空间跳跃~再来一次"
seemefly!
player.setStatus(0);
^"
抛锚了,暂停一次"
whatisthefuck!
player.setStatus
(1);
returnplayer;
*改变地图上玩家的位置
*@paramposition位置
*@paramflag地图形状
publicvoidchangMap(intposition,Stringflag){
if(position<
31){
map.map[0][position-1]=flag;
}elseif(position>
30&
&
position<
36){
map.map[position-30][29]=flag;
35&
66){
map.map[6][position-35]=flag;
65&
71){
map.map[position-59][0]=flag;
70&
101){
map.map[12][position-71]=flag;
*暂停言语
*@paramplayer被暂停的玩家
publicvoidstatusSay(Playerplayer){
暂停中..........."
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 骑士 飞行 小游戏
