首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tac Tac脚趾游戏10*10棋盘-找到赢家

Tac Tac脚趾游戏10*10棋盘-找到赢家
EN

Stack Overflow用户
提问于 2021-04-19 12:35:48
回答 3查看 158关注 0票数 0

我必须在我的项目中工作,我必须找到TicTacToe游戏胜利者。

代码语言:javascript
复制
String [][]board=new String [10][10];

10行10列在哪里

我可以在水平上找到赢家:

代码语言:javascript
复制
for (int I=0;I<10;I++){
    String line1=new String();
    for (int i=0;i<10;i++) {
        line1+=index[I][i];
    }
    if (line1.equals("XXXXXXXXXX")) {
        System.out.println("winner is X");///return here X
    } else if (line1.equals("OOOOOOOOOO")) {
        System.out.println("winner is O");//return here O
        }
    }
}

但我无法找到一个垂直的赢家,我有一个选项,我可以硬编码,但我想对它进行逻辑编码,就像我的代码水平。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-04-19 15:35:21

我已经解决了这个问题,首先旋转数组,然后使用水平代码再次检查

代码语言:javascript
复制
   //first find the transpose of the index.
        for (int i = 0; i < 10; i++){
            for (int j = i; j < 10; j++){
                String temp = index[i][j];
                index[i][j] = index[j][i];
                index[j][i] = temp;
            }
        }


        //reverse each row
        for (int i = 0; i< 10; i++){
            for(int j = 0; j< 10/2; j++){
                String temp = index[i][j];
                index[i][j] = index[i][10 - 1 - j];
                index[i][10 - 1 - j] = temp;
            }
        }

现在数组是旋转的,现在我可以使用我的水平检查代码。

代码语言:javascript
复制
for (int I=0;I<10;I++){
    String line1=new String();
    for (int i=0;i<10;i++) {
        line1+=index[I][i];
    }
    if (line1.equals("XXXXXXXXXX")) {
        System.out.println("winner is X");///return here X
    }else if (line1.equals("OOOOOOOOOO")){
        System.out.println("winner is O");//return here O
    }
}
票数 0
EN

Stack Overflow用户

发布于 2021-06-30 20:01:08

它只是首先旋转数组,然后再使用水平代码进行检查

代码语言:javascript
复制
//first find the transpose of the index.
        for (int i = 0; i < 10; i++){
            for (int j = i; j < 10; j++){
                String temp = index[i][j];
                index[i][j] = index[j][i];
                index[j][i] = temp;
            }
        }


        //reverse each row
        for (int i = 0; i< 10; i++){
            for(int j = 0; j< 10/2; j++){
                String temp = index[i][j];
                index[i][j] = index[i][10 - 1 - j];
                index[i][10 - 1 - j] = temp;
            }
        }
票数 0
EN

Stack Overflow用户

发布于 2021-06-30 20:08:08

旋转数组,然后再次检查使用水平代码,这很容易

代码语言:javascript
复制
//first find the transpose of the index.
        for (int i = 0; i < 10; i++){
            for (int j = i; j < 10; j++){
                String temp = index[i][j];
                index[i][j] = index[j][i];
                index[j][i] = temp;
            }
        }


        //reverse each row
        for (int i = 0; i< 10; i++){
            for(int j = 0; j< 10/2; j++){
                String temp = index[i][j];
                index[i][j] = index[i][10 - 1 - j];
                index[i][10 - 1 - j] = temp;
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67162124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档