注册 登录
编程论坛 JAVA论坛

关于井字棋的代码,小弟有个地方实在看不懂

柏拉图的理想 发布于 2016-05-20 16:16, 1902 次点击
程序代码:
package 数组;

import java.util.Scanner;

public class 井字棋 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        int SIZE=3;
        int[][] board=new int[SIZE][SIZE];
        int numX=0;
        int numO=0;
        boolean getRESULT=false;
        int result=0;
        for(int i=0;i<board.length;i++)
        {
            for(int j=0;j<board[i].length;j++)
            {
                board[i][j]=in.nextInt();
            }
        }
        //检查行
        for(int i=0;i<board.length;i++)
        {
            for(int j=0;j<board[i].length;j++)
            {
                if(board[i][j]==1)
                {
                    numX++;
                }
                else
                {
                    numO++;
                }
                if(numX==SIZE || numO==SIZE)
                {
                    getRESULT=true;
                    if(numX==SIZE)
                    {
                        result=1;
                    }
                    else
                    {
                        result=2;
                    }
                }
            }
            numX=0;
            numO=0;
        }
        //检查列
        if(!getRESULT)
        {
            numX=0;
            numO=0;
            for(int i=0;i<board.length;i++)
            {
                for(int j=0;j<board[i].length;j++)
                {
                    if(board[j][i]==1)
                    {
                        numX++;
                    }
                    else
                    {
                        numO++;
                    }
                    if(numX==SIZE || numO==SIZE)
                    {
                        getRESULT=true;
                        if(numX==SIZE)
                        {
                            result=1;
                        }
                        else
                        {
                            result=2;
                        }
                    }
                }
                numX=0;
                numO=0;
            }
        }
        //判断正对角线
        if(!getRESULT)
        {
            numX=0;
            numO=0;
            for(int i=0;i<board.length;i++)
            {
                if(board[i][i]==1)
                {
                    numX++;
                }
                else
                {
                    numO++;
                }
                if(numX==SIZE || numO==SIZE)
                {
                    getRESULT=true;
                    if(numX==SIZE)
                    {
                        result=1;
                    }
                    else
                    {
                        result=2;
                    }
                }
            }
        }
        //判断反对角线
        if(!getRESULT)
        {
            numX=0;
            numO=0;
            for(int i=0;i<board.length;i++)
            {
                if(board[i][SIZE-i-1]==1)
                {
                    numX++;
                }
                else
                {
                    numO++;
                }
                if(numX==SIZE || numO==SIZE)
                {
                    getRESULT=true;
                    if(numX==SIZE)
                    {
                        result=1;
                    }
                    else
                    {
                        result=2;
                    }
                }
            }
        }
        //出结果
        switch(result)
        {
        case 1:
            System.out.print("X方胜");
            break;
        case 2:
            System.out.print("O方胜");
            break;
        default:
            System.out.print("平局");
        }
        in.close();
   
    }
        

    }

其中这里的getRESULT到底是起到什么作用,还有那个分if(!getRESULT)在运行的过程中又是什么意思,我现在完全被这两个地方给搞蒙了
1 回复
#2
current2016-05-31 11:26
这要看getResult方法具体是干嘛才知道阿
1