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"));
        }
Exemple #3
0
        public IActionResult Index()
        {
            var gameRepository = new GameRepository();
            var model          = new TicTacViewModel(gameRepository.GetCurrentState(), null, gameRepository.GetGameMode());

            return(View(model));
        }