示例#1
0
        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;
                }
            }
        }