Example #1
0
        public void SelectResult(Solver.Result result)
        {
            var o = m_FileView.SelectResult(result);

            o.Do();
            m_UndoStack.Add(o);
        }
Example #2
0
 private void SetResult(Solver.Result result)
 {
     m_Result = result;
     if (result == null)
     {
         m_BoardRenderer.Reset();
         m_Time.Text  = string.Empty;
         m_Level.Text = string.Empty;
         m_BMT.Text   = string.Empty;
     }
     else
     {
         m_BoardRenderer.SetBoardAndTetromino(result.PrevState.Board, result.Step.Tetromino);
         m_Time.Text  = result.NextState.TimeString;
         m_Level.Text = string.Format("Level: {0}", result.NextState.Level.ToString());
         m_BMT.Text   = string.Format("BMT: {0}", result.Step.Inputs.Count - 2);
     }
 }
Example #3
0
        public IUndoable SelectResult(Solver.Result result)
        {
            var index      = m_Index;
            var fileAction = m_File.CreateSelectResult(index, result);

            var r = new GenericUndoable(() =>
            {
                SuspendUpdates();
                fileAction.Do();
                Index = index + 1;
                ResumeUpdates();
            }, () =>
            {
                SuspendUpdates();
                fileAction.Undo();
                Index = index;
                ResumeUpdates();
            });

            return(r);
        }
Example #4
0
        public IUndoable CreateSelectResult(int index, Solver.Result result)
        {
            EnsureInvariant();
            Ensure(index < m_States.Count);
            Ensure(index <= m_Steps.Count);

            var removedStates = m_States.Skip(index + 1).ToList();
            var removedSteps  = m_Steps.Skip(index).ToList();

            Ensure(removedStates.Count == removedSteps.Count);

            return(new GenericUndoable(() =>
            {
                EnsureInvariant();
                Ensure(index < m_States.Count);
                Ensure(index <= m_Steps.Count);
                m_States.RemoveRange(index + 1, m_States.Count - index - 1);
                m_Steps.RemoveRange(index, m_Steps.Count - index);
                m_States.Add(result.NextState);
                m_Steps.Add(result.Step);
                EnsureInvariant();
                NotifyChanged();
            },
                                       () =>
            {
                EnsureInvariant();
                Ensure(m_States.Count == index + 2);
                Ensure(m_Steps.Count == index + 1);
                Ensure(removedStates.Count == removedSteps.Count);
                m_States.RemoveLast();
                m_Steps.RemoveLast();
                m_States.AddRange(removedStates);
                m_Steps.AddRange(removedSteps);
                EnsureInvariant();
                NotifyChanged();
            }));
        }
Example #5
0
 public DummySolver(Solver.Result resultIsAlways = Result.SAT)
 {
     this.ResultIsAlways = resultIsAlways;
 }