Files
Design-Patterns/patterns/state/WithoutStatePattern/Car.cs
2026-08-13 22:47:17 -04:00

76 lines
2.0 KiB
C#

namespace WithoutStatePattern;
public class Car
{
private State _state = State.Off;
public bool HandleInput(string input)
{
switch (input)
{
case "turn-clockwise":
switch (_state)
{
case State.Off:
Console.WriteLine("The engine has started");
Console.WriteLine();
_state = State.Stopped;
break;
case State.Stopped:
case State.Driving:
Console.WriteLine("You hear a grinding noise...");
Console.WriteLine();
break;
}
break;
case "turn-counter":
switch (_state)
{
case State.Stopped:
Console.WriteLine("The engine has stopped");
Console.WriteLine();
_state = State.Off;
break;
case State.Driving:
Console.WriteLine(
"The engine turns off, and the car stops suddenly"
);
Console.WriteLine();
_state = State.Off;
break;
}
break;
case "gas":
switch (_state)
{
case State.Stopped:
Console.WriteLine("The car begins to drive");
Console.WriteLine();
_state = State.Driving;
break;
}
break;
case "brake":
switch (_state)
{
case State.Driving:
Console.WriteLine("The car slows to a stop");
Console.WriteLine();
_state = State.Stopped;
break;
}
break;
case "exit":
return false;
}
return true;
}
private enum State
{
Off,
Stopped,
Driving,
}
}