//考核项目:控制台实现,25号前提交
//加分项:用面向对象实现
//要求:不允许用一个方法直接写完,尽量不要披着羊皮的狼

import java.util.Scanner;

//游戏:飞行棋
//龟兔赛跑:乌龟随机1-3格,兔子随机1-6格
//跑道 – 100格,每20格会随机出现五种功能格各一个
//功能格:
//1.幸运星 ** 可以再次执行一次
//2.传送门== 乌龟传送到下两个传送门,兔子传送到下一个传送门,如果后方无传送门则直接传送到终点
//3.地雷 @@ 乌龟炸回到上一个地雷格,兔子炸回到上两个地雷格,如果前方无地雷则直接回到起点
//4.下坡 ^^ 乌龟遇到下坡前进10格
//5.树 || 兔子遇到树停止3个回合
//传送门和地雷没有联动效果,其他会触发联动效果
public class Game {
public static int[] route=new int[101];
public static int[] route1=new int[101];
public static int[] route2=new int[101];
public static int[] route4=new int[101];
public static Rabbit r=new Rabbit();
public static Tortoise t=new Tortoise();
public static int turn=1;
public static void main(String[] args) {
map();
print(route);
new Scanner(System.in).nextLine();
while(true){
if(turn%2==0){
Game.moveT();
turn++;
if(route[100]==9||route4[100]==8){
return;
}
}else {
Game.moveR();
turn++;
if(route[100]==9||route4[100]==8){
return;
}
}

        new Scanner(System.in).nextLine();}
}public static void moveT(){t.move();cmpT(t);System.out.println();print(route);route[t.getStep()]=0;
}
public static void moveR(){r.move();cmpR(r);System.out.println();print(route4);route4[r.getStep1()]=0;
}
public static void map(){int n=1;int k = 1;for(int i=0;i<5;i++) {while ((k / 20) != 0) {route[k] = 0;route4[k]=0;k++;}k++;int num1 = (int) (Math.random() * 20) + n;int num2 = (int) (Math.random() * 5) + 1;route[num1] = num2;route4[num1]=num2;n=n+20;}
}
public static void print(int[] s){for(int i=1;i<101;i++){if(s[i]==0){System.out.print("--");}else if(s[i]==8){System.out.print("兔子");}else if(s[i]==9){System.out.print("乌龟");}else if(s[i]==1){System.out.print("**");}else if(s[i]==2){System.out.print("==");}else if(s[i]==3){System.out.print("@@");}else if(s[i]==4){System.out.print("^^");}else {System.out.print("||");}}
}public static void cmpT(Tortoise a){for(int i=1;i<101;i++){if(route1[i]==9&&(route[i]==0||route[i]==5)){route[i]=9;}else if(route[i]==1&&route1[i]==9){a.move();cmpT(a);}else if(route[i]==2&&route1[i]==9){for(int k=i+1;k<101;k++){if(route[k]==2){for(int j=k+1;j<101;j++){route1[i]=0;route[j]=9;a.setStep(k);break;}}else if (k==100){a.setStep(100);route1[i]=0;route[100]=9;}}}else if(route[i]==3&&route1[i]==9){for(int k=i-1;k>0;k--){if(route[k]==3){route1[i]=0;route[k]=9;a.setStep(k);route1[k]=9;break;}if(k==1){route[1]=9;route1[i]=0;a.setStep(1);}}}else if(route[i]==4&&route1[i]==9){route[i+10]=9;route1[i]=0;a.setStep(i+10);}}
}
public static void cmpR(Rabbit s){for(int i=1;i<101;i++){if(route2[i]==8&&(route4[i]==0||route4[i]==4)){route4[i]=8;}else if(route4[i]==1&&route2[i]==8){s.move();cmpR(s);}else if(route4[i]==2&&route2[i]==8){for(int k=i+1;k<101;k++){if(route4[k]==2){route2[i]=0;route4[k]=8;s.setStep1(k);break;}else if (k==100){s.setStep1(100);route2[i]=0;route4[100]=8;}}}else if(route4[i]==3&&route2[i]==8){for(int k=i-1;k>0;k--){if(route4[k]==3){for(int j=k-1;j>0;j--){if(route4[j]==3){route2[i]=0;route4[j]=8;s.setStep1(j);route2[j]=8;break;}}}if(k==1){route4[1]=8;route2[i]=0;s.setStep1(1);}}}else if(route4[i]==4&&route2[i]==8){route4[i+10]=8;route2[i]=0;s.setStep1(i+10);}else if(route4[i]==5&&route2[i]==8){for(int k=0;k<3;k++){Game.moveT();new Scanner(System.in).nextLine();}}}
}

}
兔子类
public class Rabbit{
private int step1=1;

public int getStep1() {return step1;
}public void setStep1(int step1) {this.step1 = step1;
}public void move(){int num = (int) (Math.random() * 5) + 1;Game.route2[step1]=0;step1=step1+num;if(step1>100){Game.route2[100]=8;}else {Game.route2[step1]=8;}
}

}
乌龟类
public class Tortoise{
private int step=1;

public int getStep() {return step;
}
public void setStep(int step) {this.step = step;
}public void move(){int num = (int) (Math.random() * 3) + 1;Game.route1[step]=0;step=step+num;if(step>100){Game.route1[100]=9;}else {Game.route1[step]=9;}
}

}

