internal int GetPlayerPoints(eShapeType i_Piece) { int PlayerPoints = 0; Piece.eSoliderType soliderType = Piece.eSoliderType.X; Piece.eSoliderType kingType = Piece.eSoliderType.K; if (i_Piece.Equals(eShapeType.O)) { soliderType = Piece.eSoliderType.O; kingType = Piece.eSoliderType.U; } for (int i = 0; i < this.r_TableSize; i++) { for (int j = 0; j < this.r_TableSize; j++) { Piece currentPiece = this.r_Table[i, j]; if (currentPiece.Type == soliderType) { PlayerPoints += 1; } if (currentPiece.Type == kingType) { PlayerPoints += 4; } } } return(PlayerPoints); }
public PieceButton(Piece.eSoliderType i_PieceType, int i_Row, int i_Column) { this.ClientSize = new Size(k_PieceSize, k_PieceSize); m_Type = i_PieceType; m_Row = i_Row; m_Column = i_Column; switch (i_PieceType) { case Piece.eSoliderType.K: this.BackgroundImage = Image.FromFile("..\\..\\Resources\\blacking.png"); break; case Piece.eSoliderType.U: this.BackgroundImage = Image.FromFile("..\\..\\Resources\\greyking.png"); break; case Piece.eSoliderType.O: this.BackgroundImage = Image.FromFile("..\\..\\Resources\\greynormal.png"); break; case Piece.eSoliderType.X: this.BackgroundImage = Image.FromFile("..\\..\\Resources\\blacknormal.png"); break; case Piece.eSoliderType.Empty: this.BackgroundImage = null; break; } this.BackgroundImageLayout = ImageLayout.Stretch; }
internal void JumpMove(int i_R, int i_C, ref List <Move> i_LegalJumps, Piece.eSoliderType i_SoliderType, Piece.eSoliderType i_KingType, int i_JumpMove) { if ((getSoliderTypeInTable(i_R + (2 * i_JumpMove), i_C - 2) == Piece.eSoliderType.Empty) && (getSoliderTypeInTable(i_R + i_JumpMove, i_C - 1) == i_SoliderType || getSoliderTypeInTable(i_R + i_JumpMove, i_C - 1) == i_KingType)) { i_LegalJumps.Add(new Move(GetSolider(i_R, i_C), GetSolider(i_R + (2 * i_JumpMove), i_C - 2))); } if ((getSoliderTypeInTable(i_R + (2 * i_JumpMove), i_C + 2) == Piece.eSoliderType.Empty) && (getSoliderTypeInTable(i_R + i_JumpMove, i_C + 1) == i_SoliderType || getSoliderTypeInTable(i_R + i_JumpMove, i_C + 1) == i_KingType)) { i_LegalJumps.Add(new Move(GetSolider(i_R, i_C), GetSolider(i_R + (2 * i_JumpMove), i_C + 2))); } }
internal List <Move> GetPlayerJumpsList(eShapeType i_Shape) { List <Move> legalJumps = new List <Move>(); short TableSize = this.TableSize; int jumpMove = 1; Piece.eSoliderType soliderType = Piece.eSoliderType.X; Piece.eSoliderType kingType = Piece.eSoliderType.K; for (int r = 0; r < TableSize; r++) { for (int c = 0; c < TableSize; c++) { switch (i_Shape) { case eShapeType.O: if ((getSoliderTypeInTable(r, c) == Piece.eSoliderType.O) || (getSoliderTypeInTable(r, c) == Piece.eSoliderType.U)) //regular piece of O { JumpMove(r, c, ref legalJumps, soliderType, kingType, jumpMove); } if (getSoliderTypeInTable(r, c) == Piece.eSoliderType.U) //King of O { JumpMove(r, c, ref legalJumps, soliderType, kingType, (jumpMove * -1)); } break; case eShapeType.X: soliderType = Piece.eSoliderType.O; kingType = Piece.eSoliderType.U; if ((getSoliderTypeInTable(r, c) == Piece.eSoliderType.X) || (getSoliderTypeInTable(r, c) == Piece.eSoliderType.K)) //regular piece of X { JumpMove(r, c, ref legalJumps, soliderType, kingType, (jumpMove * -1)); } if (getSoliderTypeInTable(r, c) == Piece.eSoliderType.K) //king of X { JumpMove(r, c, ref legalJumps, soliderType, kingType, jumpMove); } break; } } } return(legalJumps); }