尝试从每个用户的ArrayList打印出来

时间:2014-03-03 23:31:02

标签: java arrays list printing arraylist

在两个用户都猜到正确的答案后,我必须在最后打印出每个用户的错误猜测。我一直在努力做到这一点,但我只是打算在一行上打印出两个玩家的错误猜测,而不是让他们在玩家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);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你需要有两个不同的数组才能区分和添加元素,每个用户猜错了!

ArrayList<Integer> wrongGuesses1= new ArrayList<Integer>();
ArrayList<Integer> wrongGuesses2= new ArrayList<Integer>();

然后在你的代码中弄清楚谁正在猜测那个特定的瞬间,如果它是错的那么你应该分别在他们的数组中添加一个元素!

虽然我不认为用户会想知道他们的错误猜测是什么,但为每个用户制作错误猜测的数量的计数器可能更有效率! :d