0
我寫了一個程序,模擬3名參與者之間的決鬥。三名參與者在拍攝時都有不同的準確度。每位參加決鬥的人都會輪流射擊,並遵循相同的策略:每位參與者都會向最有機會擊中他的人發射射擊。該程序完全按照我的要求運行,一直運行到三人中的兩個不參加決鬥,然後打印出決鬥的勝者。在java中運行1000次程序
我的這個程序的下一個任務是打印出1000多次的程序,然後統計每個參與者獲勝的次數。我在設置打印每個決鬥的循環時遇到了一些麻煩。我認爲我應該爲外部循環使用for循環,但是到目前爲止我遇到的問題包括無限循環,或者每次決鬥時結果都非常不一致。
這裏是我的代碼:
public class Duel {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dueler Aaron = new Dueler();
Dueler Bob = new Dueler();
Dueler Charlie = new Dueler();
Aaron.setName("Aaron");
Aaron.setAccuracy(33);
Bob.setName("Bob");
Bob.setAccuracy(50);
Charlie.setName("Charlie");
Charlie.setAccuracy(100);
//Aaron
int deathCount = 0;
while(deathCount < 2){
if(Aaron.isLiving() == true && Charlie.isLiving() == true){
System.out.println("Aaron shoots first");
System.out.println("Aaron shoots at Charlie");
Aaron.shootAtTarget(Charlie);
if(Charlie.isLiving()==false){
System.out.println("Charlie is hit");
System.out.println("Charlie is out");
deathCount++;
}
if(Charlie.isLiving() == true){
System.out.println("miss");
}
}
else if(Aaron.isLiving() == true && Charlie.isLiving() == false){
System.out.println("Aaron shoots at Bob");
Aaron.shootAtTarget(Bob);
if(Bob.isLiving() == false){
System.out.println("Bob is hit");
System.out.println("Bob is out");
deathCount++;
}
if(Bob.isLiving() == true){
System.out.println("miss");
}
}
System.out.println(" ");
//Bob
System.out.println("Bob shoots next");
if(Bob.isLiving() == false){
System.out.println("Bob has already been hit");
}
if(Bob.isLiving() == true && Charlie.isLiving() == true){
System.out.println("Bob shoots at Charlie");
Bob.shootAtTarget(Charlie);
if(Charlie.isLiving() == false){
System.out.println("Charlie is hit");
System.out.println("Charlie is out");
deathCount++;
}
if(Charlie.isLiving() == true){
System.out.println("miss");
}
}
else if(Bob.isLiving() == true && Charlie.isLiving() == false){
System.out.println("Bob shoots at Aaron");
Bob.shootAtTarget(Aaron);
if(Aaron.isLiving() == false){
System.out.println("Aaron is hit");
System.out.println("Aaron is out");
deathCount++;
}
if(Aaron.isLiving() == true){
System.out.println("miss");
}
}
//Charlie
System.out.println(" ");
System.out.println("Charlie shoots last");
if(Charlie.isLiving() == false){
System.out.println("Charlie has already been hit");
}
else if(Charlie.isLiving() == true && Bob.isLiving() == true){
System.out.println("Charlie shoots at Bob");
Charlie.shootAtTarget(Bob);
if(Bob.isLiving() == false){
System.out.println("Bob is hit");
System.out.println("Bob is out");
deathCount++;
}
}
if(Aaron.isLiving() == false && Bob.isLiving() == false){
System.out.println("Charlie is the winner");
System.out.println(" ");
}
else if(Aaron.isLiving() == false && Charlie.isLiving() == false){
System.out.println("Bob is the winner");
System.out.println(" ");
}
else if(Bob.isLiving() == false && Charlie.isLiving() == false){
System.out.println("Aaron is the winner");
System.out.println(" ");
}
}
}
謝謝大家的幫助!