LED-Schaltung mit 3 Tastern

Ich habe auch wohl noch nicht verstanden was es tun soll.
Denn Beschreibung und Programm passen nicht zueinander.

Für meine Wühlkiste.
Ein endlicher Automat mit Funktionszeigern

constexpr byte key1 {5};
constexpr byte key2 {6};
constexpr byte key3 {4};

constexpr byte LEDgreen  {8};
constexpr byte LEDyellow {9};
constexpr byte LEDred   {10};

void reset();
void eins();
void zwei();

void(*zustand)()   {reset};

void reset()
{
  pinMode(key1, INPUT);
  pinMode(key2, INPUT);
  pinMode(key3, INPUT);
  pinMode(LEDgreen, OUTPUT);
  pinMode(LEDyellow, OUTPUT);
  pinMode(LEDred, OUTPUT);
  digitalWrite(LEDred, LOW);
  digitalWrite(LEDyellow, LOW);
  digitalWrite(LEDgreen, LOW);
  if(digitalRead(key1)) zustand = eins;
  if(digitalRead(key2)) zustand = zwei;
}

void eins()
{
  digitalWrite(LEDred, HIGH);
  digitalWrite(LEDyellow, HIGH);
  if(digitalRead(key3)) zustand = reset;
}

void zwei()
{
  digitalWrite(LEDgreen, HIGH);
  if(digitalRead(key3)) zustand = reset;
}

void setup(){}

void loop()
{
  zustand();
}