BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Projekte (http://www.black-board.net/board.php?boardid=108)
--- C++ 4 Gewinnt (http://www.black-board.net/thread.php?threadid=15674)


Geschrieben von phlox81 am 23.01.2004 um 17:36:

  4 Gewinnt

Moin, hab mal aus Langeweile n kleines 4 Gewinnt-Spiel gecodet.

4 Gewinnt

Devil



Geschrieben von CDW am 23.01.2004 um 18:09:

 

hi, mich würde interessieren wie du die KI gmacht hast (nicht der code, sondern vom prinzip her Augenzwinkern )... also vom ansatz her würde ich z.b einfach mit rekursion alle möglichkeiten ausprobieren und dann denn eben den (per backtracking ermittelten) günstigsten zug wählen (schwirigkeitsgrade wären dann irgndwie: leicht - 3 züge im voraus, mittel 5, schwer 10 und unmöglich eben komplett).



Geschrieben von phlox81 am 23.01.2004 um 18:16:

 

Nix Rekursion. Das wäre viel zu viel aufwand.
Ich hab es ganz einfach gelöst:
Man hat ja breits ne Funktion die Prüft ob man gewonnen hat.
In der 'KI' ruf ich dann in einer schleife diese funktion auf,
und manipuliere vorher das feld (ist char **). Das tue ich
für alle Möglichkeiten, wo ich einen Stein hintuen könnte.
Dann überprüfe ich: Hat die KI gewonnen, wenn ja -> Zug.
wenn nein, hat der Spieler evtl. jetzt gewonnen ? wenn ja,
-> Zug, somit verhindere ich, das du auf einfach gewinnst.
Und dann prüfe ich abschließend, falls dies nicht zutrifft,
ob die KI die Möglichkeit hat 3 Steine in eine Reihe zu bekommen,
wenn ja -> Zug, wenn nein gibts nen Zufallsstein.

Somit wirkt die KI dann recht intelligent Augenzwinkern

Devil



Geschrieben von Milchbubi am 23.01.2004 um 22:32:

 

das is ein prob. wen das spiel 4 gewinnt heist gewinnt der cpu immer wenn er nur 3 hat



Geschrieben von Keef am 23.01.2004 um 23:27:

 

woher weiß man eigentlich wie und wo man den code einträgt, um solche programme erstellen zu können? geht des nach einem bestimmten schema?



Geschrieben von phlox81 am 24.01.2004 um 00:52:

 

@Player
Was meinst du genau ? Die KI ist nicht so dumm dich jedes mal
gewinnen zu lassen.

@Keef
Wenn man viele Jahre programmiert, lernt man sowas. Ansonsten wundert man
sich drüber. Du gehörtst wohl zu der Sorte, die sich immer wundern wird...

Devil



Geschrieben von CDW am 25.01.2004 um 17:57:

 

@devil: ich weiß was Player meint:
+++ Bild konnte nicht geladen werden +++
falls das Bild nicht zu sehen ist:
http://cdw.de.vu/4.PNG
da muss jemand sein "überprüfe ob 4 Steine in einer Reihe" Algo nachbessern Augenzwinkern
PS: hab mich ein bisschen mit 4 gewinnt beschäftigt - ist ein Sport für sich - mit eröffnungsdatenbanken usw. einfach erstaunlich.



Geschrieben von phlox81 am 25.01.2004 um 23:52:

 

Das Bild ist ein Fake Augenzwinkern

Ist mir aber auch schon aufgefallen...

Devil



Geschrieben von SmO am 29.01.2004 um 12:00:

 

Das was du Programmiert hast is echt nice, jedoch hab ich eben grad 30 mal gespielt und net einmal verloren großes Grinsen
wär cool die kI noch zu steigern da der comp sehr leicht auszutricksen ist fröhlich
oder vl ne funktion einzubauen wo er die spielzüge des gegners aufzeichnet und die kurz analysiert um beim nächsten spiel net wieder den gleich fehler zu machen und das dann auch speichert, sodass er es beim nächsten öffnen immer noch weiß! smile



Geschrieben von Medusa am 29.01.2004 um 14:04:

 

Bugreport:


1) Wenn man zwischen 2 Feldern klickt, wird das als "Legen" erkannt, aber es wird kein Punkt gesetzt Augenzwinkern

2) Wenn in einer Spalte nur noch die oberste Zelle frei ist, kann dort nicht gelegt werden. Wie in Punkt 1 wird das Legen ignoriert, und der Computer ist dran. Er hat dann quasi n Zug mehr böse großes Grinsen
2.1) Wenn dann zufällig der Computer (der kann es großes Grinsen ) in die oberste Zelle legt, wird dieser gelegte Stein beim nächsten Zug entfernt.



Geschrieben von phlox81 am 29.01.2004 um 15:14:

 

Zitat:
Original von Medusa
Bugreport:


1) Wenn man zwischen 2 Feldern klickt, wird das als "Legen" erkannt, aber es wird kein Punkt gesetzt Augenzwinkern

2) Wenn in einer Spalte nur noch die oberste Zelle frei ist, kann dort nicht gelegt werden. Wie in Punkt 1 wird das Legen ignoriert, und der Computer ist dran. Er hat dann quasi n Zug mehr böse großes Grinsen
2.1) Wenn dann zufällig der Computer (der kann es großes Grinsen ) in die oberste Zelle legt, wird dieser gelegte Stein beim nächsten Zug entfernt.


Das ist mir bekannt *g*
Aber mir fehl gerade die Zeit (und Lust) da was zu machen *g*

Devil



Geschrieben von Dj Math am 03.06.2004 um 23:56:

 

sry das ich das thema nochmal hoch lege... aber ist das auch nen bug?

oder hab ich wirklich verloren oder bin ich blind auf den augen weil ich so müde binund kaum noch was erkenne..

+++ Bild konnte nicht geladen werden +++



Geschrieben von phlox81 am 04.06.2004 um 15:46:

 

Zitat:
Original von Dj Math
sry das ich das thema nochmal hoch lege... aber ist das auch nen bug?

oder hab ich wirklich verloren oder bin ich blind auf den augen weil ich so müde binund kaum noch was erkenne..

+++ Bild konnte nicht geladen werden +++


Kann sein.
Aber da ich wichtigere Projekte habe, arbeite ich nicht mehr an dem Programm.
Es sollte eh nur eine Demonstration für die Firma sein.

Devil



Geschrieben von Antion am 14.07.2004 um 11:02:

 

deine KI bescheisst Baby

ist fast wie ein Mensch, großes Grinsen
scheisse man hast gut programiert, nichts mit logik. großes Grinsen

Antion


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH