Ejemplo n.º 1
0
        private bool UpdateCheckStatus()
        {
            // TODO: verify for check;
            LastCheck.Clear();
            foreach (PieceColor color in Enum.GetValues(typeof(PieceColor)))
            {
                List <Piece> pieces = GetPieces(PieceType.King, color);

                foreach (Piece pcs in pieces)
                {
                    KingPiece kingPcs = pcs as KingPiece;

                    int[] checkmap = kingPcs.GetCheckMap();
                    for (int i = 0; i < TableStatus.Length; ++i)
                    {
                        if (IsSpecificFlagSet(checkmap[i], CellStatus.Checking))
                        {
                            LastCheck.Add(i);
                        }
                    }
                }
            }



            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Constructor with one param: side
        /// side = 0: BLACK
        /// side = 1: RED
        /// </summary>
        /// <param name="side"></param>
        public Player(int side)
        {
            AdvisorPieces[0]  = new Advisor();
            AdvisorPieces[1]  = new Advisor();
            ElephantPieces[0] = new Elephant();
            ElephantPieces[1] = new Elephant();
            ChariotPieces[0]  = new Chariot();
            ChariotPieces[1]  = new Chariot();
            CannonPieces[0]   = new Cannon();
            CannonPieces[1]   = new Cannon();
            HorsePieces[0]    = new Horse();
            HorsePieces[1]    = new Horse();
            SoldierPieces[0]  = new Soldier();
            SoldierPieces[1]  = new Soldier();
            SoldierPieces[2]  = new Soldier();
            SoldierPieces[3]  = new Soldier();
            SoldierPieces[4]  = new Soldier();

            if (side == 0) // BLACK
            {
                //Side = 0;
                KingPiece.Init(0, "KING", 0, 1, true, 0, 4);
                AdvisorPieces[0].Init(0, "ADVISOR", 0, 1, true, 0, 3);
                AdvisorPieces[1].Init(0, "ADVISOR", 1, 1, true, 0, 5);
                ElephantPieces[0].Init(0, "ELEPHANT", 0, 1, true, 0, 2);
                ElephantPieces[1].Init(0, "ELEPHANT", 1, 1, true, 0, 6);
                HorsePieces[0].Init(0, "HORSE", 0, 1, true, 0, 1);
                HorsePieces[1].Init(0, "HORSE", 1, 1, true, 0, 7);
                ChariotPieces[0].Init(0, "CHARIOT", 0, 1, true, 0, 0);
                ChariotPieces[1].Init(0, "CHARIOT", 1, 1, true, 0, 8);
                CannonPieces[0].Init(0, "CANNON", 0, 1, true, 2, 1);
                CannonPieces[1].Init(0, "CANNON", 1, 1, true, 2, 7);
                SoldierPieces[0].Init(0, "SOLDIER", 0, 1, true, 3, 0);
                SoldierPieces[1].Init(0, "SOLDIER", 1, 1, true, 3, 2);
                SoldierPieces[2].Init(0, "SOLDIER", 2, 1, true, 3, 4);
                SoldierPieces[3].Init(0, "SOLDIER", 3, 1, true, 3, 6);
                SoldierPieces[4].Init(0, "SOLDIER", 4, 1, true, 3, 8);
            }
            else    // RED
            {
                //Side = 1;
                KingPiece.Init(1, "KING", 0, 1, false, 9, 4);
                AdvisorPieces[0].Init(1, "ADVISOR", 0, 1, false, 9, 3);
                AdvisorPieces[1].Init(1, "ADVISOR", 1, 1, false, 9, 5);
                ElephantPieces[0].Init(1, "ELEPHANT", 0, 1, false, 9, 2);
                ElephantPieces[1].Init(1, "ELEPHANT", 1, 1, false, 9, 6);
                HorsePieces[0].Init(1, "HORSE", 0, 1, false, 9, 1);
                HorsePieces[1].Init(1, "HORSE", 1, 1, false, 9, 7);
                ChariotPieces[0].Init(1, "CHARIOT", 0, 1, false, 9, 0);
                ChariotPieces[1].Init(1, "CHARIOT", 1, 1, false, 9, 8);
                CannonPieces[0].Init(1, "CANNON", 0, 1, false, 7, 1);
                CannonPieces[1].Init(1, "CANNON", 1, 1, false, 7, 7);
                SoldierPieces[0].Init(1, "SOLDIER", 0, 1, false, 6, 0);
                SoldierPieces[1].Init(1, "SOLDIER", 1, 1, false, 6, 2);
                SoldierPieces[2].Init(1, "SOLDIER", 2, 1, false, 6, 4);
                SoldierPieces[3].Init(1, "SOLDIER", 3, 1, false, 6, 6);
                SoldierPieces[4].Init(1, "SOLDIER", 4, 1, false, 6, 8);
            }
        }
Ejemplo n.º 3
0
        // Use this for initialization
        void Start()
        {
            firstClickX = -1;
            firstClickZ = -1;
            playerTurn  = true;           //TODO for other person place switch; //TODO: also switch spaces of queens for other person

            gameSpaces = new GameObject[][] {
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE],
                new GameObject[GAMESIZE]
            };
            gamePieces = new Piece[][] {
                new Piece[GAMESIZE],
                new Piece[GAMESIZE],
                new Piece[GAMESIZE],
                new Piece[GAMESIZE],
                new Piece[GAMESIZE],
                new Piece[GAMESIZE],
                new Piece[GAMESIZE],
                new Piece[GAMESIZE]
            };

            bool odd = true;

            for (int z = 0; z < GAMESIZE; z++)
            {
                for (int x = 0; x < GAMESIZE; x++)
                {
                    if (z < 2)
                    {
                        //TODO: Change color depending on team.
                        GameObject tempObject;
                        string     tempString = "Piece" + x + "," + z;
                        Piece      tempPiece;
                        if (z == 1)
                        {
                            tempObject = Instantiate(pawn, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new PawnPiece(tempString, tempObject, true);
                        }
                        else if (x == 0 || x == GAMESIZE - 1)
                        {
                            tempObject = Instantiate(rook, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new RookPiece(tempString, tempObject, true);
                        }
                        else if (x == 1 || x == GAMESIZE - 2)
                        {
                            tempObject = Instantiate(knight, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new KnightPiece(tempString, tempObject, true);
                        }
                        else if (x == 2 || x == GAMESIZE - 3)
                        {
                            tempObject = Instantiate(bishop, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new BishopPiece(tempString, tempObject, true);
                        }
                        else if (x == 3)
                        {
                            tempObject = Instantiate(queen, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new QueenPiece(tempString, tempObject, true);
                        }
                        else if (x == 4)
                        {
                            tempObject = Instantiate(king, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new KingPiece(tempString, tempObject, true);
                        }
                        else
                        {
                            tempObject = Instantiate(pawn, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new PawnPiece(tempString, tempObject, true);
                        }
                        Renderer rend = tempPiece.getGameObject().GetComponent <Renderer>();
                        rend.material.color = teamColor;
                        gamePieces[x][z]    = tempPiece;
                    }
                    else if (z >= GAMESIZE - 2)
                    {
                        GameObject tempObject;
                        string     tempString = "Piece" + x + "," + z;
                        Piece      tempPiece;
                        if (z == GAMESIZE - 2)
                        {
                            tempObject = Instantiate(pawn, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new PawnPiece(tempString, tempObject, false);
                        }
                        else if (x == 0 || x == GAMESIZE - 1)
                        {
                            tempObject = Instantiate(rook, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new RookPiece(tempString, tempObject, false);
                        }
                        else if (x == 1 || x == GAMESIZE - 2)
                        {
                            tempObject = Instantiate(knight, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new KnightPiece(tempString, tempObject, false);
                        }
                        else if (x == 2 || x == GAMESIZE - 3)
                        {
                            tempObject = Instantiate(bishop, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new BishopPiece(tempString, tempObject, false);
                        }
                        else if (x == 3)
                        {
                            tempObject = Instantiate(queen, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new QueenPiece(tempString, tempObject, false);
                        }
                        else if (x == 4)
                        {
                            tempObject = Instantiate(king, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new KingPiece(tempString, tempObject, false);
                        }
                        else
                        {
                            tempObject = Instantiate(pawn, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                            tempPiece  = new PawnPiece(tempString, tempObject, false);
                        }
                        gamePieces[x][z] = tempPiece;
                    }
                    if (odd)
                    {
                        gameSpaces[x][z] = Instantiate(spaces, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                        gameSpaces[x][z].GetComponent <Renderer>().material.color = teamColor;
                    }
                    else
                    {
                        gameSpaces[x][z] = Instantiate(spaces, new Vector3(x, 0, z), Quaternion.identity) as GameObject;
                        gameSpaces[x][z].GetComponent <Renderer>().material.color = Color.white;
                    }
                    gameSpaces[x][z].transform.name = "Space" + x + "," + z;
                    odd = !odd;
                }
                odd = !odd;
            }
            updateFogOfWarBoard();
        }