Beispiel #1
0
    // Use this for initialization
    void Start()
    {
        ai = new Ai();
        ai.AddWorker(ref ai);

        /*
         * string str = @"h18 y04 e04 g04 u00 r00 k03
         * . . . . . . . . .
         * . . . . . .r_ . .
         * . . . . . .U_ .o_
         * . . . . . . .^r .
         * . . . . . .^U . .
         * . . . . . . . . .
         * . . . . . . . . .
         * . . . . . . . . .
         * . . . . . . . . .
         * h00 y00 e00 g00 u00 r00 k01
         * first";
         */
        /*
         * string str = @"h16 y02 e04 g04 u02 r01 k03
         * . . . . .^R . .y_
         * . . . . . . .o_h_
         * . . . . . . . . .
         * . . . . . . .h_ .
         * . . . . . . .^h .
         * . . . . . .^y . .
         * . . . . . . . . .
         * . . . . . . . . .
         * . . . . . . . . .
         * h00 y00 e00 g00 u00 r00 k01
         * first";
         */
        string str = @"h16 y02 e04 g04 u02 r01 k03
 . . . . . . .^Ry_
 . . . . . . . .h_
 . . . . . . . .o_
 . . . . . . .h_ .
 . . . . . . .^h .
 . . . . . .^y . .
 . . . . . . . . .
 . . . . . . . . .
 . . . . . . . . .
h00 y00 e00 g00 u00 r00 k01
first";

        Debug.Log(str);
        board = new Board();
        board.Init(str);

        for (int j = 1; j <= BoardDef.HEIGHT; j++)
        {
            for (int i = 1; i <= BoardDef.WIDTH; i++)
            {
                float x = cellSize * (i - 1);
                float z = cellSize * -(j - 1);
                x -= cellSize * BoardDef.WIDTH / 2.0f - cellSize / 2.0f;
                z += cellSize * BoardDef.HEIGHT / 2.0f - cellSize / 2.0f;
                GameObject cell = Instantiate(CellPrefab, new Vector3(x, 0.01f, z), Quaternion.identity) as GameObject;
                cell.name             = "Cell(" + i + "," + j + ")";
                cell.transform.parent = CellsParent.transform;
            }
        }

        for (int j = 1; j <= BoardDef.HEIGHT; j++)
        {
            for (int i = 1; i <= BoardDef.WIDTH; i++)
            {
                CELL cell = board.GetCell(i, j);
                if (cell.player != PlayerDef.FIRST && cell.player != PlayerDef.SECOND)
                {
                    continue;
                }
                CreatePawn(cell.player, cell.pawn, i, j);
            }
        }

        Vector3 target;

        for (int i = 0; i < PawnDef.CAPTURE_MAX; i++)
        {
            float x = cellSize * (i + BoardDef.WIDTH - PawnDef.CAPTURE_MAX);
            float z = cellSize * -(BoardDef.HEIGHT + 1.5f - 1);
            x -= cellSize * BoardDef.WIDTH / 2.0f - cellSize / 2.0f;
            z += cellSize * BoardDef.HEIGHT / 2.0f - cellSize / 2.0f;
            GameObject cell = Instantiate(CellPrefab, new Vector3(x, 0.01f, z), Quaternion.identity) as GameObject;
            cell.name = "Reserve(" + PlayerDef.FIRST + "," + i + ")";

            cell.transform.parent = ReservesParent.transform;
            GameObject count = Instantiate(ReservesCountPrefab, new Vector3(x, 0.01f, z), Quaternion.identity) as GameObject;
            count.transform.parent = ReservesParent.transform;
            target   = Camera.main.transform.position;
            target.x = count.transform.position.x;
            count.transform.LookAt(target);
            count.name = "ReservesCount(0," + i + ")";
            count.SetActive(true);

            CreateReserve(PlayerDef.FIRST, (Pawn)i);
            SetReserveCount(PlayerDef.FIRST, (Pawn)i, board.GetReserve(PlayerDef.FIRST, (Pawn)i));
        }

        for (int i = 0; i < PawnDef.CAPTURE_MAX; i++)
        {
            float x = cellSize * i;
            float z = cellSize * -(-0.5f - 1);
            x -= cellSize * BoardDef.WIDTH / 2.0f - cellSize / 2.0f;
            z += cellSize * BoardDef.HEIGHT / 2.0f - cellSize / 2.0f;
            GameObject cell = Instantiate(CellPrefab, new Vector3(x, 0.01f, z), Quaternion.identity) as GameObject;
            cell.transform.parent = ReservesParent.transform;
            cell.name             = "Reserve(" + PlayerDef.SECOND + "," + i + ")";

            GameObject count = Instantiate(ReservesCountPrefab, new Vector3(x, 0.01f, z), Quaternion.identity) as GameObject;
            count.transform.parent = ReservesParent.transform;
            target   = Camera.main.transform.position;
            target.x = count.transform.position.x;
            count.transform.LookAt(target);
            count.name = "ReservesCount(1," + i + ")";
            count.SetActive(true);

            CreateReserve(PlayerDef.SECOND, (Pawn)i);
            SetReserveCount(PlayerDef.SECOND, (Pawn)i, board.GetReserve(PlayerDef.SECOND, (Pawn)i));
        }

        target   = Camera.main.transform.position;
        target.x = UpgradeObject.transform.position.x;
        UpgradeObject.transform.LookAt(target);

        ResetHighlight();

        //StartCoroutine("Search");
    }