我需要編寫一個在比賽中用作馬的數組。每當用戶按下enter
,馬將「運行」,或者陣列會向它們添加隨機數並更新它們的位置。控制檯在每次按下按鈕後都會打印其位置。比賽結束後我需要給第一名第二名和第三名匹配馬匹(馬匹達到15匹時)。我無法弄清楚如何做到這一點。從數組中拉出多個元素並專門給它們加上標籤
現在我正在通過數組進行搜索,如果數組的元素大於或等於15,我將它設置爲打印第一個地方的馬。我該如何做到這一點,以便打印第二和第三位作爲下一個最高位置(例如1st = 15,2nd = 13,3rd = 12)?
此外,看起來我的程序不會停止。如何在達到15或更高時停止它?謝謝!
import java.util.*;
public class HorseRace2{
public static void main(String[ ] arg){
Scanner reader = new Scanner(System.in);
int range = 3;
int win = 15;
final int SIZE = 3;
Random ran = new Random();
boolean winner = false;
int[ ] arrRan = new int[SIZE];
System.out.print("Off to the races! Press enter to make the horses run.");
String readString = reader.nextLine();
while(readString!=null){
System.out.print(readString);
if(readString.equals("")){
for(int i = 0; i<arrRan.length; i++){
arrRan[i] = arrRan[i] + (ran.nextInt(3) + 1);
System.out.println("Horse " + (i+1) + ":" + arrRan[i]);
}
}//end if
if(reader.hasNextLine()){
readString = reader.nextLine();
System.out.println("Please press enter to make the horses run.");
}
for(int i = 0; i<arrRan.length; i++){
if(arrRan[i]>=win){
System.out.println("1st place: Horse " + (i+1));
}
}
}//end while
}//close main
}//close class
排數組後我怎麼得到它打印第一三匹馬? –
由於您已經對陣列進行了排序,因此您現在可以對馬匹的進展進行排名。請記住,由於指數已被切換,所以馬匹的標籤將會混亂。 –
我編輯了我的答案以提供一個粗略的解決方案。 –