Пример #1
0
        public bool Step()
        {
            if (CurrentStep >= StepsCount)
            {
                return(false);
            }

            var CurrentValue = TapeState[TapePointer];

            if (CurrentValue == 1)
            {
                TapeState[TapePointer] = CurrentState.OneAction.Write;
                if (CurrentState.OneAction.Move == Move.left)
                {
                    TapeState.Insert(0, 0);
                }
                else
                {
                    if (TapeState.Count == (TapePointer + 1))
                    {
                        TapeState.Add(0);
                    }
                    TapePointer++;
                }

                CurrentState = CurrentState.OneAction.NextState;
            }
            else
            {
                TapeState[TapePointer] = CurrentState.ZeroAction.Write;
                if (CurrentState.ZeroAction.Move == Move.left)
                {
                    TapeState.Insert(0, 0);
                }
                else
                {
                    if (TapeState.Count == (TapePointer + 1))
                    {
                        TapeState.Add(0);
                    }
                    TapePointer++;
                }

                CurrentState = CurrentState.ZeroAction.NextState;
            }

            return(true);
        }
 public GetBucketCapacitySummarySpectraS3Request WithTapeState(TapeState? tapeState)
 {
     this._tapeState = tapeState;
     if (tapeState != null)
     {
         this.QueryParams.Add("tape_state", tapeState.ToString());
     }
     else
     {
         this.QueryParams.Remove("tape_state");
     }
     return this;
 }
 public ModifyTapeSpectraS3Request WithState(TapeState? state)
 {
     this._state = state;
     if (state != null)
     {
         this.QueryParams.Add("state", state.ToString());
     }
     else
     {
         this.QueryParams.Remove("state");
     }
     return this;
 }
 public GetTapesSpectraS3Request WithPreviousState(TapeState? previousState)
 {
     this._previousState = previousState;
     if (previousState != null)
     {
         this.QueryParams.Add("previous_state", previousState.ToString());
     }
     else
     {
         this.QueryParams.Remove("previous_state");
     }
     return this;
 }
Пример #5
0
 public int GetChecksum()
 {
     return(TapeState.Select(a => a == 1).Count());
 }