lundi 16 octobre 2017

Java - Limiting Random outcomes based on earlier values

I'm working on a Gambler-like game to practice socket programming and I've ran into a slight problem. I have a game where the players take turn to get a random number. The numbers are added together to have Player Scores. I'm trying to make so that if you for example pull a 7 - you can't get it again. What I've been trying so far:

private void pick() {

    Number r = new Number(getNumber(), new Vector2(200, 10));
    myNumbers.add(r);
    sendMessage(output, "Number" + r.value);
}

private int getNumber() {
    int n = random.nextInt(10);
    while(!numberHasBeenPicked(n)) {
        n = random.nextInt(10);
    }

    return n;

}

private boolean numberHasBeenPicked(int value) {
    if(numbersUsed.size() > 0) {
        for(int i = 0; i < numbersUsed.size(); i++) {
            if(value == numbersUsed.get(i)) {
                return true;
            } else
                return false;
        } 
    }

    return false;

}

But I don't get the results I'm looking for. I don't know what more to say since the error I get is basically that I still get numbers that has been used even though I'm sure they have been put into the numbersUsed list.

Any help would be appreciated and I'm sorry if there is lack of information.




Aucun commentaire:

Enregistrer un commentaire