public async Task <ActionResult> OnGet(int?gameId, int?col, int?row, bool flag) { if (gameId == null) { return(RedirectToPage("./GameIndex")); } GameId = gameId.Value; Flag = flag; Game = GameStateHandler.LoadGameFromDb(GameId); if (Game == null) { return(RedirectToPage("./GameIndex")); } if (col != null && row != null) { var lost = Game.Move(row.Value, col.Value, Flag); if (!lost) { Game.CheckIfGameWon(); } await GameStateHandler.SaveGameToDb(Game, Game.Name); } return(Page()); }
// To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync(int?difficulty) { if (!ModelState.IsValid) { return(Page()); } if (difficulty == null) { return(RedirectToPage("./GameIndex")); } if (difficulty == 1) { var game = new Game(3, true); await GameStateHandler.SaveGameToDb(game, GameState.Name); return(RedirectToPage("./GameRunner", new { gameId = game.DbId })); } if (difficulty == 2) { var game = new Game(3, false); await GameStateHandler.SaveGameToDb(game, GameState.Name); return(RedirectToPage("./GameRunner", new { gameId = game.DbId })); } return(RedirectToPage("./GameIndex")); }
public IActionResult OnGetStartSameGame(int?gameId) { if (gameId != null) { GameId = gameId.Value; } Game = GameStateHandler.LoadGameFromDb(GameId); var game = new Game(Game.BoardHeight, Game.BoardWidth, Game.MinesAmount, Game.Name); GameStateHandler.DeleteFromDbUsingId(GameId); GameStateHandler.SaveGameToDb(game, game.Name); return(RedirectToPage("./GameRunner", new { gameId = game.DbId })); }
public async Task <IActionResult> OnPostAsync() { IllegalAmountOfMines = false; if (!ModelState.IsValid) { return(Page()); } if (GameState.BoardHeight * GameState.BoardWidth <= GameState.MinesAmount) { IllegalAmountOfMines = true; return(Page()); } var game = new Game(GameState.BoardHeight, GameState.BoardWidth, GameState.MinesAmount, GameState.Name); await GameStateHandler.SaveGameToDb(game, GameState.Name); return(RedirectToPage("./GameRunner", new { gameId = game.DbId })); }