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); }
/// <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); } }
// 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(); }