Beispiel #1
0
        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);
        }
Beispiel #2
0
        } // 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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }