查看完整版本: [已解答]龜兔賽跑
頁: [1]

s9312212 發表於 2009-12-28 05:41 PM

[已解答]龜兔賽跑

本帖最後由 s9312212 於 2009-12-29 05:13 PM 編輯

龜兔賽跑參數如下:
      動物    動作     輸入數值      實際格子移動量
---------------------------------------------------------
      龜      快爬       1~5            往右3格
               滑跤       6、7           往左6格
               慢爬       8、9、0       往右1格
    ----
      兔      睡覺       1、2           停格不動
               大步跳    3、4           往右9格
               大滑跤      5              往左12格
               小步跳  6、7、8        往右1格
               小滑跤     9、0          往左2格


賽跑開始時,請印出 “砰!!!! 龜兔出發!!!!”訊息
程式則逐次讓使用者分別輸入兩個移動參數,螢幕請印出70格位置,
烏龜所在位置用“龜”標註,兔子所在位置用“兔”標註。
如果烏龜和兔子位於同格,則烏龜會咬兔子,請自該位置印出"好痛!!!"訊息。
每行70格除了“龜”、“兔”、“好痛!!!”之外,餘格皆填空格。
印完龜兔位置後,程式檢查龜兔之一誰先到達或越過第70格,
如果有,模擬即結束。
若烏龜贏,印出 “烏龜贏!!!”; 若兔子贏,印出 “兔子贏”
若兩者同時到終點,印出 “龜兔平手”
若無人到終點,即繼續讓使用者輸入,模擬下一格動作。


有哪位大大能幫忙寫出來...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

a730529 發表於 2009-12-28 09:05 PM

空白的部分我有加字元...要改的話把
System.out.print("口");
System.out.print("=");
都換成
System.out.print(" ");就好了


import java.util.Scanner;
public class Race {
boolean Start=true;
int t=0;
int r=0;
public static void main(String[] args) {
  int u=0,p=0;
  Race where = new Race();
  
  while(where.RAC(u,p)){
  Scanner scan = new Scanner(System.in);
  System.out.print("請輸入移動參數(龜 0-9):");
  u=scan.nextInt();  
  System.out.print("請輸入移動參數(兔 0-9):");
  p=scan.nextInt();
  System.out.println();
  System.out.println();
  System.out.println();
  }
}
public boolean RAC(int u,int p){
  if(!Start){
  if((u<=5)&&(u>=1)){
   t+=3;
   System.out.println("烏龜往前移動了3格");
  }else if((u==6)||(u==7)){
   t-=6;
   System.out.println("烏龜倒退移動了6格");
  }else if((u==0)||(u==8)||(u==9)){
   t+=1;
   System.out.println("烏龜往前移動了1格");
  }else{
   System.out.println("烏龜的移動參數輸入錯誤唷");
  }
  if((p==1)||(p==2)){  
   System.out.println("兔子睡覺中...");
  }else if((p==3)||(p==4)){
   r+=9;
   System.out.println("兔子往前移動了9格");
  }else if(p==5){
   r-=12;
   System.out.println("兔子倒退移動了12格");
  }else if((p>5)&&(p<9)){
   r+=1;
   System.out.println("兔子往前移動了1格");
  }else if((p==0)||(p==9)){
   r-=2;
   System.out.println("兔子倒退移動了1格");
  }else{
   System.out.println("兔子的移動參數輸入錯誤唷");
  }
  if(t<0){
   t=0;
  }
        if(r<0){
         r=0;
        }
  if(t>69){
   t=69;
  }
  if(r>69){
   r=69;
  }
  }
  int x =0;
  do{
  for(int i=0;i<70;i++){
  System.out.print("口");
  }if(x==1){
   break;
   }
  x+=1;
  System.out.println();
  where(t,r);
  System.out.println();
  }while(x==1);
  
  if((t==69)&&(r==69)){
   System.out.println('\n'+"龜兔平手");
   return false;
  }else if(t==69){
   System.out.println('\n'+"烏龜贏!!");
   return false;
  }else if(r==69){
   System.out.println('\n'+"兔子贏!!");
   return false;
  }
  
  if(Start){
  System.out.println('\n'+"砰!!!! 龜兔出發!!!!");
  Start=false;
  }else{
   System.out.println();
  }
  return true;
}
public void where(int t,int r){
  String T[] = new String;
  String R[] = new String;
  T="龜";
  R="兔";
  if((t==r)&&(!Start)&&(t!=69)){
   R="好痛!!!";
  }
  for(String a:T){
   if(a==null){
    System.out.print("=");
    }else{
   System.out.print(a);
    }
    }
  System.out.println();
  for(String a:R){
   if(a==null){
    System.out.print("=");
    }else{
   System.out.print(a);
    }
    }   
}
}

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]