static string SaveSettings() { Console.Clear(); var boardWidth = 0; var boardHeight = 0; var userCanceled = false; (boardWidth, userCanceled) = GetUserIntInput("Enter board width", 8, 30, 0); if (userCanceled) { return(""); } (boardHeight, userCanceled) = GetUserIntInput("Enter board height", 8, 30, 0); if (userCanceled) { return(""); } _settings.BoardHeight = boardHeight; _settings.BoardWidth = boardWidth; GameConfigHandler.SaveConfig(_settings); return(""); }
private static string SetDefaults() { GameSettings.Settings.BoardHeight = 6; GameSettings.Settings.BoardWidth = 7; GameConfigHandler.SaveConfig(GameSettings.Settings); return(""); }
static string NewGame(bool playerOneMoves, bool isHumanVsComputer) { _settings = GameConfigHandler.LoadConfig(); var game = new Game(new AppDbContext(_options)); string playerOneName; string playerTwoName; if (!isHumanVsComputer) { playerOneName = GetUserStrInput("Enter the name of player 1:"); playerTwoName = GetUserStrInput("Enter the name of player 2:"); } else { playerOneName = GetUserStrInput("Enter your player name:"); playerTwoName = "Computer"; } var gameName = GetUserStrInput("Enter the name of your game!"); _settings.IsHumanVsComputer = isHumanVsComputer; game.InitializeNewGame(_settings.BoardHeight, _settings.BoardWidth); game.GameName = gameName; game.PlayerOneMoves = playerOneMoves; game.PlayerOneName = playerOneName; game.PlayerTwoName = playerTwoName; return(Connect4Game(game)); }
public void OnGet(int?id, bool?restart) { if (restart != null) { RuntimeData.GameSettings.Board = new CellState[RuntimeData.GameSettings.BoardHeight, RuntimeData.GameSettings.BoardWidth]; RuntimeData.GameSettings.NumTurns = 0; RuntimeData.GameSettings.YCoordinate = new int [RuntimeData.GameSettings.BoardWidth]; if (RuntimeData.GameSettings.VersusBot) { RuntimeData.GameSettings.IsPlayerOne = RuntimeData.WasPlayerFirst; } Settings = RuntimeData.GameSettings; } else { Settings = id != null?GameConfigHandler.LoadConfig(id.Value) : GameConfigHandler.LoadConfig(); } if (id == null) { for (var i = 0; i < Settings.BoardWidth; i++) { Settings.YCoordinate[i] = Settings.BoardHeight - 1; } } if (!Settings.IsPlayerOne) { MakeATurn(Bot.MakeMove(Settings)); } RuntimeData.GameSettings = Settings; }
static void Main(string[] args) { _settings = GameConfigHandler.LoadConfig(); Console.WriteLine($"Hello to {_settings.GameName}!"); var gameMenu = new Menu(1) { Title = $"Start a new game of {_settings.GameName}", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "1", new MenuItem() { Title = "Computer starts", CommandToExecute = TestGame } }, { "2", new MenuItem() { Title = "Human starts", CommandToExecute = null } }, { "3", new MenuItem() { Title = "Human against Human", CommandToExecute = null } } } }; var Menu0 = new Menu() { Title = "Tic Tac Toe Main Menu", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "S", new MenuItem() { Title = "Start game", CommandToExecute = gameMenu.Run } }, { "J", new MenuItem() { Title = "Set defaults for game (save to JSON)", CommandToExecute = SaveSettings } } } }; Menu0.Run(); }
public static string StartFromSave(int slot) { if (AvailableSaves.Saves[slot] != EmptySaveName) { PlayGame.PlayTheGame(GameConfigHandler.LoadConfig(slot), true); } return(""); }
private static string ChangeHeight() { var(hMin, hMax) = (6, 12); GameSettings.Settings.BoardHeight = InputHandler.GetUserIntInput($"Current height is {GameSettings.Settings.BoardHeight}.\n" + "Enter board height (Type X to set default):", hMin, hMax, $"Height must be between {hMin} and {hMax}", true) ?? 6; GameConfigHandler.SaveConfig(GameSettings.Settings); return(""); }
private static string ChangeWidth() { var(wMin, wMax) = (7, 14); GameSettings.Settings.BoardWidth = InputHandler.GetUserIntInput($"Current width is {GameSettings.Settings.BoardWidth}.\n" + "Enter board width (Type X to set default):", wMin, wMax, $"Width must be between {wMin} and {wMax}", true) ?? 7; GameConfigHandler.SaveConfig(GameSettings.Settings); return(""); }
static string TestGame() { var game = new BoardDim(_settings); Console.WriteLine(); var done = false; do { Console.Clear(); GameUI.PrintBoard(game); BoardDim.Mines.MinesSetter(_settings.BoardHeight, _settings.BoardWidth); var userXint = 0; var userYint = 0; var userCanceled = false; (userYint, userCanceled) = GetUserIntInput("Enter Y coordinate", 1, 30, 0); if (!userCanceled) { (userXint, userCanceled) = GetUserIntInput("Enter X coordinate", 1, 30, 0); } if (userYint > _settings.BoardHeight || userXint > _settings.BoardWidth) { Console.WriteLine("Out of Range"); } if (userCanceled) { done = true; } else { game.Move(userYint - 1, userXint - 1); } var h = Engine.BoardDim.Board; _boardState = BoardDim.Board; GameConfigHandler.SaveCellState(_boardState); } while (!done); return("GAME OVER!!"); }
static string SaveSettings() { Console.Clear(); var boardWidth = 0; var boardHeight = 0; var winningCondition = 0; var userCanceled = false; (boardHeight, userCanceled) = GetUserIntInput("Enter number of rows (minimum is 4 and maximum is 30) :", 4, 30); if (userCanceled) { return(""); } (boardWidth, userCanceled) = GetUserIntInput("Enter number of columns (minimum is 5 and maximum is 30) :", 5, 30); if (userCanceled) { return(""); } var maxWinningCondition = 0; if (boardHeight > boardWidth || boardHeight == boardWidth) { maxWinningCondition = boardHeight; } else { maxWinningCondition = boardWidth; } (winningCondition, userCanceled) = GetUserIntInput("Enter how many chips in a row is needed to win :", 2, maxWinningCondition); if (userCanceled) { return(""); } _settings = new GameSettings() { BoardHeight = boardHeight, BoardWidth = boardWidth, WinningCondition = winningCondition }; GameConfigHandler.SaveConfig(_settings); return(""); }
static void Main(string[] args) { Clear(); WriteLine("Welcome to Minesweeper"); _settings = GameConfigHandler.LoadConfig(); var gameMenu = new Menu(1) { Title = "New Game", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "1", new MenuItem() { Title = "Play now", CommandToExecute = TestGame } }, { "2", new MenuItem() { Title = "Level 2", CommandToExecute = TestGame } }, { "3", new MenuItem() { Title = "Customize Your Board size", CommandToExecute = SaveSettings } }, } }; var menu0 = new Menu(0) //main menu { Title = "Main Menu", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "S", new MenuItem() { Title = "Start game", CommandToExecute = gameMenu.Run } }, { "J", new MenuItem() { Title = "Set default board size for game (save to JSON)", CommandToExecute = SaveSettings } }, { "D", new MenuItem() { Title = "Donate", CommandToExecute = null } } } }; menu0.Run(); }
private static void Main(string[] args) { _settings = GameConfigHandler.LoadConfig(); Console.WriteLine($"Hello {_settings.GameName}!"); var menuLevel2 = new Menu(2) { Title = "Level2 menu", MenuItemsDictionary = new Dictionary <string, MenuItem>() }; var gameMenu = new Menu(1) { Title = $"Start a new game of {_settings.GameName}", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "1", new MenuItem() { Title = "Beginner", CommandToExecute = RunGameEasy } }, { "2", new MenuItem() { Title = "Intermediate", CommandToExecute = RunGameMedium } }, { "3", new MenuItem() { Title = "Expert", CommandToExecute = RunGameHard } }, { "4", new MenuItem() { Title = "Custom", CommandToExecute = RunGameCustom } }, { "5", new MenuItem() { Title = "Custom Game from settings", CommandToExecute = RunGameCustomFromSettings } }, } }; var menu0 = new Menu() { Title = $"{_settings.GameName} Main Menu", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "S", new MenuItem() { Title = "Start game", CommandToExecute = gameMenu.Run } }, /*{ * "J", new MenuItem() * { * Title = "Set defaults for game (save to JSON)", * CommandToExecute = SaveSettings * } * }, * { * "L", new MenuItem() * { * Title = "Continue Game from saved file", * CommandToExecute = SavedGamesLoad * } * },*/ { "D", new MenuItem() { Title = "Continue Game from database save", CommandToExecute = SavedGamesLoadFromDb } } } }; menu0.Run(); }
static string StartGame(Game?game) { if (game == null) { game = new Game(_settings); } var done = false; do { Console.Clear(); GameUI.PrintBoard(game); var userXInt = -1; do { Console.WriteLine("Give me row number, or press \'s\' to save game, or press \'q\' to leave game."); Console.Write(">"); var userInput = Console.ReadLine(); if (userInput == null || userInput.Trim().Equals("")) { continue; } if (userInput.Trim().ToLower().Equals("q")) { userXInt = -1; break; } if (userInput.Trim().ToLower().Equals("s")) { var saved = false; do { Console.WriteLine("Enter save name or press\'c\' to cancel save"); Console.Write("> "); var input = Console.ReadLine()?.Trim(); if (input == null || input.Equals("")) { continue; } if (input.ToLower().Equals("c")) { saved = true; } else { bool gameExists = GameConfigHandler.SaveGame(game, input.Trim(), false); if (gameExists) { Console.WriteLine("File already exists. Overwrite it? y/n"); var overwriteHandled = false; do { var response = Console.ReadLine()?.Trim().ToLower(); if (response == null || response.Equals("")) { continue; } if (response.Equals("y") || response.Equals("yes")) { GameConfigHandler.SaveGame(game, input.Trim(), true); Console.WriteLine($"Saved game as \'{input}\'!"); saved = true; overwriteHandled = true; } if (response.Equals("n") || response.Equals("no")) { overwriteHandled = true; } } while (!overwriteHandled); } else { Console.WriteLine($"Saved game as \'{input}\'!"); saved = true; } } } while (!saved); userXInt = -1; continue; } if (!int.TryParse(userInput, out userXInt)) { Console.WriteLine($"{userInput} is not a number."); userXInt = -1; continue; } if (userXInt <= 0 || game.BoardWidth < userXInt) { Console.WriteLine($"Column {userXInt} does not exist."); userXInt = -1; continue; } if (game.IsColumnFull(userXInt)) { Console.WriteLine($"Column {userXInt} is full."); userXInt = -1; } } while (userXInt < 0); if (userXInt == -1) { break; } game.Move(userXInt); if (game.IsGameDone()) { Console.Clear(); GameUI.PrintBoard(game); Console.WriteLine("No one won!"); done = true; } } while (!done); return("X"); }
static string LoadGame() { Console.Clear(); var savedGamedDictionary = new Dictionary <int, string>(); using (ctx = new AppDbContext()) { var counter = 1; foreach (var saveGame in ctx.Games) { savedGamedDictionary.Add(counter, saveGame.SaveName); counter += 1; } } if (savedGamedDictionary.Count == 0) { Console.WriteLine("No save files found..."); Console.WriteLine("Returning to previous menu."); Thread.Sleep(3000); return(""); } Console.WriteLine("Select game by number or type \'c\' to cancel."); for (var i = 1; i <= savedGamedDictionary.Count; i++) { Console.WriteLine(i + ". " + savedGamedDictionary[i]); } var done = false; do { var userInput = Console.ReadLine(); if (userInput == null || userInput.Trim().Equals("") || userInput.ToLower().Equals("c")) { return(""); } if (!int.TryParse(userInput, out var selectedGameInt)) { Console.WriteLine($"{userInput} is not a number."); continue; } if (selectedGameInt <= 0 || savedGamedDictionary.Count < selectedGameInt) { Console.WriteLine($"Game {selectedGameInt} does not exist."); continue; } using (ctx = new AppDbContext()) { foreach (var saveGame in ctx.Games) { if (saveGame.SaveName.Equals(savedGamedDictionary[selectedGameInt])) { Game game = GameConfigHandler.GetGameFromDb(saveGame.GameId); StartGame(game); return(""); } } return(""); } } while (!done); return(""); }
static void Main(string[] args) { Console.Clear(); _settings = GameConfigHandler.LoadConfig(); Console.WriteLine($"Hello {_settings.GameName}!"); var menuLevel2 = new Menu(2) { Title = "Level2 menu", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "1", new MenuItem() { Title = "Nothing here", CommandToExecute = null } }, } }; var gameMenu = new Menu(1) { Title = $"Start a new game of {_settings.GameName}", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "1", new MenuItem() { Title = "Human against AI", CommandToExecute = RunGameAI } }, { "3", new MenuItem() { Title = "Human against Human", CommandToExecute = RunGamePvP } }, { "4", new MenuItem() { Title = "One more menu", CommandToExecute = menuLevel2.Run } }, } }; var menu0 = new Menu(0) { Title = $"{_settings.GameName} Main Menu", MenuItemsDictionary = new Dictionary <string, MenuItem>() { { "S", new MenuItem() { Title = "Start game", CommandToExecute = gameMenu.Run } }, { "J", new MenuItem() { Title = "Set defaults for game (save to JSON)", CommandToExecute = SaveSettings } } } }; menu0.Run(); }