Java龟兔赛跑代码过程模拟文档格式.docx
《Java龟兔赛跑代码过程模拟文档格式.docx》由会员分享,可在线阅读,更多相关《Java龟兔赛跑代码过程模拟文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
^^下坡格:
龟前进10格
主程序/地图
packagegtsp;
//包名
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
publicclassMapp{
publicstaticString[]functionPosition(){//每20格出现随机功能实现
int[]t=newint[5];
String[]partMap=newString[20];
for(inti=0;
i<
5;
){
intrandom=(int)(20*Math.random());
intjudge=0;
for(intj=0;
j<
j++){
if(t[j]==random){
judge=0;
break;
}else{
judge=1;
}
if(judge==1){
t[i]=random;
i++;
20;
i++){
partMap[i]="
∷"
;
partMap[t[0]]="
★"
partMap[t[1]]="
@"
;
partMap[t[2]]="
="
partMap[t[3]]="
|"
partMap[t[4]]="
^"
returnpartMap;
publicstaticString[]getMap(){//创建地图分成五部分每部分20格
String[]map=newString[100];
String[]partMap1=functionPosition();
map[i]=partMap1[i];
String[]partMap2=functionPosition();
map[i+(20*1)]=partMap2[i];
String[]partMap3=functionPosition();
map[i+(20*2)]=partMap3[i];
String[]partMap4=functionPosition();
map[i+(20*3)]=partMap4[i];
String[]partMap5=functionPosition();
map[i+(20*4)]=partMap5[i];
returnmap;
publicstaticvoidshowMap(String[]map,TurtleT,Rabbitr){//打印地图
String[]t=newString[100];
100;
t[i]=map[i];
t[T.position]="
龟"
if(t[r.position]=="
t[r.position]="
遇"
兔"
for(Stringi:
t){
System.out.print(i);
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
System.out.println("
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"
);
※※"
※※"
※龟兔赛跑※"
※※"
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"
map=getMap();
TurtleT=newTurtle();
Rabbitr=newRabbit();
showMap(map,T,r);
InputStreamReaderin=null;
BufferedReaderbr=null;
in=newInputStreamReader(System.in);
//该处的System.in是各InputSream类型的;
br=newBufferedReader(in);
while((T.position<
99)&
&
(r.position<
99)){
try{
Stringstr=br.readLine();
if(str.length()==0){
T.execute(map,T);
r.execute(map,T);
if((T.position<
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
if(T.position>
=
99){
System.out.println("
\n乌龟赢了"
\n兔子赢了"
}
抽象类/部分功能格功能
publicabstractclassGame{//抽象类Game行走等功能
intposition=0;
booleanlandmineJudge;
booleandoorJudge;
publicvoidexecute(String[]map,TurtleT){//执行行走
landmineJudge=true;
doorJudge=true;
position=position+getStep();
function(map,T);
publicvoidagain(String[]map,TurtleT){//调用execute方法再走一次
再走一次"
execute(map,T);
publicabstractintgetStep();
publicvoidlandmine(String[]map){//地雷功能
遇到地雷"
position=position-1;
while(map[position]!
="
if(position!
=0){
position--;
publicvoiddoor(String[]map){//传送
执行传送门"
position=position+1;
=99){
position++;
publicabstractvoidfunction(String[]map,TurtleT);
兔子类
publicclassRabbitextendsGame{
@Override
publicintgetStep(){//兔子行进步数1-6
intstep=(int)(Math.random()*10)%6+1;
兔子行进"
+step+"
格"
returnstep;
publicvoidfunction(String[]map,TurtleT){//兔子功能实现
if(position<
99){
if(map[position]=="
兔子遇到幸运星"
again(map,T);
兔子遇到地雷"
if(landmineJudge){
landmine(map);
}
landmineJudge=false;
兔子遇到传送门"
if(doorJudge){
door(map);
doorJudge=false;
兔子遇到树"
乌龟类
publicclassTurtleextendsGame{//继承Game
publicintgetStep(){//乌龟每次行进次数1-3
intstep=(int)(Math.random()*10)%3+1;
乌龟行进"
publicvoidfunction(String[]map,TurtleT){//乌龟功能格
乌龟遇到幸运星"
乌龟遇到地雷"
乌龟遇到传送门"
乌龟遇到下坡"
position=position+10;
总共四个文件直接导入到一个包中就能运行必要修改包名或者删除文件中的包名