2016-04-13 15 views
1

こんにちは、しばらくの間、古典的なマスターマインドゲームをコーディングしています。重複したペグがない場合、プログラムは完全に機能するようです。重複ペグを持つマスターマシーン(重要な部分のみ編集)

public static void guessingNumber(int [] digits){ 
    print("Guess 5 digits numbers! ps.you only have 7 tries"); 
    boolean guess = true; 
    int n = 0; 
    while(guess){ n++; 
    print(""); 
    print("Guess no." + n + "!"); 
    int [] yourGuess = manualNumber(); 
    int correctPosition = 0; 
    int correctNumber = 0; 
    for(int i = 0; i<yourGuess.length; i++){ 
     if(digits[i] == yourGuess[i]){ 
      correctPosition += 1; 
     } else if(contains(digits, yourGuess[i]) && digits[i] != yourGuess[i]){ 
      correctNumber += 1; 
     } 

    } 
    print("You have " + correctPosition + " correct place and " + correctNumber + " correct numbers."); 
    if(Arrays.equals(digits, yourGuess)){ 
     guess = false; 
     print(""); 
     print("Well Done! You did it!"); 
     } 
    else if(n==10){ 
     guess = false; 
     print(""); 
     print("Game Over! You lose."); 
    } 
    } 
} 
public static void main(String[] args){ 
showMainMenu(); 
selectMode(); 

} 
} 

重複ペグを許可するには、次に何をする必要がありますか?また、私は自分の番号を推測するためにCPUのためのアルゴリズムを書く必要があります。提案は大歓迎!

答えて

0

CPUモード(冗談:))対人間のマイ実現

private static void runHumanVsCPU() { 
    int[] digits = manualNumber(); 
    System.out.println("Guess no.1!\n"+digits[0]+digits[1]+digits[2]+digits[3]+digits[4]+"\nCPU have 5 correct place and 0 correct numbers.\n\nWell Done! CPU did it!"); 
} 

P.S.なぜ「あなたには7回の試行しかないのですか?」だが、

} else if (n == 10) { 
    guess = false; 
    print(""); 
    print("Game Over! You lose."); 
} 

+0

まあ、私は7回の試行が5桁の笑には十分ではないことに気付いた。 –

関連する問題