public async Task <IActionResult> Index() { await this.heroService.ValidateCurrentHeroLocation(WorkStatus.Mine); MineViewModel viewModel = await this.heroService.GetCurrentHeroViewModel <MineViewModel>(); return(this.View(viewModel)); }
public JsonResult Minesweeper([FromBody] MinesweeperBindingModel model) { var board = MinesweeperBoard.Decrypt(model.encodedBoard).Split(';').ToList(); var gameEndedSuccessfully = MinesweeperBoard.CheckIfGameEndedSuccessfully(board, model.flagged); var gameEndedUnsuccessfully = MinesweeperBoard.CheckIfMineIsHit(board, model.currentId); MineViewModel output = MinesweeperBoard.TilesToReveal(model.currentId, board, new MineViewModel()); output.gameEnded = gameEndedSuccessfully || gameEndedUnsuccessfully; if (gameEndedUnsuccessfully) { output.mines = new List <Mine>(); foreach (var mine in board) { output.mines.Add(new Mine(mine, 0)); } } return(new JsonResult(output)); }
public MinePage() { InitializeComponent(); BindingContext = viewModel = new MineViewModel(); }
public static MineViewModel TilesToReveal(string currentId, List <string> mines, MineViewModel minesToReturn) { if (minesToReturn.mines.FirstOrDefault(p => p.currentId == currentId) != null) { return(minesToReturn); } if (mines.Contains(currentId)) { return(minesToReturn); } int numberToShow = 0; for (int i = 0; i < 3; i++) { for (int k = 0; k < 3; k++) { string id = $"{int.Parse(currentId.Split('_')[0]) - 1 + i}_{int.Parse(currentId.Split('_')[1]) - 1 + k}"; if (mines.Contains(id)) { numberToShow++; } } } minesToReturn.Add(new Mine(currentId, numberToShow)); if (numberToShow == 0) { for (int i = 0; i < 3; i++) { for (int k = 0; k < 3; k++) { var rowAndCol = currentId.Split('_').Select(int.Parse).ToList(); if (rowAndCol[0] - 1 + i <1 || rowAndCol[0] - 1 + i> Cols_In_Game || rowAndCol[1] - 1 + k <1 || rowAndCol[1] - 1 + k> Rows_In_Game) { continue; } string id = $"{int.Parse(currentId.Split('_')[0]) - 1 + i}_{int.Parse(currentId.Split('_')[1]) - 1 + k}"; TilesToReveal(id, mines, minesToReturn); } } } return(minesToReturn); }
public ActionResult Index() { MineViewModel model = new MineViewModel(); model.Account = User.Identity.Name; model.Avatar = _db.tbl_UserAccount.Single(m => m.user_Account == model.Account).user_Avatar; model.Cover = _db.tbl_UserAccount.Single(m => m.user_Account == model.Account).user_Cover; model.Id = AccountManager.GetId(model.Account); var plans = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 1).OrderByDescending(m => m.mark_Time); model.PlanCount = plans.Count(); model.MoviePlans = new List <MarkItem>(); if (model.PlanCount != 0) { foreach (var item in plans.Take(10)) { MarkItem mitem = new MarkItem(); mitem.Id = item.mark_Target; mitem.Avatar = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Avatar; mitem.Title = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Title; model.MoviePlans.Add(mitem); } } var finishs = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 2).OrderByDescending(m => m.mark_Time); model.FinishCount = finishs.Count(); model.MovieFinishs = new List <MarkItem>(); if (model.FinishCount != 0) { foreach (var item in finishs.Take(10)) { MarkItem mitem = new MarkItem(); mitem.Id = item.mark_Target; mitem.Avatar = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Avatar; mitem.Title = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Title; model.MovieFinishs.Add(mitem); } } var favors = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 3).OrderByDescending(m => m.mark_Time); model.FavorCount = favors.Count(); model.MovieFavors = new List <MarkItem>(); if (model.FavorCount != 0) { foreach (var item in favors.Take(10)) { MarkItem mitem = new MarkItem(); mitem.Id = item.mark_Target; mitem.Avatar = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Avatar; mitem.Title = _db.tbl_Movie.Single(m => m.movie_Id == item.mark_Target).movie_Title; model.MovieFavors.Add(mitem); } } var collects = _db.tbl_Mark.Where(m => m.mark_User == model.Id && m.mark_Type == 4).OrderByDescending(m => m.mark_Time); model.CollectCount = collects.Count(); model.CelebCollects = new List <MarkItem>(); if (model.CollectCount != 0) { foreach (var item in collects.Take(10)) { MarkItem mitem = new MarkItem(); mitem.Id = item.mark_Target; mitem.Avatar = _db.tbl_Celebrity.Single(m => m.celeb_Id == item.mark_Target).celeb_Avatar; mitem.Title = _db.tbl_Celebrity.Single(m => m.celeb_Id == item.mark_Target).celeb_Name; model.CelebCollects.Add(mitem); } } var albums = _db.tbl_Album.Where(a => a.album_User == model.Id).OrderByDescending(a => a.album_AlterTime); model.AlbumCount = albums.Count(); model.Albums = new List <AlbumListItem>(); if (model.AlbumCount != 0) { foreach (var item in albums) { model.Albums.Add(new AlbumListItem(item)); } } var comments = _db.tbl_Comment.Where(c => c.cmt_User == model.Id).OrderByDescending(c => c.cmt_Time); model.CommentCount = comments.Count(); model.Comments = new List <CommentItem>(); if (model.AlbumCount != 0) { foreach (var item in comments) { CommentItem citem = new CommentItem(); citem.MovieID = item.cmt_Movie; citem.MovieTitle = MovieManager.GetTitle(item.cmt_Movie); citem.Comment = item.cmt_Content; citem.Time = ((System.DateTime)item.cmt_Time).ToString("yyyy-MM-dd hh:mm:ss"); model.Comments.Add(citem); } } return(View(model)); }