Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种更简单的方法来为我的Java跳棋游戏添加黑白方块,而不是什么I';我已经在用了?_Java_Math - Fatal编程技术网

有没有一种更简单的方法来为我的Java跳棋游戏添加黑白方块,而不是什么I';我已经在用了?

有没有一种更简单的方法来为我的Java跳棋游戏添加黑白方块,而不是什么I';我已经在用了?,java,math,Java,Math,基本上是标题。我正在创建一个跳棋游戏,需要有两组空方块-黑色和白色。到目前为止,我只是手动输入每个方块的位置(每个方块需要是黑色而不是白色),但当它是8x8板时,这相当长。。。有没有更简单的方法?我尝试了一些数学公式,但这很烦人,因为黑色方块每隔一个方块移动一次,直到第四个方块不跳,例如,黑色方块每隔0-2-4-6,然后是第九个方块,然后是9-11-13-15-16等等(如果我没有正确解释的话,请看跳棋板)。我可以将可能的位置添加到数组中以使其更简单,但这似乎仍然不是一个好主意 我用Java做这

基本上是标题。我正在创建一个跳棋游戏,需要有两组空方块-黑色和白色。到目前为止,我只是手动输入每个方块的位置(每个方块需要是黑色而不是白色),但当它是8x8板时,这相当长。。。有没有更简单的方法?我尝试了一些数学公式,但这很烦人,因为黑色方块每隔一个方块移动一次,直到第四个方块不跳,例如,黑色方块每隔0-2-4-6,然后是第九个方块,然后是9-11-13-15-16等等(如果我没有正确解释的话,请看跳棋板)。我可以将可能的位置添加到数组中以使其更简单,但这似乎仍然不是一个好主意

我用Java做这个,现在看起来基本上是这样的:

  for(int i = 0; i < 64; i++) {
        if (i == 0 || i == 2 || i == 4 || i == 6 || i == 9 || i == 11 || i == 13 || i == 15 || i == 16 || i == 18 || i == 20 || i == 22) {
            s = new Square("EMPTY-TWO", i);
        }
        else {
            s = new Square("EMPTY-ONE", i);
        }
for(int i=0;i<64;i++){
如果(i==0 | i==2 | i==4 | i==6 | i==9 | i==11 | i==13 | i==15 | i==16 | i==18 | i==20 | i==22){
s=新正方形(“空二”,i);
}
否则{
s=新正方形(“空一”,i);
}

这显然不理想

尝试使用嵌套for循环:

for(int i = 0; i < 8; i++) {
        for(int j = 0; j < 8; j++) {
            if ((i % 2 == 0 && j % 2 == 0) || (i % 2 != 0 && j % 2 != 0)) {
                // your code here the value you had for i will now be (i * 8 + j)
            }
        }
    }
for(int i=0;i<8;i++){
对于(int j=0;j<8;j++){
如果((i%2==0&&j%2==0)| |(i%2!=0&&j%2!=0)){
//这里的代码现在为i的值为(i*8+j)
}
}
}

在一个循环中,但提供您可能需要显示正方形的行和列信息:

for (int i = 0; i < 64; i++) 
{
    int row = i / 8;
    int col = i % 8;
    boolean isBlack = ((row + col) % 2 == 0);
    System.out.println("row = " + row + ", col = " + col + ": " + (isBlack ? "black" : "white"));
}

请发布您已经尝试过的代码,并告诉我们您在哪里使用了一些很好的循环。更新以显示我正在使用atm的代码。不太确定如何循环此代码以使其按预期工作,因此我问您为什么…请尝试使用if(I%2==0)我已经试过了,但那不起作用,因为它只是以2的倍数上升,这不是我想要的,因为棋盘将每隔0-2-4-8-9走一次,只要看看棋盘就知道我的意思。也许最好解释一下余数运算符,不是每个人都知道它的确切作用
for (int i = 0; i < 64; i++)
{
    int row = i / 8;
    int col = i % 8;
    boolean isBlack = ((row + col) % 2 == 0);
    if(col==0)
    {
        System.out.println("\n+-------+-------+-------+-------+-------+-------+-------+-------+");
        System.out.print("| ");
    }
    System.out.print((isBlack?"black":"white")+" | ");      
}
System.out.println("\n+-------+-------+-------+-------+-------+-------+-------+-------+");
+-------+-------+-------+-------+-------+-------+-------+-------+
| black | white | black | white | black | white | black | white | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| white | black | white | black | white | black | white | black | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| black | white | black | white | black | white | black | white | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| white | black | white | black | white | black | white | black | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| black | white | black | white | black | white | black | white | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| white | black | white | black | white | black | white | black | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| black | white | black | white | black | white | black | white | 
+-------+-------+-------+-------+-------+-------+-------+-------+
| white | black | white | black | white | black | white | black | 
+-------+-------+-------+-------+-------+-------+-------+-------+