我想在空白區域移動假元素(就像在Schelling的分離模型中一樣)。 這是陣列..(陣列中的元件被隨機放置)將陣列中的元素移動到空白位置
'X*''O'' ''X''O*'
'O''O'' '' ''X'
'O'' ''X''X''O*'
'X'' '' ''X''X'
'X''X''O*''X''O*'
在(0,0),(0,4),(2,4)(4,2)的元件, ,(4,4)是錯誤的,因爲它周圍沒有類似的元素(我旁邊有* *)更容易看到。 我想將這些錯誤元素移動到數組的空白位置''。它可以移動到陣列中的任何空白位置。
' ''O''X''X'' '
'O''O''O'' ''X'
'O''O''X''X'' '
'X''O''O''X''X'
'X''X'' ''X'' '
這是我的代碼。
//isArrGood is a method that checks if the element is false or true
//arr is 2D array that is being passed in the method
//store the false elements
char[] falseEle = new char[arr.length * arr[0].length];
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr[i].length; j++){
if(!isArrGood(arr,i,j)){
falseEle[i] = arr[i][j];
}
}
}
//finds the blank space and replaces it with a false cell and finds a false cell and
//replace it with a blank space
for(int x=0; x<arr.length; x++){
for(int y=0; y<arr[x].length; y++) {
if (arr[x][y] == ' ') {
arr[x][y] = falseEle[x];
}
if(!isArrGood(arr,x,y){
arr[x][y] = ' ';
}
}
}
這就是我所得到的。
在方法中發送的當前數組(arr)是。此數組中的虛假元素在 (1,0),(2,2),(3,2)
' ' 'X' 'X' 'X' 'X'
'O' ' ' 'X' 'X' ' '
' ' 'X' 'O' ' ' 'X'
'O' 'O' 'X' ' ' 'O'
'O' 'O' ' ' 'O' ' '
而這就是我得到
'' 'X' 'X' 'X' 'X'
'O' 'O' 'X' 'X' 'O'
'O' 'X' 'O' 'O' 'X'
'O' 'O' 'X' 'X' 'O'
'O' 'O' '' 'O' ''
陣列上的非常頂級只是我想要做的一個例子。
那麼,什麼是你的問題/問題? – 2014-11-21 05:41:38
將這些假元素移動到數組中的空元素 – AP6 2014-11-21 05:43:29
是的,但是您當前的代碼有什麼問題?你能提供一個錯誤信息嗎?我當然不會複製,粘貼,編譯,然後運行你的代碼來找出錯誤。 – 2014-11-21 05:44:32