Exemplo n.º 1
0
        public void AlleKarteOpen(MemoryKarte karte)
        {
            int kartenID, kartenPos;

            kartenID  = karte.getBild();
            kartenPos = karte.getBildPos();
        }
Exemplo n.º 2
0
        public void KarteOeffen(MemoryKarte karte)
        {
            //zum zwiechenspeichern der ID und der Position
            int kartenID, kartenPos;

            //die Karten zwiechenspeichern
            paar[umgedrehteKarten] = karte;

            //die ID und die Position beschaffen
            kartenID  = karte.getBild();
            kartenPos = karte.getBildPos();

            //die Karte in das Gedächnis des Computer eintragen aber nur dann wenn keinen Eintrag an der
            //entsprechende stelle gibt
            if ((gemerkteKarten[0, kartenID]) == -1)
            {
                gemerkteKarten[0, kartenID] = kartenPos;
            }
            else if (gemerkteKarten[0, kartenID] != kartenPos)
            {
                gemerkteKarten[1, kartenID] = kartenPos;
            }
            umgedrehteKarten++;

            //sind 2 karten umgedreht worden
            if (umgedrehteKarten == 2)
            {
                //dann prüfen wir ob es ein paar ist
                PaarPruefen(kartenID);
                //die Karten wieder schließen
                timer.Start();
            }
            //haben wir zusamen 21 paare, dann ist das SPiel vorbei
            if (computerPunkte + menschPunkte == 21)
            {
                if (menschPunkte < computerPunkte)
                {
                    MessageBox.Show(computerPunkte.ToString(), "Computer gewinnt", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
                    Application.Current.Shutdown();
                }
                if (menschPunkte > computerPunkte)
                {
                    MessageBox.Show(menschPunkte.ToString(), "Du gewinnst", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
                    Application.Current.Shutdown();
                }
            }
        }
Exemplo n.º 3
0
        //der Konstruktor
        public MemoryFeld(UniformGrid feld)
        {
            //zum Zählen für die Bilder
            int count = 0;

            //das Array für die Karten erstellen insgesamt 42
            karten = new MemoryKarte[42];

            //für das Paar
            paar = new MemoryKarte[2];

            //für das Gedächtnis er speichert für jede Karte paarweise die Position im spielfeld
            gemerkteKarten = new int[2, 21];

            //keiner hat zu beginn punkte
            menschPunkte   = 0;
            computerPunkte = 0;

            //es sind keine Karte umgedreht
            umgedrehteKarten = 0;

            //der Mensch fängt an
            spieler = 0;

            //das Spielfeld setzen
            this.feld = feld;


            //es gibt keine gemerkte Karten
            for (int aussen = 0; aussen < 2; aussen++)
            {
                for (int innen = 0; innen < 21; innen++)
                {
                    gemerkteKarten[aussen, innen] = -1;
                }
            }

            //das eigentliche Spielfeld erstellen
            for (int i = 0; i <= 41; i++)
            {
                //eine neue Karten erzeugen
                karten[i] = new MemoryKarte(bilder[count], count, this);
                //die Position der Karte setzen
                //bei jeder zweiten Karten kommt auch ein neues Bild
                if ((i + 1) % 2 == 0)
                {
                    count++;
                }
            }
            //die Karten mischen
            for (int i = 0; i <= 41; i++)
            {
                int         temp1;
                MemoryKarte temp2;
                //eine zufällige zahl von 0 bis 41 erzeugen
                temp1 = zufallZahl.Next(42);
                //den alten wert in sicherheit bringen
                temp2 = karten[temp1];
                //die werte tauchen
                karten[temp1] = karten[i];
                karten[i]     = temp2;
            }
            //die karten ins spielfeld bringen
            for (int i = 0; i <= 41; i++)
            {
                //die Position der Karte setzen
                karten[i].setBildPos(i);
                //die Karte hinzufügen
                feld.Children.Add(karten[i]);
            }
            //die Labels für die Punkte
            Label mensch = new Label();

            mensch.Content = "Mensch";
            feld.Children.Add(mensch);
            menschPunkteLabel         = new Label();
            menschPunkteLabel.Content = 0;
            feld.Children.Add(menschPunkteLabel);

            Label computer = new Label();

            computer.Content = "Computer";
            feld.Children.Add(computer);
            computerPunkteLabel         = new Label();
            computerPunkteLabel.Content = 0;
            feld.Children.Add(computerPunkteLabel);

            schummel         = new Button();
            schummel.Content = "Schummel";
            feld.Children.Add(schummel);
            schummel.IsEnabled = true;
            schummel.Click    += Schummel_Click;

            //der Timer initialisieren
            timer          = new DispatcherTimer();
            timer.Interval = TimeSpan.FromMilliseconds(2000);
            timer.Tick    += Timer_Tick;
        }