在两个用户都猜到正确的答案后,我必须在最后打印出每个用户的错误猜测。我一直在努力做到这一点,但我只是打算在一行上打印出两个玩家的错误猜测,而不是让他们在玩家1下,然后是玩家2错误的猜测。
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class arrays {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner keyboard = new Scanner(System.in);
Scanner console = new Scanner(System.in);
Random rand = new Random();
System.out.print("Please enter the number of players: "); //how many people are playing
int x = console.nextInt();
System.out.println("Number of players: "+ x);
ArrayList<Integer> guesses = new ArrayList<Integer>();
ArrayList<Integer> wrongguesses = new ArrayList<Integer>();
int userInt = 0;
int counter = 0;
int[] players = new int[x]; //set array to amount of players
int [] playerAttempts = new int[x];
boolean playersStillPlaying = true; //set it so everyone is playing at first
boolean[] stillPlaying = new boolean[x]; //gives each player a t/f value
for (int i=0;i<players.length;i++) {
int randomNum = rand.nextInt(100) + 1; //generate random numbers depending on the players
players[i] = randomNum;
stillPlaying[i] = true;
}
while (playersStillPlaying) { //sets it so it ends if each person is done playing
playersStillPlaying = false;
for (int i = 0 ; i < stillPlaying.length; i++) {
if (stillPlaying[i]) {
System.out.println("Player " + i + ", what's your guess? "); //ask them for input
userInt = keyboard.nextInt();
if (userInt == players[i]) {
stillPlaying[i] = false;
System.out.println(userInt + " You got it!"); //correct
guesses.add(userInt + i);
}
else if (userInt < players[i]) {
playersStillPlaying = true;
System.out.println(userInt + " is too small");
wrongguesses.add(userInt + i);
}
else if (userInt > players[i]) {
playersStillPlaying = true;
System.out.println(userInt + " is too big");
wrongguesses.add(userInt + i);
}
}
} {
}
}
for (int i = 0; i < playerAttempts.length; i++){
{
System.out.println("Player " + i + " Correct guesses were" + guesses);
System.out.println("Player " + i + " Incorrect guesses were" + wrongguesses);
}
}
}
}
答案 0 :(得分:0)
你需要有两个不同的数组才能区分和添加元素,每个用户猜错了!
ArrayList<Integer> wrongGuesses1= new ArrayList<Integer>();
ArrayList<Integer> wrongGuesses2= new ArrayList<Integer>();
然后在你的代码中弄清楚谁正在猜测那个特定的瞬间,如果它是错的那么你应该分别在他们的数组中添加一个元素!
虽然我不认为用户会想知道他们的错误猜测是什么,但为每个用户制作错误猜测的数量的计数器可能更有效率! :d