⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evalue.cs

📁 人工智能 五子棋的实现。AI算法比较高
💻 CS
📖 第 1 页 / 共 3 页
字号:
                            }
                        }
            }
            {
                for (int j = 4; j < 15; j++)
                    for (int i2 = 0; i2 <= j - 4; i2++)
                        if ((chess_board[i2][j - i2] !=1) && (chess_board[i2 + 1][j - i2 - 1] !=1)
                        && (chess_board[i2 + 2][j - i2 - 2] !=1) && (chess_board[i2 + 3][j - i2 - 3] !=1) && (chess_board[i2 + 4][j - i2 - 4] !=1))
                        {
                            value = 0;
                            int k;
                            for (k = 0; k < 5; k++)
                            {
                                if (chess_board[i2 + k][j - i2 - k] == 2)
                                    value++;
                                test[1 + k] = chess_board[i2 + k][j - i2 - k];
                            }


                            k = -1;
                            if (va(i2 + k, j - i2 - k) == 1)
                                test[1 + k] = chess_board[i2 + k][j - i2 - k];
                            else test[1 + k] = 2;
                            /* k=5;
                            if (va(i2+k,j-i2-k))
                                test[1+k]=chess_board[i2+k][j-i2-k];
                            else test[1+k]=2;


                  */
                            if (value == 5)
                                value = 90000;
                            if (value == 4)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 9000;
                                else value = 7000;
                            }
                            if (value == 3)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 900;
                                else value = 700;
                            }
                            if (value == 2)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 90;
                                else value = 70;
                            }

                            if (value == 1)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 3;

                            }

                            if (value == maxvalue)
                                maxi++;
                            if (value > maxvalue)
                            {
                                maxi = 1;
                                maxvalue = value;
                                //		  cout<<3;
                            }
                        }
            }

            {
                for (int i3 = 1; i3 <=10; i3++)
                    for (int j = 0; j <= 10 - i3; j++)
                        if ((chess_board[i3 + j][14 - j] !=1) && (chess_board[i3 + j + 1][13 - j] !=1)
                        && (chess_board[i3 + j + 2][12 - j] !=1) && (chess_board[i3 + j + 3][11 - j] !=1) && (chess_board[i3 + j + 4][10 - j] !=1))
                        {
                            value = 0;
                            int k;
                            for (k = 0; k < 5; k++)
                            {
                                if (chess_board[i3 + j + k][14 - j - k] == 2)
                                    value++;
                                test[1 + k] = chess_board[i3 + j + k][14 - j - k];
                            }


                            k = -1;
                            if (va(i3 + j + k, 14 - j - k) == 1)
                                test[1 + k] = chess_board[i3 + j + k][14 - j - k];
                            else test[1 + k] = 2;
                            /* k=5;
                            if (va(i3+j+k,14-j-k))
                                test[1+k]=chess_board[i3+j+k][14-j-k];
                            else test[1+k]=2;


                  */
                            if (value == 5)
                                value = 90000;
                            if (value == 4)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 9000;
                                else value = 7000;
                            }
                            if (value == 3)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 900;
                                else value = 700;
                            }
                            if (value == 2)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 90;
                                else value = 70;
                            }

                            if (value == 1)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 3;

                            }

                            if (value == maxvalue)
                                maxi++;
                            if (value > maxvalue)
                            {
                                maxi = 1;
                                maxvalue = value;
                                //		  cout<<4;
                            }
                        }
            }
            {
                for (int i4 = 0; i4 <= 10; i4++)
                    for (int j = 0; j <= 10 - i4; j++)
                        if ((chess_board[i4 + j][j] !=1) && (chess_board[i4 + j + 1][j + 1] !=1)
                        && (chess_board[i4 + j + 2][j + 2] !=1) && (chess_board[i4 + j + 3][j + 3] !=1) && (chess_board[i4 + j + 4][j + 4] !=1))
                        {
                            value = 0;
                            int k;
                            for (k = 0; k < 5; k++)
                            {
                                if (chess_board[i4 + k + j][j + k] == 2)
                                    value++;
                                test[1 + k] = chess_board[i4 + k + j][j + k];
                            }

                            k = -1;
                            if (va(i4 + k + j, j + k) == 1)
                                test[1 + k] = chess_board[i4 + k + j][j + k];
                            else test[1 + k] = 2;
                            /* k=5;
                            if (va(i4+k+j,j+k))
                                test[1+k]=chess_board[i4+k+j][j+k];
                            else test[1+k]=2;

              */
                            if (value == 5)
                                value = 90000;
                            if (value == 4)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 9000;
                                else value = 7000;
                            }
                            if (value == 3)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 900;
                                else value = 700;
                            }
                            if (value == 2)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 90;
                                else value = 70;
                            }

                            if (value == 1)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 3;

                            }

                            if (value == maxvalue)
                                maxi++;
                            if (value > maxvalue)
                            {
                                maxi = 1;
                                maxvalue = value;
                                //	  cout<<5<<endl;
                                //	  cout<<i4<<' '<<j<<endl;
                            }
                        }
            }
            {
                for (int j5 = 1; j5 <= 10; j5++)
                    for (int i5 = 0; i5 <= 10 - j5; i5++)
                        if ((chess_board[i5][j5 + i5] != 1) && (chess_board[i5 + 1][j5 + 1 + i5] != 1)
                        && (chess_board[i5 + 2][j5 + 2 + i5] != 1) && (chess_board[i5 + 3][j5 + 3 + i5] != 1) && (chess_board[i5 + 4][j5 + 4 + i5] != 1))
                        {
                            value = 0;
                            int k;
                            for (k = 0; k < 5; k++)
                            {
                                if (chess_board[i5 + k][j5 + k + i5] == 2)
                                    value++;
                                test[1 + k] = chess_board[i5 + k][j5 + k + i5];
                            }


                            k = -1;
                            if (va(i5 + k, j5 + k + i5) == 1)
                                test[1 + k] = chess_board[i5 + k][j5 + k + i5];
                            else test[1 + k] = 2;
                            /* k=5;
                            if (va(i5+k,j5+k+i5))
                                test[1+k]=chess_board[i5+k][j5+k+i5];
                            else test[1+k]=2;

                  */
                            if (value == 5)
                                value = 90000;
                            if (value == 4)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 9000;
                                else value = 7000;
                            }
                            if (value == 3)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 900;
                                else value = 700;
                            }

                            if (value == 2)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 90;
                                else value = 70;
                            }

                            if (value == 1)
                            {
                                if ((test[0] == 0) && (test[5] == 0))
                                    value = 3;

                            }

                            if (value == maxvalue)
                                maxi++;
                            if (value > maxvalue)
                            {
                                maxi = 1;
                                maxvalue = value;
                                // cout<<6;
                            }
                        }
            }






















            res[1] = temp-maxvalue;
            return res;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -