public IActionResult Index() { TicTacToeBoard board = new TicTacToeBoard(); List <Cell> cells = board.GetCells(); foreach (Cell cell in cells) { cell.Mark = TempData[cell.Id]?.ToString(); } board.CheckForWinner(); TicTacViewModel model = new TicTacViewModel { Cells = cells, Selected = new Cell { Mark = TempData["nextTurn"]?.ToString() ?? "X" }, IsGameOver = board.HasWinner || board.HasAllCellsSelected }; if (model.IsGameOver) { TempData["nextTurn"] = "X"; TempData["message"] = board.HasWinner ? $"{board.WinningMark} wins" : "Its a tie"; } else { TempData.Keep(); } return(View(model)); }
public RedirectToActionResult Index(TicTacViewModel viewModel) { TempData[viewModel.Selected.Id] = viewModel.Selected.Mark; TempData["nextTurn"] = viewModel.Selected.Mark == "X" ? "O" : "X"; return(RedirectToAction("Index")); }
public IActionResult Index() { var gameRepository = new GameRepository(); var model = new TicTacViewModel(gameRepository.GetCurrentState(), null, gameRepository.GetGameMode()); return(View(model)); }