我試圖通過二維數組生成Sudoku板:board [5] [5]。 Sudoku板應該只包含獨特的元音。但是,我只讓獨特的元音連續出現。對於列,他們似乎仍然有重複。我想如何生成一個沒有重複使用我迄今爲止的代碼的列?如何刪除java中的二維數組中的副本?
下面的代碼我有連續產生獨特的字母:
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);
}
}
貸:L7ColWinters
嗯...我明白,與此代碼,代碼將沒有重複。那麼整個2D陣列會被填滿嗎? – javaBeginner 2012-04-04 10:07:25
Erm,代碼將5個元音填充到5x5板上的5個正確的插槽中。這不是你要做的嗎?其他職位空空如也,你可以隨心所欲地做你想做的事情。 – ArjunShankar 2012-04-04 13:00:12
當我試過這段代碼時,它只顯示一行中的一個字母和一列中的同一個字母。我最初的問題是用null替換重複以擦除重複。 – javaBeginner 2012-04-04 13:17:28