Ejemplo n.º 1
0
        private char PrintPozíció(int x, int y, char asztal = 'A', char fal = 'F', char kanapé = 'K', char szék = 'S', char üres = '.')
        {
            Típus t = this[x, y];

            switch (t)
            {
            case Típus.Asztal:
                return(asztal);

            case Típus.Fal:
                return(fal);

            case Típus.Kanapé:
                return(kanapé);

            case Típus.Szék:
                return(szék);

            case Típus.Üres:
                return(üres);

            case Típus.Ismeretlen:
                throw new Exception("Nem osztályzott mező");

            default:
                throw new Exception("Nem kezelt object típus!");
            }
        }
Ejemplo n.º 2
0
        private void BerendezésDekektálás()
        {
            /// <summary>
            /// Felcímkézi a Szék, Asztal és kanapé típusú objecteket
            /// </summary>

            // A ciklus működési elve:
            // mindig a bal felső sarkát találja meg az objectnek
            // Ha az object feltöltése már elkezdődött, akkor folytatja
            // Egyébként felcímkézi az alábbi szabályok alapján:

            // Szék, ha se jobbra, se lefelé nem folytatódik
            // Asztal ja jobbra, lefelé és jobbra-lefelé is folytatódik
            // Egyébként pedig kanapé
            for (int y = 1; y < Magasság - 1; y++)
            {
                for (int x = 1; x < Szélesség - 1; x++)
                {
                    if (this[x, y] == Típus.Ismeretlen)
                    {
                        // Ha az object detektálása már elkezdődött
                        Típus balraTípus = this[x - 1, y];
                        Típus felTípus   = this[x, y - 1];

                        if (balraTípus == Típus.Asztal || balraTípus == Típus.Kanapé || balraTípus == Típus.Szék)
                        {
                            this[x, y] = balraTípus;
                            continue;
                        }
                        if (felTípus == Típus.Asztal || felTípus == Típus.Kanapé || felTípus == Típus.Szék)
                        {
                            this[x, y] = felTípus;
                            continue;
                        }

                        // Ha az object még ismeretlen
                        bool jobbraIsmert         = this[x + 1, y] == Típus.Ismeretlen;
                        bool lefeléIsmert         = this[x, y + 1] == Típus.Ismeretlen;
                        bool jobbraÉsLefeléIsmert = this[x + 1, y + 1] == Típus.Ismeretlen;

                        if (!jobbraIsmert && !lefeléIsmert)
                        {
                            this[x, y] = Típus.Szék;
                        }

                        else if (jobbraIsmert && lefeléIsmert && jobbraÉsLefeléIsmert)
                        {
                            this[x, y] = Típus.Asztal;
                        }
                        else
                        {
                            this[x, y] = Típus.Kanapé;
                        }
                    }
                }
            }
        }