static void Main(string[] args) { #region Initilize Classes using var context = new LudoGameContext(); var loadSavedGame = false; var gUI = new RunGUI(); var game = new GameInitializer(); var gameMotor = new GameMotor(); game.GameBoard.PopulateBoard(); #endregion var loadGameAnswer = ""; bool validChoice = false; LoadSavedGameOrCreateNewGame(context, ref loadSavedGame, gUI, game, ref loadGameAnswer, ref validChoice); Console.Clear(); bool gameHasEnd = false; while (gameHasEnd == false) { gameHasEnd = PlayerTurn(gUI, game, gameMotor, gameHasEnd); Console.Clear(); var exitGameAnswer = ""; bool validChoiceInGame = false; ContinueOrExit(context, loadSavedGame, game, ref exitGameAnswer, ref validChoiceInGame); Console.Clear(); } }
private static bool PlayerTurn(RunGUI gUI, GameInitializer game, GameMotor gameMotor, bool gameHasEnd) { for (int i = 0; i < game.Users.Count; i++) { var player = game.PlayerByID(i + 1); gUI.ShowWhichPlayer(player); gameMotor.RollDie(game.Die); gUI.ShowDie(game.Die.Roll); var IDOnPawn = gUI.TimeToChoosePawn(player); var pawn = player.PawnByID(IDOnPawn); game.IfNotStartedSetStartPosition(pawn); var landingSquare = gameMotor.Move(pawn, game.Die.Roll); gUI.WalkWithPawn(pawn, game.Die.Roll); gameHasEnd = gameMotor.CheckIfReachedGoal(player, pawn, gameHasEnd); gameMotor.OccupySquare(game.GameBoard, landingSquare); } return(gameHasEnd); }
private static void LoadSavedGameOrCreateNewGame(LudoGameContext context, ref bool loadSavedGame, RunGUI gUI, GameInitializer game, ref string loadGameAnswer, ref bool validChoice) { while (validChoice == false) { loadGameAnswer = Menu.DisplayMessageReturnUserInput("y. = Load saved game\n" + "n. = Create new game"); switch (loadGameAnswer) { case "y": var gameNames = context.Users .Select(x => x.GameName) .Distinct().ToList(); foreach (var gameName in gameNames) { Console.WriteLine($"Saved Game: { gameName }"); } var userGameToLoad = Console.ReadLine(); game.Users = context.Users.Where(u => u.GameName == userGameToLoad).ToList(); foreach (var user in game.Users) { user.Pawns = context.Pawns.Where(p => p.UserID == user.UserID).ToList(); } loadSavedGame = true; validChoice = true; break; case "n": var numberOfPlayers = gUI.NumberOfPlayers(); var nameOfGame = Menu.DisplayMessageReturnUserInput("Name your game: "); for (int i = 1; i <= numberOfPlayers; i++) { string name = gUI.GetAndReturnName(); gUI.ShowPawnColorMenu(); var colorOnPawn = game.TranslateChoiceToColor(Console.ReadLine()); var pawns = game.CreateListOfPawns(colorOnPawn); game.AddUserToPlayerList(new User(name, i, pawns, nameOfGame)); } validChoice = true; break; default: Console.WriteLine("No valid input"); Console.ReadKey(); Console.Clear(); break; } } }