Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

moonwalker

Frischling

  • »moonwalker« ist der Autor dieses Themas

Beiträge: 7

Wohnort: derzeit New York

  • Private Nachricht senden

1

02.04.2010, 14:14

Vier Gewinnt Gewinnüberprüfung

Hallo!

Bin neu hier und hoffe das das Thema hier am richtigen Platz ist!


Programmiere gerade ein einfaches Vier Gewinnt in c++. Ist eine Konsolenanwendung und ist von der Grafik her, sehr einfach gehalten.
Jetzt möchte ich gerne wissen wie man am besten Überprüft ob vier gleiche Felder nebeneinander, übereinander und schräg liegen. Habe es bis jetzt so gehalten, das einfach Überprüft wird ob z.B. das Feld [x][y] gleich Feld[x+1][y] ist. Wenn dies der Fall ist wird ein Zähler hochgezählt. Das ist leider keine gute Lösung den es kann auch vorkommen das zwischen Paaren ein Feld frei ist und trotzdem derjenige gewinnt.

Hoffe das mir wer einen guten Lösungsvorschlag posten kann
mfg
der computergegner ist nur so klug wie der, der ihn programmiert hat

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

02.04.2010, 14:31

wie meinst du das? in deinem vier gewinnt kann man gewinnen wenn eine lücke zwischen zwei paaren ist? ich habs immer so gespielt dass sie alle nebeneinander liegen müssen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

moonwalker

Frischling

  • »moonwalker« ist der Autor dieses Themas

Beiträge: 7

Wohnort: derzeit New York

  • Private Nachricht senden

3

02.04.2010, 14:36

das ist eines der Probleme
der computergegner ist nur so klug wie der, der ihn programmiert hat

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

02.04.2010, 14:52

ach das ist unerwünscht? jetzt versteh ich!
mögliche lösung: wenn ein neuer stein gesetzt wird gehst du von diesem stein in jede richtung. sollte ein gleichfarbiger stein benachbart sein setzt du einen zähler auf 2 und gehst einen weiteren schritt in diese richtung bis der zähler auf 4 steht, sollte auf dem weg eine lücke oder ein gegnerische stein sein gehst du vom ausgangsstein genau in die andere richtung und zählst. solltest du jetzt eine lücke oder ein gegnerischen stein auffinden bevor du die 4 erreichst gilt das spiel als nicht gewonnen, wenn du die 4 erreichst ist das spiel gewonnen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

5

02.04.2010, 15:54

Im Prinzip gibt es 4 Richtungen, in der 4 Steine nebeneinander liegen können (hoch runter, 2 mal diagonal) und du musst nur von jedem Stein aus prüfen, ob in dieser Richtung eine solche Kette startet.
Natürlich ist das nicht sonderlich effizient, aber es ist einfach und funktioniert.
Lieber dumm fragen, als dumm bleiben!

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

02.04.2010, 17:41

es klingt so als müsste er in jeder runde alle steine kontrollieren. es reicht aber immer nur den letzten und seine nachbarn zu überprüfen oder mach ich da nen denkfehler?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

7

02.04.2010, 17:45

Ne ist schon richtig NachoMan. Jonathan denkt nur, dass seine Lösung einfacher zu implementieren wäre, was ich allerdings auch nicht so sehe. Warum alle Steine + deren Richtungen durchgehen, wenn der neu eingeworfene Stein reicht?
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

moonwalker

Frischling

  • »moonwalker« ist der Autor dieses Themas

Beiträge: 7

Wohnort: derzeit New York

  • Private Nachricht senden

8

02.04.2010, 18:18

Danke für die Hilfe!

Werde die Seiten des letzten Steines immer kontrollieren. Ist die beste vorgeschlagene Lösung.


mfg
der computergegner ist nur so klug wie der, der ihn programmiert hat

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

9

02.04.2010, 21:33

Aber achte auch drauf, dass der neue Stein auch innerhalb einer Kette sein kann:

Zum beispiel wird aus

Quellcode

1
2
3
.....
xx.x.
oxoox


Quellcode

1
2
3
.....
xxXx.
oxoox


Das heißt, du musst von dem Stein in beide Richtungen Prüfen und dann die Anzahl der Steine in beide Richtungen zusammenzählen.

D.h. dies musst du nur noch in den 2 Diagonalen und senkrechter/waagrechter Richtung machen.

Alle 8 Richtungen einzeln zu prüfen wäre falsch.

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

02.04.2010, 22:34

joa das hab ich scho erklärt... entweder hast du es net gelesen oder es ist so schwer verständlich geschrieben...
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige