Add code examples, and documentation

This commit is contained in:
Aaron Po
2026-08-12 00:03:32 -04:00
commit 77c16e69f6
79 changed files with 4458 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
#region
using System;
#endregion
namespace CarState.States;
public class Driving : State
{
public Driving(Car car)
: base(car) { }
public override void TurnKeyClockwise()
{
Console.WriteLine("You hear a grinding noise...");
Console.WriteLine();
}
public override void TurnKeyCounterClockwise()
{
Console.WriteLine("The engine turns off, and the car stops suddenly");
Console.WriteLine();
_car.ChangeState(new Off(_car));
}
public override void PressBrake()
{
Console.WriteLine("The car slows to a stop");
Console.WriteLine();
_car.ChangeState(new Stopped(_car));
}
}

View File

@@ -0,0 +1,20 @@
#region
using System;
#endregion
namespace CarState.States;
public class Off : State
{
public Off(Car car)
: base(car) { }
public override void TurnKeyClockwise()
{
Console.WriteLine("The engine has started");
Console.WriteLine();
_car.ChangeState(new Stopped(_car));
}
}

View File

@@ -0,0 +1,19 @@
namespace CarState.States;
public class State
{
protected Car _car;
public State(Car car)
{
_car = car;
}
public virtual void TurnKeyClockwise() { }
public virtual void TurnKeyCounterClockwise() { }
public virtual void PressGas() { }
public virtual void PressBrake() { }
}

View File

@@ -0,0 +1,33 @@
#region
using System;
#endregion
namespace CarState.States;
public class Stopped : State
{
public Stopped(Car car)
: base(car) { }
public override void PressGas()
{
Console.WriteLine("The car begins to drive");
Console.WriteLine();
_car.ChangeState(new Driving(_car));
}
public override void TurnKeyClockwise()
{
Console.WriteLine("You hear a grinding noise...");
Console.WriteLine();
}
public override void TurnKeyCounterClockwise()
{
Console.WriteLine("The engine has stopped");
Console.WriteLine();
_car.ChangeState(new Off(_car));
}
}