井字棋判断输赢的两种方法

<img src="https://img-blog.csdn.net/20161007192806825?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
//方法一
<span style="font-family: Arial, Helvetica, sans-serif;">       public static int IsSolved(int[,] b)</span></span>
        {
            var c012 = new int[] { 0, 1, 2 };
            var s = string.Join(",", c012.Select(x => string.Join("", c012.Select(y => b[x, y])))) + ","
                 + string.Join(",", c012.Select(x => string.Join("", c012.Select(y => b[y, x])))) + ","
                 + string.Join("", c012.Select(x => b[x, x])) + ","
                 + string.Join("", c012.Select(x => b[2 - x, x]));
            return s.Contains("111") ? 1 : s.Contains("222") ? 2 : !s.Contains("0") ? 0 : -1;
        }

//方法二
        //public static int IsSolved(int[,] board)
        //{
        //    int d1 = 1, d2 = 1;
        //    bool empty = false;

        //    for (int i = 0; i < 3; i++)
        //    {
        //        d1 *= board[i, i];
        //        d2 *= board[2 - i, i];

        //        int column = 1;
        //        int row = 1;

        //        for (int j = 0; j < 3; j++)
        //        {
        //            column *= board[i, j];
        //            row *= board[j, i];
        //        }

        //        if (column == 1 || row == 1) return 1;
        //        if (column == 8 || row == 8) return 2;
        //        if (column == 0 || row == 0) empty = true;
        //    }

        //    if (d1 == 1 || d2 == 1) return 1;
        //    if (d1 == 8 || d2 == 8) return 2;

        //    if (empty) return -1;
        //    return 0;
        //}

      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值