2010年7月2日 星期五

[JAVA] 龜兔賽跑-Turtle_Rabbit_Race

/************************************************
*  Comment: 龜兔賽跑   
*  1. 請輸入跑道長度(跑道長度 介於10-30):
*  2. 若跑道長度沒有介於10-30之間,請使用者重新輸入
*  3. 烏龜一次走動的長度為1-2,
*     兔子一次跳躍的長度為0-3
*  4. 每到一個定點,即於定點上填入1,其餘則為 0
*  5. 並於烏龜或兔子到達終點時,顯示出如範例所示之比賽過程,並告知烏龜或兔子贏的訊息(若平手即顯示平手訊息)

 輸出範例:
 
 ----95年龜兔賽跑----
 請輸入跑道長度(10-30):5
 請重新輸入跑道長度(10-30):35
 請重新輸入跑道長度(10-30):20

 比賽過程
 烏龜 :0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 1
 兔子 :0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1
 平手

 烏龜 :0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0
 兔子 :0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1
 兔子獲勝
*  
*  
*  Author: Han-Hong Wang
*  Website: http://whhnote.blogspot.com
*  E-mail: phodra@hotmail.com
*  Develop Environment-Compiler: J2SE 1.6.0
*        -Editor: Eclipse 3.2.0   
*        -OS: Windows XP SP2   
*  Creation Date: 2006/12/27     
*  Last Update: 2010/07/02      
*************************************************/

import java.util.Scanner;

public class Turtle_Rabbit_Race {
 public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  System.out.println("----95年龜兔賽跑----");
  int RunwayRange=0;
  
  //Get Runway Range
  System.out.print("請輸入跑道長(10-30): ");
  while (RunwayRange==0) { 
   RunwayRange = scanner.nextInt();
   if ((RunwayRange<10)||(RunwayRange>30)) {
    System.out.print("請重新輸入跑道長度 (10-30): ");
    RunwayRange=0;
   }
  }
  
  //Run Start
  int rabbitStep[] = new int[RunwayRange+1]; //兔子步數記錄(0-3)
  int turtleStep[] = new int[RunwayRange+1]; //烏龜步數記錄(1-2)
  int rabStep=0; //兔子步數(0-3)
  int turStep=0; //烏龜步數(1-2)
  
  while (rabStep<RunwayRange && turStep<RunwayRange) { 
   rabStep += (int)(Math.random()*4); //兔子這次跑的步數
   if (rabStep>RunwayRange) {rabStep=RunwayRange;}
   if (rabStep!=0) {rabbitStep[rabStep-1] = 1;} //記錄兔子這次跑的位置
   
   turStep += 1+(int)(Math.random()*2); //烏龜這次跑的步數
   if (turStep>RunwayRange) {turStep=RunwayRange;}
   turtleStep[turStep-1] = 1; //記錄烏龜這次跑的位置
  }
  
  int i;
  System.out.print("兔子 : ");
  for (i=0;i<RunwayRange;i++) {
   System.out.print(rabbitStep[i]);
  }

  System.out.println();
  System.out.print("烏龜 : ");
  for (i=0;i<RunwayRange;i++) {
   System.out.print(turtleStep[i]);
  }
  
  //分出勝負
  System.out.println();
  if (rabStep > turStep) {
   System.out.println("兔子獲勝!!");
  } else {
   if (rabStep == turStep) {
    System.out.println("雙方平手!!");
   } else {
    System.out.println("烏龜獲勝!!");
   }
  }
 }
}
Related Posts Plugin for WordPress, Blogger...