private void initBoard(int i_BoardSize) { bool setMen = false; CheckersMen.eSign menSign = CheckersMen.eSign.O; int numOfRowsForEachPlayer = (i_BoardSize / 2); for (int i = 0; i < i_BoardSize; i++) { char rowKey = GetCharByDistance(r_MinRowKey, i); if (i == numOfRowsForEachPlayer + 1) { menSign = CheckersMen.eSign.X; } for (int j = 0; j < i_BoardSize; j++) { char columnKey = GetCharByDistance(r_MinColumnKey, j); string key = CreateKey(columnKey, rowKey); CheckersMen.eSign?slotContent = null; if (setMen && (i > (numOfRowsForEachPlayer) || i < (numOfRowsForEachPlayer - 1))) { slotContent = menSign; } addBoardSlot(slotContent, key); setMen = !setMen; } setMen = !setMen; } }
public Player( string i_Name, int i_PlayerNumber, eType i_Type, CheckersMen.eSign i_RegularSign, CheckersMen.eSign i_KingSign, char i_BaseLineRowKey, int i_m_AmountOfMenOnBoard) { r_Name = i_Name; r_Type = i_Type; r_PlayerNumber = i_PlayerNumber; r_RegularCheckersMen = new CheckersMen(i_RegularSign); r_KingCheckersMen = new CheckersMen(i_KingSign); r_PossibleMoves = new List <PlayerMove>(0); r_LastMovesPlayed = new List <PlayerMove>(0); r_RandomNumberGenerator = new Random(); m_CanEatAgain = false; r_BaseLineRowKey = i_BaseLineRowKey; m_AmountOfMenOnBoard = i_m_AmountOfMenOnBoard; m_Score = 0; if (i_RegularSign == CheckersMen.eSign.O) { r_Direction = new Direction(1, -1, 1, -1); } else { r_Direction = new Direction(-1, 1, -1, 1); } }
private void enableSlotButtonsByCheckersMen(CheckersMen?i_RegularCheckersMen, CheckersMen?i_KingCheckersMen) { CheckersMen regularCheckersMen; CheckersMen kingCheckerMen; if (i_RegularCheckersMen == null || i_KingCheckersMen == null) { getFromSlotButtonCheckersMen(out regularCheckersMen, out kingCheckerMen); } else { regularCheckersMen = i_RegularCheckersMen.Value; kingCheckerMen = i_KingCheckersMen.Value; } foreach (KeyValuePair <string, SlotButton> keyValuePair in m_Board) { SlotButton slotButton = keyValuePair.Value; if (slotButton.Content != null) { CheckersMen.eSign slotButtonContent = slotButton.Content.Value.Sign; bool enableButton = slotButtonContent == regularCheckersMen.Sign || slotButtonContent == kingCheckerMen.Sign; slotButton.Enabled = enableButton; } else if (!slotButton.Name.Equals("null")) { slotButton.Enabled = true; } } }
public int GetAmountOfCheckersMen(CheckersMen.eSign i_CheckerMenSign) { int amountOfCheckersMen = 0; foreach (KeyValuePair <string, BoardSlot> slot in r_Board) { if (!slot.Value.isEmpty()) { CheckersMen.eSign slotContent = slot.Value.Content.Value.Sign; if (slotContent == i_CheckerMenSign) { amountOfCheckersMen++; } } } return(amountOfCheckersMen); }
public void GetUserMove( string i_TurnPlayerName, CheckersMen.eSign i_TurnPlayerMenSign, out string o_FromSlotKey, out string o_ToSlotKey, out bool o_Quit) { o_Quit = false; o_FromSlotKey = ""; o_ToSlotKey = ""; string inputLable = string.Format("{0}'s Turn ({1}):", i_TurnPlayerName, i_TurnPlayerMenSign.ToString()); bool legalInput = false; while (!legalInput) { string inputUserMove = getUserInput(inputLable); legalInput = isInputUserMoveLegal(inputUserMove); if (legalInput) { if (isQuitCode(inputUserMove)) { o_Quit = true; } else { string[] slotKeys = inputUserMove.Split('>'); o_FromSlotKey = slotKeys[0]; o_ToSlotKey = slotKeys[1]; } } else { Console.WriteLine( @"Illegal Input, Legal Input Pattern: fromIndex>toIndex Or 'Q' to quit"); } } }