C++ Bingo Spiel

d0zer

Lt. Commander
Registriert
Aug. 2007
Beiträge
1.040
Hallo Leute

ich muss ein einfaches Bingo Spiel programmieren. Es sollen alles in der Konsole ablaufen.

- Zu Beginn nehmen 3 Spieler teil. Jeder Spieler hat einen Tipp-Zettel (Zahlen 0 bis 19), auf denen er 5 Zahlen "ankreuzen".
- Nun wird jede Runde eine von diesen Zahlen gezogen und mit den "markierten" Zahlen der Spieler verglichen. Gibt es eine Übereinstimmung, so soll die Zahl "markiert" werden.
- Hat ein Spieler alle angekreuzten Zahlen markiert, so gewinnt er und das Spiel endet.


Mein Problem ist, dass ich nicht weiss, wie ich das mit dem "markieren" und "anrkeuzen" mache und das auch noch getrennt für 3 Spieler.

Für jeden Spieler ein eigenes Array oder ein 2D-Array mit Spalten für Spieler und Zeilen für die einzelnen Tippzettel.

Meine Überlegung war, ich nehme für jeden Spieler ein Array (0-19) und setze z.B. beim Element 2, welches für die Zahl 2 steht, eine 1. Später überprüfe ich den Array auf 1en.

Wie stelle ich das an?
Wenn eine 5 gezogen wird, müsste das 5 Element des Array überprüft werden ob da eine 1 steht, richtig?




Habt ihr Anregungen oder Vorschläge wie ich das realisieren könnte?

Gute Nacht
 
Erstell dir eine Klasse Spieler.
Darin zwei ein int Array und ein boolean Array (bin mir grad ned sicher obs in C++ boolean gibt wenn nicht dann halt int) der Größe 5.
Dazu folgende Funktion
void addZahl(int zahl);
void addZahlen(int[] zahlen);
void markZahl(int zahl);
boolean/int allMarked();

Für jeden Spieler eine Instanz laufen lassen fertig.
 
Man könnte das mit dem markieren auch so machen, dass man die Zahl wieder aus dem Array löscht und der Spieler hat gewonnen sobald es leer ist.
Die Ersparnis ist aber zugegebenermaßen recht gering bei 5 Feldern.

Schneller wird übrigens der Vorschlag des TE sein, ein größeres Array zu nehmen, da man es dann nicht durchsuchen muss, sondern genau weiß an welcher Stelle man nachsehen muss, ob der Spieler auf eine Zahl gesetzt hatte.
Dazu zählst du dann einfach in einer weiteres int-Variable, wieviele Treffer ein Spieler hat.

Musst du abwägen, ob dir Speicherverbrauch oder Geschwindigkeit wichtiger sind, bei 3 Spielern und so wenig Zahlen wird es aber keinen spürbaren Unterschied machen, es wäre also vermutlich am vernünftigsten die am besten verständliche Methode zu nehmen.
 
Zuletzt bearbeitet: (2. methode)
Zurück
Oben