我真的需要在此网站http://www.edupages.com/phs/APCSAB/Curriculum/Lab3(Concentration)/APABLab1%20-%20Concentration.htm
上提供有关此问题的部分内容的帮助这是我到目前为止所拥有的。任何帮助表示赞赏。
<击> 撞击>
<击> private void fillBoard()
{
int myindex = 0;
int midsize = size/2;
for(i = 0; i+1<size; i+=2)
possibleTileValues = newFooList(String n, midsize);
possibleTileValues.fillFooList();
int j = i + 1;
String k = possibleTileValues.get(myindex);
gameboard[i] = k;
gameboard[j] = k;
}
击> <击> 撞击>
重做代码:
private void fillBoard()
{
if(size%2==0&&possibleTiles>=(size/2))
{
for(int i=0, i<possibleTileValues.length,i++)
{
gameBoard.addFoo(possibleTileValues.getFoo(i));
gameBoard.addFoo(possibleTileValues.getFoo(i));
}
for(int i=0, i<size,i++)
{
Random gen= new Random();
int randomSpot=gen.nextInt(size);
int temp = gameBoard[i];
gameBoard[i]=gameBoard[randomSpot];
gameBoard[randomSpot] = temp;
}
}
}
答案 0 :(得分:1)
让我试着让你开始吧。我不认为我现在真的理解你的代码,但让我们解决问题:
该功能有几个主要元素:
至少有两种方法可以实现这一目标:
无论哪种方式,您都可能使用java.util.Random来生成随机整数。您可以按如下方式执行此操作:
Random randomizer = new Random();
int randomint = randomizer.nextInt(rowLength);
显然,对于上面的第一种方法,你需要在内循环的每次迭代中生成一个随机数,而在第二种方法中,每次迭代生成两个随机数,为你提供板的坐标。
采取上述措施,看看你可以在哪里得到它。我很乐意进一步提供帮助。
编辑:
好的,看看你的重做代码,有一些问题。我不确定getFoo()和addFoo()是什么。如果您正在创建帮助函数,请将它们包含在代码中 这是你要遵循的一些伪代码:
int[rowSize] timesTileUsed
for x_index = 0 to rowLength - 1
for y_index = 0 to rowLength - 1
{
do
randomNumber = generator.nextInt(rowLength)
while timesTileUsed[randomNumber] > 1
board[x_index][y_index] = new Tile(possibleTileValues[randomNumber])
timesTileUsed[randomNumber]++
}
现在,请注意,这是一种非常天真的做法,但我不认为你应该对它很聪明。