Esempio n. 1
0
 public FiniteStateMachine(string[] input)
 {
     this.input = input;
     state = new StartState(this);
 }
Esempio n. 2
0
        public bool Process()
        {
            if (currentState == State.Initial)
            {
                this.consoleAdapter.Write("Shape: (C)ircle or (R)ectangle?");
                currentState = State.ReadShape;
                return true;
            }
            var read = this.consoleAdapter.Read();

            if (read == "R")
            {
                currentState = State.ReadRectangleSideA;
                this.consoleAdapter.Write("Rectangle side A length?");
                return true;
            }
            if (read == "C")
            {
                currentState = State.ReadCircleRadius;
                this.consoleAdapter.Write("Circle radius?");
                return true;
            }

            if (currentState == State.ReadCircleRadius)
            {
                this.consoleAdapter.Write($"{Math.PI}");
                return true;
            }
            if (currentState == State.ReadRectangleSideA)
            {
                consoleAdapter.Write("Rectangle side B length?");
                currentState = State.ReadRectangleSideB;
                return true;
            }
            if (currentState == State.ReadRectangleSideB)
            {
                consoleAdapter.Write("1");
                return true;
            }

            return true;
        }