public void AlleKarteOpen(MemoryKarte karte) { int kartenID, kartenPos; kartenID = karte.getBild(); kartenPos = karte.getBildPos(); }
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(); } } }
//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; }