static Hendelse EnHendelse() { Hendelse svar = Hendelse.Hx; char tegn = Console.ReadKey().KeyChar; switch (tegn) { case '1': svar = Hendelse.H1; break; case '3': svar = Hendelse.H3; break; case '4': svar = Hendelse.H4; break; case '5': svar = Hendelse.H5; break; default: svar = Hendelse.Hx; break; } return(svar); }
} // av Main static Hendelse EnHendelse() { Hendelse svar = Hendelse.ANNET; char tegn = Console.ReadKey().KeyChar; switch (tegn) { case 'B': svar = Hendelse.B; break; case 'E': svar = Hendelse.E; break; case 'R': svar = Hendelse.R; break; case 'G': svar = Hendelse.G; break; case 'N': svar = Hendelse.N; break; } return(svar); }
public static List <Aksjon> TilstandsMaskin(Hendelse h) { List <Aksjon> svar = new List <Aksjon>(); switch (h) { case Hendelse.H1: switch (_minTilstand) { case Tilstand.T1: _minTilstand = Tilstand.T11; break; case Tilstand.T11: _minTilstand = Tilstand.T111; break; case Tilstand.T111: _minTilstand = Tilstand.TOM; svar.Add(Aksjon.Lukk); break; case Tilstand.T4: _minTilstand = Tilstand.T1; break; case Tilstand.T45: _minTilstand = Tilstand.T1; break; case Tilstand.T454: _minTilstand = Tilstand.T1; break; case Tilstand.TOM: _minTilstand = Tilstand.T1; break; default: throw new ArgumentOutOfRangeException(); } break; case Hendelse.H3: switch (_minTilstand) { case Tilstand.T1: _minTilstand = Tilstand.TOM; break; case Tilstand.T11: _minTilstand = Tilstand.TOM; break; case Tilstand.T111: _minTilstand = Tilstand.TOM; break; case Tilstand.T4: _minTilstand = Tilstand.TOM; break; case Tilstand.T45: _minTilstand = Tilstand.TOM; break; case Tilstand.T454: _minTilstand = Tilstand.TOM; svar.Add(Aksjon.Aapne); break; case Tilstand.TOM: _minTilstand = Tilstand.TOM; break; default: throw new ArgumentOutOfRangeException(); } break; case Hendelse.H4: switch (_minTilstand) { case Tilstand.T1: _minTilstand = Tilstand.T4; break; case Tilstand.T11: _minTilstand = Tilstand.T4; break; case Tilstand.T111: _minTilstand = Tilstand.T4; break; case Tilstand.T4: _minTilstand = Tilstand.T4; break; case Tilstand.T45: _minTilstand = Tilstand.T454; break; case Tilstand.T454: _minTilstand = Tilstand.T4; break; case Tilstand.TOM: _minTilstand = Tilstand.T4; break; default: throw new ArgumentOutOfRangeException(); } break; case Hendelse.H5: switch (_minTilstand) { case Tilstand.T1: _minTilstand = Tilstand.TOM; break; case Tilstand.T11: _minTilstand = Tilstand.TOM; break; case Tilstand.T111: _minTilstand = Tilstand.TOM; break; case Tilstand.T4: _minTilstand = Tilstand.T45; break; case Tilstand.T45: _minTilstand = Tilstand.TOM; break; case Tilstand.T454: _minTilstand = Tilstand.T45; break; case Tilstand.TOM: _minTilstand = Tilstand.TOM; break; default: throw new ArgumentOutOfRangeException(); } break; case Hendelse.Hx: _minTilstand = Tilstand.TOM; break; default: throw new ArgumentOutOfRangeException(nameof(h), h, null); } return(svar); }
public List <Aksjon> HaandterHendelse(Hendelse h) { List <Aksjon> svar = new List <Aksjon>(); switch (minTilstand) { case Tilstand.Lukket: switch (h) { case Hendelse.Kr1: betaltBelop++; if (betaltBelop == passeringspris) { minTilstand = Tilstand.Aapen; svar.Add(Aksjon.Aapne); betaltBelop = 0; } break; case Hendelse.Kr5: betaltBelop = betaltBelop + 5; if (betaltBelop >= passeringspris) { minTilstand = Tilstand.Aapen; svar.Add(Aksjon.Aapne); betaltBelop = betaltBelop - passeringspris; while (betaltBelop > 0) { svar.Add(Aksjon.R1); betaltBelop--; } } break; case Hendelse.Passering: break; } break; case Tilstand.Aapen: switch (h) { case Hendelse.Kr1: svar.Add(Aksjon.R1); break; case Hendelse.Kr5: svar.Add(Aksjon.R5); break; case Hendelse.Passering: minTilstand = Tilstand.Lukket; svar.Add(Aksjon.Lukk); break; } break; } return(svar); }
public List <Aksjon> HaandterHendelse(Hendelse minHendelse) { List <Aksjon> aksjonerSomSkalUtfores = new List <Aksjon>(); switch (minTilstand) { case Tilstand.TOM: // TOM switch (minHendelse) { case Hendelse.B: minTilstand = Tilstand.B; break; case Hendelse.E: case Hendelse.R: case Hendelse.G: case Hendelse.N: case Hendelse.ANNET: break; } break; case Tilstand.B: // B switch (minHendelse) { case Hendelse.E: minTilstand = Tilstand.BE; break; case Hendelse.B: break; case Hendelse.R: case Hendelse.G: case Hendelse.N: case Hendelse.ANNET: minTilstand = Tilstand.TOM; break; } break; case Tilstand.BE: // BE switch (minHendelse) { case Hendelse.B: minTilstand = Tilstand.B; break; case Hendelse.R: minTilstand = Tilstand.BER; break; case Hendelse.E: case Hendelse.G: case Hendelse.N: case Hendelse.ANNET: minTilstand = Tilstand.TOM; break; } break; case Tilstand.BER: // BER switch (minHendelse) { case Hendelse.B: minTilstand = Tilstand.B; break; case Hendelse.G: minTilstand = Tilstand.BERG; break; case Hendelse.E: case Hendelse.R: case Hendelse.N: case Hendelse.ANNET: minTilstand = Tilstand.TOM; break; } break; case Tilstand.BERG: // BERG switch (minHendelse) { case Hendelse.B: minTilstand = Tilstand.B; break; case Hendelse.E: minTilstand = Tilstand.BERGE; break; case Hendelse.R: case Hendelse.G: case Hendelse.N: case Hendelse.ANNET: minTilstand = Tilstand.TOM; break; } break; case Tilstand.BERGE: // BERGE switch (minHendelse) { case Hendelse.B: minTilstand = Tilstand.B; break; case Hendelse.N: aksjonerSomSkalUtfores.Add(Aksjon.VIS_BERGEN); // Console.Write("\nBergen\n"); minTilstand = Tilstand.TOM; break; case Hendelse.E: case Hendelse.R: case Hendelse.G: case Hendelse.ANNET: minTilstand = Tilstand.TOM; break; } break; } // av switch(minTilstand) return(aksjonerSomSkalUtfores); }