我试图通过二维数组生成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