private static string NewGame() { var dbOption = new DbContextOptionsBuilder <AppDbContext>() .UseSqlite("Data Source=/Users/maria/csharp2019fall/Proge/minesweeper/WebApp/app.db").Options; var ctx = new AppDbContext(dbOption); var gameEngine = new GameBoardEngine(ctx); var userHeight = 0; var userWidth = 0; var userCanceledGame = false; (userHeight, userCanceledGame, _, _) = GetUserIntInput("Enter board height", 8, 64, 0); ClearConsoleIfUserCanceled(userCanceledGame); (userWidth, userCanceledGame, _, _) = GetUserIntInput("Enter board width", 8, 64, 0); ClearConsoleIfUserCanceled(userCanceledGame); var game = new GameBoard { Height = userHeight, MineCount = 10, Width = userWidth }; gameEngine.CreateNewGameBoard(userHeight, userWidth, 10); ConsoleUI.PrintBoard(gameEngine, game); var userXint = 0; var userYint = 0; var userCanceled = false; var plantFlag = false; var saveGame = false; (userYint, userCanceled, _, _) = GetUserIntInput("Enter Y coordinate", 1, game.Height, 0); ClearConsoleIfUserCanceled(userCanceled); (userXint, userCanceled, _, _) = GetUserIntInput("Enter X coordinate", 1, game.Width, 0); ClearConsoleIfUserCanceled(userCanceled); gameEngine.FirstMove(userXint, userYint, new Random(), game); gameEngine.RevealPanel(userXint, userYint, game); MainGame(gameEngine, game, ctx, userYint, userXint, userCanceled, saveGame, plantFlag, "newGame"); return(""); }
public IActionResult OnPost() { GameBoard !.MineCount = 10; var gameBoardEngine = new GameBoardEngine(_appDbContext); var gameBoard = gameBoardEngine.CreateNewGameBoard(GameBoard.Height, GameBoard.Width, GameBoard.MineCount); gameBoard.SaveGameName = GameBoard.SaveGameName; if (!ModelState.IsValid) { return(Page()); } if (_appDbContext.GameBoards.Any(e => e.SaveGameName == GameBoard !.SaveGameName)) { ModelState.AddModelError("GameBoard.SaveGameName", "A save game with this name already exists."); return(Page()); } gameBoardEngine.AddGameBoardToDb(gameBoard); return(RedirectToPage("/PlayGame/Index", new { id = gameBoard.Id })); }