Ich versuche, ein Sudoku-Board über ein 2D-Array zu erzeugen: board [5] [5]. Das Sudoku-Board sollte nur eindeutige Vokale enthalten. Ich habe jedoch nur einzigartige Vokale in einer Reihe erscheinen lassen. Für die Spalten scheinen sie immer noch Duplikate zu haben. Wie soll ich eine Spalte ohne Duplikate mit dem bisherigen Code erzeugen?Wie lösche ich das Duplikat in einem 2D-Array in Java?
Hier ist der Code, den ich zum Erzeugen von eindeutigen Buchstaben in einer Reihe habe:
String [] vowels = {"A","E","I","O","U"};
String [][] board = new String [vowels.length][5];
public Actions(){
int rows = 5;
for(int row = 0;row<rows;row++){
ArrayList<String> tempVowels = new ArrayList<String>(Arrays.asList(vowels));
int numVowPerLine = (int)Math.floor(Math.random()*4);
for(int j = 0;j<numVowPerLine;j++){
do{
int pos = (int)Math.floor(Math.random()*5);
if(board[row][pos] == null){
int temp = (int)Math.floor(Math.random()*tempVowels.size());
board[row][pos] = tempVowels.get(temp);
tempVowels.remove(temp);
break;
}
}while(true);
}
}
Credits: L7ColWinters
hmm ... ich verstehe, dass mit diesem Code der Code kein Duplikat hätte. Wird das gesamte 2D-Array dann aufgefüllt? – javaBeginner
Erm, der Code füllt 5 Vokale in 5 richtige Steckplätze auf der 5x5-Platine. Wolltest du das nicht? Andere Positionen bleiben leer, damit Sie mit ihnen machen können, was Sie wollen. – ArjunShankar
Wenn ich diesen Code versuchte, zeigt es nur einen Buchstaben in einer Reihe und gleichzeitig in einer Spalte.Mein ursprüngliches Problem war, das Duplikat durch Null zu ersetzen, um das Duplikat zu löschen. – javaBeginner