黑大项目群第二次作业,飞行棋(龟兔赛跑)java相关推荐

  1. 川大计算机应用基础第二次作业,川大计算机应用基础第二次作业-20210331054635.docx-原创力文档...

    集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN] 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN] 川大计算机应用基础第二次作业 & ...

  2. java飞行棋项目_java小项目 类与 对象 骑士飞行棋代码

    /**主体方法 import java.util.Random; import java.util.Scanner; public class Game { public Map map; Scann ...

  3. java第二部分项目_Java_第二次作业:项目构思与实现

    写在最前: 我我我我我我靠,以后再也不再ddl截止前1小时调试程序了!之前在DDL前1小时修改程序,当我改完后,我想着,再把之前的测试样例跑一遍,如果都对就OK了.就在这时,问题出现了,我之前正确的测 ...

  4. 【软件工程实践 · 团队项目】 第二次作业

    队员姓名与学号(标记组长) 学号 姓名 20165211 丁奕(组长) 20165208 孔月 20165230 田坤烨 20165226 刘香杉 队名 快奶我一口 队员风采: 全军出击!!!! 团队 ...

  5. java飞行棋项目_Java实现飞行棋 - 源码下载|行业应用软件|教育/学校应用|源代码 - 源码中国...

    Java实现飞行棋 Java实现飞行棋\Batt Java实现飞行棋\Batt\.classpath Java实现飞行棋\Batt\.project Java实现飞行棋\Batt\.settings ...

  6. 签约大项目,展示新技术,寻找新商机——全球名企挤爆第二届进博会

    举世瞩目的第二届中国国际进口博览会已于11月5日盛大开幕. 本届进博会,参会各大企业纷纷亮出各自代表行业顶级发展水平的尖端技术,发布面向未来的科技创新产品,签约加码在华合作,展示对中国市场的密切关注和 ...

  7. 17秋 软件工程 结对项目 第二次作业

    作业地址 结对第二次作业 结对成员 陈翔, 031502209; 李鸣, 031502316. Github Deputy: Department-to-Student bidirectional s ...

  8. 第二次作业— —结对项目

    第二次作业- -结对项目 标签(空格分隔): 需求分析与原型模型设计 结对成员: 031302610 黄志鹏 031302603 陈波 1.样本实例 一个老师的迫切需求----开课报课之繁琐教师开课报 ...

  9. 软件工程实践2017第二次作业-----个人项目实战之数独

    软件工程实践2017第二次作业-----个人项目实战之数独 最后一门考试2017.9.16 github地址:https://github.com/ssuo/shudu 题目地址:http://www ...

  10. 南京工程学院计算机组成原理第二版答案,南大__计算机组成原理第二次作业

    南大__计算机组成原理第二次作业 学员答案:B本题得分:3.51题号:29题型:判断题本题分数:1.75内容:一旦有中断请求出现,CPU立即停止当前指令的执行,转而去受理中断请求.1.错2.对学员答案 ...

最新文章

  1. “比特币耶稣”Roger Ver:比特币现金分叉没有技术论据支持
  2. Aooms_基于SpringCloud的微服务基础开发平台实战_002_工程构建
  3. redis 基本类型和命令(一)
  4. SQL语句执行效率及分析(note)
  5. linux进程源码分析,Linux内核源代码分析——口述程序猿如何意淫进程(一)
  6. MongoDB的高级语法
  7. CCF201412-4 最优灌溉(解法二)(100分)【废除!!!】
  8. 修图类APP原型设计分享– Hello Camera
  9. 2021Java实现关注公众号登陆网站
  10. winhex先Add再XOR后的数据恢复
  11. 网易云音乐在Ubuntu中打不开
  12. halcon与C#混合编程(三)数字识别
  13. 浏览器出现无法访问此页面的提示的解决办法
  14. 包含高知漫画家珍贵作品的艺术项目“NAKED Manga Mappin’!”3月6日(周五)起在高知龙马机场展出
  15. 传统行业也很冷:星美影院欠债4个亿,关停140家分店
  16. 判断字符串是不是回文
  17. 一线城市的游戏建模师大概是什么收入水平?
  18. r语言归一化_生物信息学之RMA(Robust Multi-Array Average)算法的归一化和最终计算过程...
  19. 计算机 实验室安全准入制度,实验室安全准入制度
  20. 跨境电商亚马逊运用淘宝无货源店群模式?三点不可为

热门文章

  1. RationalDMIS 2020 最大位置度误差
  2. excel公式编辑器_用Excel制作 “抽奖”小软件,很简单!
  3. Windows语言栏不见了,解决办法。任务栏的语言栏没了、不显示了。语言栏异常导致不能输入中文。默认中文输入法设置。
  4. win7桌面背景地址
  5. Boost:宏BOOST_LOG_TRIVIAL的测试
  6. python 几个倒叙方法
  7. 石河子市谷歌高清卫星地图下载
  8. 如何通过编程打开一个网页
  9. VMware ESXi 与ESX 产品之比较
  10. 泰克Tektronix示波器软件TDS1012|TDS2002|TDS2004上位机软件NS-Scope