internal void ChooseRandomMove(int i_originRow, int i_originCol, bool i_isSeconedEat, ref bool i_thereIsAnotherEat, ref bool i_iAte) { List <PossibleMove> possibleMovesForComputer = SetListOfPossibleMoves(i_originRow, i_originCol, 1, i_isSeconedEat); PossibleMove randMove = possibleMovesForComputer[RandNum.Next(possibleMovesForComputer.Count)]; i_iAte = randMove.EatMove; MakeAStep(randMove.OriginCol, randMove.OriginRow, randMove); i_thereIsAnotherEat = isAnotherEat(randMove.DestRow, randMove.DestCol, 1); }
private void ClickField(Field field) { foreach (ICheckerMove PossibleMove in CheckerMoves) { if (!PossibleMove.Perform(field)) { return; } } }
private void MakeAStep(int i_originCol, int i_originRow, PossibleMove item) { m_BoardMatrix[item.DestRow, item.DestCol] = m_BoardMatrix[i_originRow, i_originCol]; m_BoardMatrix[i_originRow, i_originCol] = null; if (item.EatMove) { int eated_i = (i_originRow < item.DestRow) ? item.DestRow - 1 : i_originRow - 1; int eated_j = (i_originCol < item.DestCol) ? item.DestCol - 1 : i_originCol - 1; m_BoardMatrix[eated_i, eated_j] = null; } if (item.DestRow == 0 || item.DestRow == BoardSize - 1) { m_BoardMatrix[item.DestRow, item.DestCol].Coronation(); // set as king } }