示例#1
0
    public static void Valuecal()
    {
        int[,] sum = new int[5, 2];
        int i, j, k, a, b;


        for (i = 0; i < 15; i++)
        {
            for (j = 0; j < 15; j++)
            {
                //if_have_piece
                if (ReferenceTable.checkerboard[i, j] != 0)
                {
                    Valuemap[i, j, 0] = 0;
                    Valuemap[i, j, 1] = 0;
                }
                else
                {
                    //black
                    //ini
                    for (a = 0; a < 5; a++)
                    {
                        for (b = 0; b < 2; b++)
                        {
                            sum[a, b] = 0;
                        }
                    }
                    SituationCheck.Line(1, i, j);
                    for (k = 0; k < 4; k++)
                    {
                        if (SituationCheck.If_sleep[k] == 1)
                        {
                            sum[SituationCheck.Samenumber[k] - 1, 0]++;
                        }
                        else if (SituationCheck.If_sleep[k] == 0)
                        {
                            sum[SituationCheck.Samenumber[k] - 1, 1]++;
                        }
                    }
                    if (sum[4, 0] != 0 || sum[4, 1] != 0)
                    {
                        //live five
                        Valuemap[i, j, 0] = 100000;
                    }
                    else if (sum[3, 0] >= 2)
                    {
                        //double four
                        Valuemap[i, j, 0] = 10000 + sum[3, 0];
                    }
                    else if (sum[3, 1] >= 1 && sum[2, 0] >= 1)
                    {
                        //dead four & live three
                        Valuemap[i, j, 0] = 10000 + sum[3, 1] + sum[2, 0];
                    }
                    else if (sum[3, 1] >= 2 || sum[3, 0] >= 1)
                    {
                        //double dead four | live four
                        Valuemap[i, j, 0] = 10000 + sum[3, 1] + sum[3, 0];
                    }
                    else if (sum[2, 0] >= 2)
                    {
                        //double three
                        Valuemap[i, j, 0] = 5000 + sum[2, 0];
                    }
                    else if (sum[2, 0] >= 1 && sum[2, 1] >= 1)
                    {
                        //dead three &live three
                        Valuemap[i, j, 0] = 1000 + sum[2, 0] + sum[2, 1];
                    }
                    else if (sum[3, 1] >= 1)
                    {
                        //dead four
                        Valuemap[i, j, 0] = 500 + sum[3, 1];
                    }
                    else if (sum[2, 0] >= 1)
                    {
                        //live three
                        Valuemap[i, j, 0] = 100 + sum[2, 0];
                    }
                    else if (sum[1, 0] >= 2)
                    {
                        //double live two
                        Valuemap[i, j, 0] = 50 + sum[1, 0];
                    }
                    else if (sum[1, 0] >= 1)
                    {
                        //live two
                        Valuemap[i, j, 0] = 10 + sum[1, 0];
                    }
                    else if (sum[2, 1] >= 1)
                    {
                        //dead three
                        Valuemap[i, j, 0] = 5 + sum[2, 1];
                    }
                    else if (sum[1, 1] >= 1)
                    {
                        //dead two
                        Valuemap[i, j, 0] = 2 + sum[1, 1];
                    }
                    else
                    {
                        Valuemap[i, j, 0] = 1;
                    }
                    //Debug.Log(sum[1, 0]);

                    //Debug.Log(i+" "+j);

                    //white
                    //ini
                    for (a = 0; a < 5; a++)
                    {
                        for (b = 0; b < 2; b++)
                        {
                            sum[a, b] = 0;
                        }
                    }
                    SituationCheck.Line(2, i, j);
                    for (k = 0; k < 4; k++)
                    {
                        if (SituationCheck.If_sleep[k] == 1)
                        {
                            sum[SituationCheck.Samenumber[k] - 1, 0]++;
                        }
                        else if (SituationCheck.If_sleep[k] == 0)
                        {
                            sum[SituationCheck.Samenumber[k] - 1, 1]++;
                        }
                    }
                    if (sum[4, 0] != 0 || sum[4, 1] != 0)
                    {
                        //live five
                        Valuemap[i, j, 1] = 100000;
                    }
                    else if (sum[3, 0] >= 2)
                    {
                        //double four
                        Valuemap[i, j, 1] = 10000 + sum[3, 0];
                    }
                    else if (sum[3, 1] >= 1 && sum[2, 0] >= 1)
                    {
                        //dead four & live three
                        Valuemap[i, j, 1] = 10000 + sum[3, 1] + sum[2, 0];
                    }
                    else if (sum[3, 1] >= 2 || sum[3, 0] >= 1)
                    {
                        //double dead four | live four
                        Valuemap[i, j, 1] = 10000 + sum[3, 1] + sum[3, 0];
                    }
                    else if (sum[2, 0] >= 2)
                    {
                        //double three
                        Valuemap[i, j, 1] = 5000 + sum[2, 0];
                    }
                    else if (sum[2, 0] >= 1 && sum[2, 1] >= 1)
                    {
                        //dead three &live three
                        Valuemap[i, j, 1] = 1000 + sum[2, 0] + sum[2, 1];
                    }
                    else if (sum[3, 1] >= 1)
                    {
                        //dead four
                        Valuemap[i, j, 1] = 500 + sum[3, 1];
                    }
                    else if (sum[2, 0] >= 1)
                    {
                        //live three
                        Valuemap[i, j, 1] = 100 + sum[2, 0];
                    }
                    else if (sum[1, 0] >= 2)
                    {
                        //double live two
                        Valuemap[i, j, 1] = 50 + sum[1, 0];
                    }
                    else if (sum[1, 0] >= 1)
                    {
                        //live two
                        Valuemap[i, j, 1] = 10 + sum[1, 0];
                        //Debug.Log(i + " w " + j + " w " + sum[1, 0]);
                    }
                    else if (sum[2, 1] >= 1)
                    {
                        //dead three
                        Valuemap[i, j, 1] = 5 + sum[2, 1];
                    }
                    else if (sum[1, 1] >= 1)
                    {
                        //dead two
                        Valuemap[i, j, 1] = 2 + sum[1, 1];
                    }
                    else
                    {
                        Valuemap[i, j, 1] = 1;
                    }
                }
            }
            //Debug.Log(i + " " + j);
        }
        return;
    }
示例#2
0
 private int Wincheck(int player, int x, int y)
 {
     return(SituationCheck.Lian5(player, x, y));
 }