Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Memory-Game Algorithmus

Empfohlene Antworten

Veröffentlicht

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

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.

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>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.