private static bool checkerBelongsToTheRightTeam(eUserTurn i_CurrentTurn, eCheckerType?sourceChecker) { bool answer = true; if (sourceChecker == null) { answer = false; } if (i_CurrentTurn == eUserTurn.User1) { if (sourceChecker == eCheckerType.Team2_King || sourceChecker == eCheckerType.Team2_Man) { answer = false; } } else if (i_CurrentTurn == eUserTurn.User2) { if (sourceChecker == eCheckerType.Team1_King || sourceChecker == eCheckerType.Team1_Man) { answer = false; } } return(answer); }
private void storePrevTurn(Position i_SourcePosition, Position i_TargetPosition, eUserTurn userTurn, char UserSign) { m_PrevUser = userTurn; m_PrevSourcePosition.m_Col = (int)i_SourcePosition.m_Col; m_PrevSourcePosition.m_Row = (int)i_SourcePosition.m_Row; m_PrevTargetPosition.m_Col = (int)i_TargetPosition.m_Col; m_PrevTargetPosition.m_Row = (int)i_TargetPosition.m_Row; }
public char GetSignOfUser(eUserTurn i_User) { char answer; if (i_User == eUserTurn.User1) { answer = (char)eCheckerType.Team1_Man; } else { answer = (char)eCheckerType.Team2_Man; } return(answer); }
public string GetNameOfPlayer(eUserTurn i_Player) { string nameOfPlayer; if (i_Player == eUserTurn.User1) { nameOfPlayer = m_PlayerOne.m_Name; } else { nameOfPlayer = m_PlayerTwo.m_Name; } return(nameOfPlayer); }
public static Dictionary <Position, List <Position> > CalculatePosibleMoves(eUserTurn i_CurrentTurn, Board i_Board, out bool i_IsPossibleEat) { i_IsPossibleEat = false; Dictionary <Position, List <Position> > posibleMovesPerPosition = calculatePosibleEats(i_CurrentTurn, i_Board); foreach (Position key in posibleMovesPerPosition.Keys) { if (posibleMovesPerPosition[key].Count != 0) { i_IsPossibleEat = true; break; } } if (!i_IsPossibleEat) { posibleMovesPerPosition = new Dictionary <Position, List <Position> >(); eCheckerType?[,] currentBoard = i_Board.GetBoard(); eCheckerType?currentChecker; for (int row = 0; row < currentBoard.GetLength(0); row++) { for (int col = 0; col < currentBoard.GetLength(1); col++) { currentChecker = currentBoard[row, col]; if (checkerBelongsToTheRightTeam(i_CurrentTurn, currentChecker)) { List <Position> ListOfPosibleMoves = getPosibleMoves(row, col, i_CurrentTurn, currentBoard); Position currentPosition = new Position(row, col); if (ListOfPosibleMoves.Count > 0) { posibleMovesPerPosition.Add(currentPosition, ListOfPosibleMoves); } } } } } return(posibleMovesPerPosition); }
private static List <Position> getPosibleMoves(int row, int col, eUserTurn i_CurrentTurn, eCheckerType?[,] i_Board) { List <Position> posibleMoves = new List <Position>(); eCheckerType currentChecker = (eCheckerType)i_Board[row, col]; if (currentChecker == eCheckerType.Team1_Man || currentChecker == eCheckerType.Team1_King || currentChecker == eCheckerType.Team2_King) { diagonallyUpLeft(row, col, i_Board, ref posibleMoves); diagonallyUpRight(row, col, i_Board, ref posibleMoves); } if (currentChecker == eCheckerType.Team2_Man || currentChecker == eCheckerType.Team2_King || currentChecker == eCheckerType.Team1_King) { diagonallyDownLeft(row, col, i_Board, ref posibleMoves); diagonallyDownRight(row, col, i_Board, ref posibleMoves); } return(posibleMoves); }
private static Dictionary <Position, List <Position> > calculatePosibleEats(eUserTurn i_CurrentTurn, Board i_Board) { Dictionary <Position, List <Position> > posibleMovesPerPosition = new Dictionary <Position, List <Position> >(); eCheckerType?[,] currentBoard = i_Board.GetBoard(); eCheckerType?currentChecker; for (int row = 0; row < currentBoard.GetLength(0); row++) { for (int col = 0; col < currentBoard.GetLength(1); col++) { currentChecker = currentBoard[row, col]; if (checkerBelongsToTheRightTeam(i_CurrentTurn, currentChecker)) { Position currentPosition = new Position(row, col); List <Position> posibleMovesToEat = new List <Position>(); if (currentChecker == eCheckerType.Team1_Man || currentChecker == eCheckerType.Team1_King || currentChecker == eCheckerType.Team2_King) { upLeftEat(row, col, currentBoard, ref posibleMovesToEat); upRightEat(row, col, currentBoard, ref posibleMovesToEat); } if (currentChecker == eCheckerType.Team2_Man || currentChecker == eCheckerType.Team2_King || currentChecker == eCheckerType.Team1_King) { downLeftEat(row, col, currentBoard, ref posibleMovesToEat); downRightEat(row, col, currentBoard, ref posibleMovesToEat); } if (posibleMovesToEat.Count > 0) { posibleMovesPerPosition.Add(currentPosition, posibleMovesToEat); } } } } return(posibleMovesPerPosition); }