Java:
import java.util.*;
class Dcoder
{
public static void main(String args[]){
String[] game = createCardGame();
game = shuffle();
System.out.println(Arrays.toString(game));
}
private static String[] createCardGame(){
String[] game = {"2", "3", "4", "5", "6", "B", "K", "Q"};
return game;
}
private static String[] shuffle(){
String[] game = createCardGame();
String[] shuffled = new String[game.length];
for(int i = 0; i < shuffled.length; i++){
int random = (int)(Math.random() * 7);
for(int j = 0; j < i; j++){
if(game[random].equals(shuffled[j])){
random = (int)(Math.random() * 7);
j = 0;
}
}
shuffled[i] = game[random];
}
return shuffled;
}
}
Folgendes Problem: Ich habe 8 verschiedene Karten aufsteigend nach ihrer Wertigkeit in einem Array gespeichert, das durch createCardGame () erzeugt wurde. Dessen Werte werden alle in einem Array shuffled [] durch den Aufruf shuffle () in zufälliger Reihenfolge abgelegt, ohne dass dabei ein Duplikat vorkommt (Das habe ich mit der inneren for Schleife sichergestellt). Nur kommt immer der erste von shuffled [] doppelt vor (kopiert den Code und probiert es selber aus) und ich weiß nicht warum. Kann mir bitte jemand helfen?
Zuletzt bearbeitet von einem Moderator: