java - 如何在棋盘游戏中使用循环编写更短的代码

标签 java computer-science

我为“X”和“o”游戏编写代码,现在一切正常,但我想优化我的代码并使我的函数更短,例如

我设计了游戏,让玩家与计算机对抗,计算机的优先级是首先获胜,然后阻止对手,最后填充空的单元格 所以我写了一个列的函数,行的函数和对角线的函数,并使用了很多条件 我想知道您是否知道如何通过使用循环或附加函数来缩短代码 例如,theat 函数检查计算机是否可以连续赢 3 场

    public static  boolean ComuterrowWin(char [][] board){
        if((board[0][0]=='O' && board[0][1]=='O') && board[0][2]!='X'){
            board[0][2]='O'; return true;}
        else if((board[0][1]=='O' && board[0][2]=='O') && board[0][0]!='X'){
            board[0][0]='O'; return true;}
        else if((board[0][0]=='O' && board[0][2]=='O') && board[0][1]!='X'){
            board[0][1]='O'; return true;}
        else if((board[1][0]=='O' && board[1][1]=='O') && board[1][2]!='X'){
            board[1][2]='O'; return true;}
        else if((board[1][1]=='O' && board[1][2]=='O' && board[1][0]!='X')){
            board[1][0]='O'; return true;}
        else if((board[1][0]=='O' && board[1][2]=='O') && board[1][1]!='X'){
            board[1][1]='O'; return true;}
        else if((board[2][0]=='O' && board[2][1]=='O') && board[2][2]!='X'){
            board[2][2]='O'; return true;}
        else if((board[2][1]=='O' && board[2][2]=='O') && board[2][0]!='X'){
            board[2][0]='O'; return true;}
        else if((board[2][0]=='O' && board[2][2]=='O') && board[2][1]!='X'){
            board[2][1]='O'; return true;}
        return false;
    }

最佳答案

如果你想保留数据结构,可以试试这个。只需将至少行组织成一个循环即可:

public static  boolean ComuterrowWin(char [][] board){
    for (int row=0; row<=2; row++) {
        if((board[row][0]=='O' && board[row][1]=='O') && board[row][2]!='X'){
            board[row][2]='O'; return true;}
        if((board[row][1]=='O' && board[row][2]=='O') && board[row][0]!='X'){
            board[row][0]='O'; return true;}
        if((board[row][0]=='O' && board[row][2]=='O') && board[row][1]!='X'){
            board[row][1]='O'; return true;}
    }
    return false;
}

关于java - 如何在棋盘游戏中使用循环编写更短的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43942176/

相关文章:

java - 粘性前台服务无法重新启动并出现 "process is bad"错误

regex - 是否存在可以确定一种常规语言是否匹配任何输入,另一种常规语言匹配的算法?

algorithm - 对小O的意思感到困惑

html - 是否可以创建 HTML quine?

java - 在任何情况下我应该在外部使用 ArrayList 上的 ensureCapacity() 吗?

java - CPLEX Java 凸二次约束(如果 x 非负,则仅 PSD)

java - 枚举与枚举的区别

java - 找不到 :vfw:Microsoft WDM Image Capture (Win32):0 的播放器

c - C 编程中未初始化的数组

computer-science - 我想描述什么计算机科学主题?