Beispiel #1
0
        public async Task <object> Reveal([Bind("ID")] int id)
        {
            var riddle = await _context.Riddle.FindAsync(id);

            if (riddle == null)
            {
                return(NotFound());
            }

            var status = GetSolvingStatusObject(id);

            if (status == null)
            {
                status = new SolvingStatus()
                {
                    User = CurrentUser, Riddle = riddle, Status = UserRiddleStatus.Surrendered
                };
                await _context.SolvingStatuses.AddAsync(status);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Details), new { id }));
            }

            if (status.Status == UserRiddleStatus.None)
            {
                status.Status = UserRiddleStatus.Surrendered;
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Details), new { id }));
            }

            return("Not eligible for a reveal!");
        }
Beispiel #2
0
        public async Task <object> Solve([Bind("ID")] int id, [Bind("Answer")] string answer)
        {
            if (!RiddleExists(id))
            {
                return(NotFound());
            }
            if (GetStatusOfRiddle(id) != UserRiddleStatus.None)
            {
                return("Not eligible for solving!");
            }

            var riddle = await _context.Riddle.FindAsync(id);

            bool result    = riddle.Answer == answer;
            var  newStatus = result ? UserRiddleStatus.Solved : UserRiddleStatus.None;

            var status = GetSolvingStatusObject(id);

            if (status == null)
            {
                status = new SolvingStatus()
                {
                    User = CurrentUser, Riddle = riddle, Status = newStatus
                };
                await _context.SolvingStatuses.AddAsync(status);
            }

            status.Status = newStatus;

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Beispiel #3
0
        public async Task <object> Create([Bind("ID,Question,Answer,ComplimentForWinning,InsultForLosing")] Riddle riddle)
        {
            riddle.Author = CurrentUser;
            //riddle.AuthorID = riddle.Author.Id;

            ModelState.Remove("Author");

            if (ModelState.IsValid)
            {
                _context.Add(riddle);

                var authorStatus = new SolvingStatus()
                {
                    Riddle = riddle, User = CurrentUser, Status = UserRiddleStatus.Created
                };

                _context.Add(authorStatus);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            return(riddle);
        }
Beispiel #4
0
        public void solveSudoku_()
        {
            if (this.solveSudokuInternal() == true)
            {
                if (SudokuBoard.currentSolvingStatus != SolvingStatus.ABORTED)
                {
                    /* Prepare event to notify a result was found */
                    SudokuBoard.currentSolvingStatus = SolvingStatus.SOLVED;
                }
            }
            else
            {
                if (SudokuBoard.currentSolvingStatus != SolvingStatus.ABORTED)
                {
                    /* Prepare event to notify No Solving result was found */
                    SudokuBoard.currentSolvingStatus = SolvingStatus.SOLUTION_NOT_FOUND;
                }
            }

            /* Notify suscribers that a solving has Ended */
            if (ProcessFinished_Evnt != null)
            {
                ProcessFinished_Evnt(this);
            }
        }
Beispiel #5
0
 public BehaviorGraph()
 {
     _nodes               = new List <BehaviorGraphNode>();
     _solvingCache        = new Dictionary <BehaviorGraphNode, bool>();
     CurrentSolvingStatus = SolvingStatus.None;
 }
 public BehaviorGraph()
 {
     _nodes = new List<BehaviorGraphNode>();
     _solvingCache = new Dictionary<BehaviorGraphNode, bool>();
     CurrentSolvingStatus = SolvingStatus.None;
 }