paule22 Geschrieben 31. August 2001 Geschrieben 31. August 2001 Hallo Programmierer, kennt jemand von euch einen kleinen Algorithmus, um ein Memory-Spiel zu programmieren also in der Form: 1 2 4 0 5 4 1 2 0 3 5 3 6 6 Zitieren
Crush Geschrieben 31. August 2001 Geschrieben 31. August 2001 Also so komliziert ist das verteilen der Doppeltkarten doch wirklich nicht. Mach halt ein int Feld[x][y] setze alle Inhalte auf 0 für nicht initialisiert -1 = aufgedeckt. Dann verteile die Nummern jeweils zweimal mit Zufallszahlen für x und y (Bereichsüberschreitungen ausklammern). Steht da halt schon was drin nimm das nächstgelegene freie Feld. Ist zum Schluß noch eine 0 drin hast Du halt was falsch gemacht. Werden nun Doppelkarten gleichen Wertes aufgedeckt, dann schreibe deren Inhalte beide auf -1 oder mach von mir aus sowas, daß Du das oberste Bit setzt oder halt die Zahl mit ! negierst, oder ähnliches, Hauptsache man sieht, ob die Karten aufgedeckt sind oder nicht. Sind alle Karten aufgedeckt ist das Spiel beendet. Wird eine falsches Kartenpaar aufgedeckt ist der nächste Spieler dran. Wird dasselbe Kartenpaar aufgedeckt darf der Spieler nochmal. Jetzt mußt Du den ganzen Spaß halt noch in eine brauchbare Programmstruktur bringen und fertig ist das Spiel. Zitieren
TingleTangle Geschrieben 5. September 2001 Geschrieben 5. September 2001 Ich wuerde das auch mit einem zweidimensionalen Feld machen. Aber als Datentyp für dieses Feld würde ich mir eine Struktur anlegen mit Typen und Statusinfo: #pragma pack(1) struct Karten { unsigned char TypeOfCard; //Was für eine Art von Karte unsigned char State; //Ist die Karte aufgedeckt }; #pragma pack() Oder was du sonst noch brauchst. Jetzt brauchst du nur noch eine Routine die immer zweimal einen Typ von Karte zufällig auf die Positionen verteilt. Und eine die während des Spiels checkt ob bei 1. und 2.Karte Karten.TypeOfCard gleich ist, und in diesem Fall Karten.State auf 1 setzt. P.S.: Vergiss die pragma's falls dein Compiler nichts damit anfangen kann. <FONT COLOR="#a62a2a" SIZE="1">[ 05. September 2001 09:36: Beitrag 1 mal editiert, zuletzt von DocNeo ]</font> Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.