簡體   English   中英

在Java中運行程序1000次

[英]run program 1000 times in java

我編寫了一個程序,模擬了3個參與者之間的決斗。 三個參與者中的每一個在射擊方面都有不同的准確性。 決斗中的每個參與者都輪流射擊,並遵循相同的策略:每個參與者朝有機會在轉牌上擊中他們的人射擊。 該程序完全按照我想要的方式運行,一直運行到三個決斗中的兩個都不出現,然后打印出決斗的獲勝者。

我對該程序的下一個任務是再次打印該程序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(" ");



                        }



                    }



                    }

謝謝你們每一個人的幫助!

最簡單的方法是使用for循環。

public static void main(String[] args){
    for(int i = 0; i < 1000; i++){
    //Insert your code
    }
}

在那之后,您想要擁有每個人獲勝次數的全局變量。

int aaronWins = 0;
int charlieWins = 0;
int bobWins = 0;

當您檢查獲勝者時,您將根據獲勝者在總獲勝者中加一。 (偽代碼)

if Aaron won:
    aaronWins++

在您的for循環之外,您可以打印獲勝最多的人。 (偽代碼)

if aaronWins > charlieWins && aaronWins > bobWins:
    print "Aaron won the most!"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM