private int[,] generateArray(eSizeBoard i_SizeOfBoard) { int sizeOfBoardInteger = (int)i_SizeOfBoard; int[,] returnedArr = new int[sizeOfBoardInteger, sizeOfBoardInteger]; int maxScore = sizeOfBoardInteger / 2; for (int i = 0; i < sizeOfBoardInteger / 2; i++) { for (int j = i; j < sizeOfBoardInteger; j += 2) { returnedArr[i, j] = 0; returnedArr[i, j + 1] = maxScore; returnedArr[j, i] = 0; returnedArr[j + 1, i] = maxScore; returnedArr[sizeOfBoardInteger - 1, j] = maxScore; returnedArr[sizeOfBoardInteger - 1, j + 1] = 0; returnedArr[j, sizeOfBoardInteger - 1] = maxScore; returnedArr[j + 1, sizeOfBoardInteger - 1] = 0; } maxScore--; sizeOfBoardInteger--; } return(returnedArr); }
public void generateSoliders(eNumberOfPlayer i_NumberOfPlayer, eSizeBoard i_BoardSize) { Soldiers.Clear(); int numberOfRows = ((int)i_BoardSize / 2) - 1; int numberOfPlayersInRow = (int)i_BoardSize / 2; char startRowForNumberOfPlayer; char representSoldier; switch (i_NumberOfPlayer) { case eNumberOfPlayer.First: { startRowForNumberOfPlayer = MovementOptions.k_StartRow; representSoldier = Soldier.k_FirstPlayerRegular; generateSolidersForPlayer(numberOfRows, numberOfPlayersInRow, startRowForNumberOfPlayer, representSoldier); break; } case eNumberOfPlayer.Second: { representSoldier = Soldier.k_SecondPlayerRegular; startRowForNumberOfPlayer = (char)(MovementOptions.k_StartRow + ((int)i_BoardSize / 2) + 1); generateSolidersForPlayer(numberOfRows, numberOfPlayersInRow, startRowForNumberOfPlayer, representSoldier); break; } } }
private SquareMove generateSquareToMoveHuman(Player i_CurrentPlayer, eSizeBoard i_SizeOfBoard, List <SquareMove> i_AvaiableVaildMoves, List <SquareMove> i_MustToDoMoves) { SquareMove moveFromClient = null; bool isValidMove = false; while (!isValidMove) { moveFromClient = UIUtilities.getValidSquareToMoveFromClient(i_CurrentPlayer, i_SizeOfBoard); if (moveFromClient == null) { break; } if (i_MustToDoMoves.Count > 0) { isValidMove = i_MustToDoMoves.Contains(moveFromClient); } else { isValidMove = i_AvaiableVaildMoves.Contains(moveFromClient); } } return(moveFromClient); }
public void initializeCheckerBoard(string i_FirstPlayerName, string i_SecondPlayerName, eSizeBoard i_SizeOfBoard) { m_CurrentPlayer = new Player(i_FirstPlayerName, eTypeOfPlayer.Human, eNumberOfPlayer.First, i_SizeOfBoard); m_SizeOfBoard = i_SizeOfBoard; if (i_SecondPlayerName == null) { m_OtherPlayer = new Player(Player.k_computerName, eTypeOfPlayer.Computer, eNumberOfPlayer.Second, i_SizeOfBoard); } else { m_OtherPlayer = new Player(i_SecondPlayerName, eTypeOfPlayer.Human, eNumberOfPlayer.Second, i_SizeOfBoard); } m_MovmentOption = new MovementOptions(m_SizeOfBoard); }
private static bool validRange(eSizeBoard i_SizeOfBoard, char startRange, params char[] arrayToCheck) { bool validRows = true; foreach (char currentChar in arrayToCheck) { if (currentChar < startRange || currentChar > (char)(startRange + i_SizeOfBoard - 1)) { validRows = false; } } return(validRows); }
public CheckerBoard(CheckerBoard i_CloneToThisBoard) { Player otherFirstPlayer = i_CloneToThisBoard.m_CurrentPlayer; Player otherSecondPlayer = i_CloneToThisBoard.m_OtherPlayer; m_CurrentPlayer = new Player(i_CloneToThisBoard.CurrentPlayer.PlayerName, otherFirstPlayer.TypeOfPlayer, otherFirstPlayer.NumberOfPlayer, i_CloneToThisBoard.m_SizeOfBoard); m_OtherPlayer = new Player(otherSecondPlayer.PlayerName, otherSecondPlayer.TypeOfPlayer, otherSecondPlayer.NumberOfPlayer, i_CloneToThisBoard.m_SizeOfBoard); m_SizeOfBoard = i_CloneToThisBoard.m_SizeOfBoard; m_GameStatus = i_CloneToThisBoard.m_GameStatus; m_MovmentOption = i_CloneToThisBoard.m_MovmentOption; if (i_CloneToThisBoard.m_SoliderThatNeedToEatNextTurn != null) { m_SoliderThatNeedToEatNextTurn = new Soldier(i_CloneToThisBoard.m_SoliderThatNeedToEatNextTurn.CharRepresent, i_CloneToThisBoard.m_SoliderThatNeedToEatNextTurn.PlaceOnBoard, i_CloneToThisBoard.m_SoliderThatNeedToEatNextTurn.TypeOfSoldier); } m_CurrentPlayer.Soldiers = addSoldiers(m_CurrentPlayer.Soldiers); m_OtherPlayer.Soldiers = addSoldiers(m_OtherPlayer.Soldiers); }
public static SquareMove getValidSquareToMoveFromClient(Player i_Player, eSizeBoard i_SizeOfBoard) { String moveFromClientS; SquareMove moveFromClient = null; Console.WriteLine(i_Player.PlayerName + "'s turn:"); do { moveFromClientS = Console.ReadLine(); if (moveFromClientS.Equals("Q")) { moveFromClient = null; break; } }while (!SquareMove.Parse(moveFromClientS, out moveFromClient, i_SizeOfBoard)); return(moveFromClient); }
private SquareMove generateSquareToMoveHuman(Player i_CurrentPlayer, eSizeBoard i_SizeOfBoard, List <SquareMove> i_AvaiableVaildMoves, List <SquareMove> i_MustToDoMoves, SquareMove i_SquareToMove) { SquareMove moveFromClient = null; bool isValidMove = false; if (i_MustToDoMoves.Count > 0) { isValidMove = i_MustToDoMoves.Contains(i_SquareToMove); } else { isValidMove = i_AvaiableVaildMoves.Contains(i_SquareToMove); } if (isValidMove) { moveFromClient = i_SquareToMove; } return(moveFromClient); }
private void initializeStartCheckerBoard() { String firstPlayerName, secondPlayerName; eSizeBoard sizeOfBoard; UIUtilities.getClientNamesAndTypeOfSecondPlayer(out firstPlayerName, out secondPlayerName, out sizeOfBoard); m_CurrentPlayer = new Player(firstPlayerName, eTypeOfPlayer.Human, eNumberOfPlayer.First, sizeOfBoard); m_SizeOfBoard = sizeOfBoard; if (secondPlayerName == null) { m_OtherPlayer = new Player(Player.k_computerName, eTypeOfPlayer.Computer, eNumberOfPlayer.Second, sizeOfBoard); } else { m_OtherPlayer = new Player(secondPlayerName, eTypeOfPlayer.Human, eNumberOfPlayer.Second, sizeOfBoard); } m_MovmentOption = new MovementOptions(m_SizeOfBoard); }
public BoardSquareScore(eSizeBoard i_SizeOfBoard) { m_ArrayOfScore = generateArray(i_SizeOfBoard); }
public static void getClientNamesAndTypeOfSecondPlayer(out String o_FirstPlayerName, out String o_SecondPlayerName, out eSizeBoard o_SizeOfBoard) { Console.WriteLine("Wellcome to the checker game\nDesigned and developed by Nadav Shalev & Ben Magriso\n"); Console.WriteLine("Enter Your name and press enter"); o_FirstPlayerName = getValidName(); o_SizeOfBoard = getSizeBoardFromClient(); o_SecondPlayerName = null; eTypeOfPlayer choiseTypeOfPlayer = getTypeOfPlayerFromClient(); if (choiseTypeOfPlayer == eTypeOfPlayer.Human) { Console.WriteLine("Enter the second name player and press enter"); o_SecondPlayerName = getValidName(); } }
public Player(String i_PlayerName, eTypeOfPlayer i_TypeOfPlayer, eNumberOfPlayer i_NumberOfPlayer, eSizeBoard i_BoardSize) { m_Score = 0; PlayerName = i_PlayerName; TypeOfPlayer = i_TypeOfPlayer; NumberOfPlayer = i_NumberOfPlayer; Soldiers = new List <Soldier>(); generateSoliders(i_NumberOfPlayer, i_BoardSize); }
public MovementOptions(eSizeBoard i_SizeOfBoard) { r_EndCol = (char)(k_StartCol + i_SizeOfBoard - 1); r_EndRow = (char)(k_StartRow + i_SizeOfBoard - 1); }
public IAChecker(eSizeBoard i_SizeOfBoard) { m_ScoresOfBoard = new BoardSquareScore(i_SizeOfBoard); }
public static bool Parse(string i_MoveFromClientS, out SquareMove o_SquareMove, eSizeBoard i_SizeOfBoard) { o_SquareMove = new SquareMove(); bool isValidInput = true; char[] arrayofChars = i_MoveFromClientS.ToCharArray(); if (i_MoveFromClientS.Length != 5 || arrayofChars[2] != '>') { isValidInput = false; } else if (!validRange(i_SizeOfBoard, MovementOptions.k_StartCol, arrayofChars[0], arrayofChars[3])) { isValidInput = false; } else if (!validRange(i_SizeOfBoard, MovementOptions.k_StartRow, arrayofChars[1], arrayofChars[4])) { isValidInput = false; } if (isValidInput) { o_SquareMove.FromSquare = new Square(arrayofChars[1], arrayofChars[0]); o_SquareMove.ToSquare = new Square(arrayofChars[4], arrayofChars[3]); } return(isValidInput); }