Exemplo n.º 1
0
        private static void CreateGame()
        {
            int      typeSelection = MultipleChoice.Show("Select game", GameTypeMethods.GetAllFullNames()) + 1;
            GameType gameType      = (GameType)Enum.GetValues(typeof(GameType)).GetValue(typeSelection);

            Console.WriteLine();

            int players =
                NumberInput.Show("How many players", gameType.Minimum(), gameType.Maximum());

            Console.Clear();

            string[] names = LineEditor.RequestStringBatch("Enter player names", players);
            Console.Clear();

            if (names != null)
            {
                dynamic game = gameType.CreateGame(names);
                MainMenu(game);
            }
        }
Exemplo n.º 2
0
        private static void LoadGame()
        {
            string file = LineEditor.RequestPath(GameType.NON);

            if (File.Exists(file))
            {
                using (FileStream stream = new FileStream(file, FileMode.Open))
                {
                    try {
                        byte[] typeBytes = new byte[3];
                        stream.Read(typeBytes, 0, 3);

                        byte[] gameData = new byte[(int)stream.Length - 3];
                        stream.Read(gameData, 0, gameData.Length);

                        if (GameTypeMethods.TryParse(typeBytes, out GameType gameType))
                        {
                            dynamic game = gameType.CreateGame(gameData, file);
                            MainMenu(game);
                        }
                    }
                    catch (OverflowException)
                    {
                        Console.WriteLine("Invalid save file.");
                        Console.ReadLine();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"An unknown error occurred. {e.Message}");
                        Console.ReadLine();
                    }
                }
            }
            else
            {
                Console.WriteLine($"File '{file}' does not exist.");
                Console.ReadLine();
            }
        }