Java 扫雷舰游戏阵列

Java 扫雷舰游戏阵列,java,Java,我和问这个问题的人有同样的问题 我想为一个小型扫雷游戏编写一些基本的代码。 现在我有一个问题,我的代码 public class Minesweeper1 { public static int[][] makeRandomBoard(int s, int z, int n){ int feld[][] = new int [s][z]; for(int i = 0; i < s; i++){ for(int j = 0; j <

我和问这个问题的人有同样的问题

我想为一个小型扫雷游戏编写一些基本的代码。 现在我有一个问题,我的代码

public class Minesweeper1 {

     public static int[][]  makeRandomBoard(int s, int z, int n){


     int feld[][] = new int [s][z];
     for(int i = 0; i < s; i++){
         for(int j = 0; j < z; j++){
             feld[i][j] = 0;
         } 
      }
      for(int i = 0; i < n; i++){
          selectRandomPosition(s, z);
          feld[randomHeight][randomWidth] = 1;
      }
    }
这里我不允许更改任何内容,但它返回一个新数组。现在我的问题是如何在
makeRandomBoard
中使用新数组,因为我不知道数组的任何名称。当我使用
feld[randomHeight][randomWidth]=1时它说它不知道这些变量

他确实得到了答案: 调用该方法,并将其返回值赋给变量。现在您有了阵列的名称:

// Make a call
int[] randomArray = selectRandomPosition(maxW, maxH);
// Access the width
int randomW = randomArray[0];
// Access the height
int randomH = randomArray[1];
但是我现在要写什么呢? 我试了一下:

feld[randomW][randomH] = 1;
但它似乎不起作用。我还需要一个返回语句。
有人能帮我吗?

我相信这就是您正在寻找的解决方案:

解决方案
公共级扫雷艇1{
//注:
//s==高度
//z==宽度
公共静态int[]makeRandomBoard(int s、int z、int n){
//注意:“字段”拼写错误?
int feld[][]=新的int[s][z];
//初始化没有地雷的游戏板(值为0)
对于(int i=0;i
问题 传递错误的值 您呼叫的
selectRandomPosition
错误。请记住,
s
是高度,
z
是宽度。因此,您要将第一个参数的高度和第二个参数的宽度传递到
selectRandomPosition
。请看方法声明:

public static int[]选择随机位置(int-maxWidth,int-maxHeight)
这意味着您将高度传递到
maxWidth
,将宽度传递到
maxHeight
。我的解决方案可以帮你实现。这可能是混淆的,因为<代码> s < /> >和<代码> z <代码>没有真正给你提示它们是什么(高度和宽度)-考虑重命名这些变量来帮助你。

以错误的顺序访问 你的问题中有:

feld[randomW][randomH]=1;
这是错误的,应该是:


feld[randomH][randomW]=1;
此图显示了二维阵列外观的视觉表示:

因此,访问将是:

feld[0][0]==1
费尔德[0][1]==1
费尔德[0][2]==1
费尔德[1][0]==1
费尔德[1][1]==2
费尔德[1][2]==4
费尔德[2][0]==1
费尔德[2][1]==3
费尔德[2][2]==9
挑剔:拼写错误 除了像
s
z
这样的奇怪变量名根本不能帮助您记住什么意思之外,您最终返回的主变量拼写错误。你是说“田野”吗


变量命名很重要,可以帮助您和其他读者轻松理解代码。此外,在你认为需要的地方发表评论也会有帮助

那是个糟糕的标题。请使用标题总结手头的问题。这与C有什么关系?您有2个随机数,需要如何处理它们?
feld[randomH][randomW]=1
但是请注意,您已经颠倒了赋值,它应该是
intrandomW=randomArray[1]
intrandomH=randomArray[0]
最后,在结束括号之前的
makeRandomBoard
的最后一行应该
返回feldfeld[randomW][randomH] = 1;