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

1

22.04.2008, 23:47

KI für ein 4-Gewinnt

hi
bin momentan dabei ein 4-Gewinnt zu machen und steh dabei jetzt vor folgendem Problem. Und zwar will ich einen Computergegner für das Spiel erstellen. Das funktioniert aber nicht ganz so wie ich das wollte.
also so hab ich mir das gedacht:

Als erstes nachdem der Spieler gesetzt hat schaut der Computer ob er in dem Zug 4 in eine Reihe bekommt wenn ja setzt er da rein wenn nein schaut er ob der Spieler im nächsten Zug 4 in eine Reihe bekommt, wenn ja setzt er so um das zu verhindern. Soweit ist es ja ganz einfach aber wie soll ich das auswerten wenn keiner von diesen Fällen vorliegt, aber das der Computer immer noch so setzt wie ein normaler Spieler auch.

Ich hab mir das so gedacht das ich das ich die immer erst bevor der Computer setzt eine gewisse Suchtiefe mache also abwechselnt Computer und Mensch setzt. Aber da steh ich dann vor dem Problem das ich nicht weiß wie ich das Auswerten soll.

ich hoffe ihr konntet mein Problem vertehen und danke schon mal im voraus.

mfg terminator123

EDIT: Ahja was vielleicht noch wichtig ist das Spiel Programmier ich in C++

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

23.04.2008, 00:38

Also du sagst, dass den nächsten Zug berechnest. Jetzt kannst du ja einfach 4 Züge im voraus berechnen und einen Weg nehmen. Wo du dann hinstellst kann auch ein wenig Zufall sein.

Das du das mit C++ machst spielt bis jetzt noch keine Rolle.. ;) Hast ja keinen Code gepostet und schein ein eher logisches Problem zu sein. :)

3

23.04.2008, 14:03

ok gut danke für die Antwort,
aber mein Problem kann ich dadurch eigentlich nicht so lösen wie ich das wollte.
Denn wenn ich das eh mit Zufall mach brauch ich denn Computer da doch eigentlich gar nicht erst 4 Zügee vorraus rechenen lassen oder???

4

23.04.2008, 15:32

Naja, ich hab das damals so gemacht: Du hast 10 SPalten oder so, also höchstens 10 Möglichkeiten. Jetzt bewertest du jeden Zug und machst den besten.
Wenn du gewinnen würdest, wäre der Zug super. Das zweitbeste ist wenn der Gegner seine 4er Reihe nicht vollbekommt. Ganz schlecht ist, wenn die Reihe voll ist, den dann darf man da ja nicht setzen.
Punkte gibt es auch, wenn man mehrere Steine in einer Reihe hat, den wild verteilen bringt ja nix. Einfache Zwickmühlen geben auch eine Menge Punkte (klassischer Fall: 3 Steine in einer Reihe, links+rechts frei). Wenn man sowas erreicht gibt das fast so viele Punkte wie gewinnen, oder dem Gegner am gewinnen zu hindern. Dem Gegner das fertigstellen einer Zwickmühle zu versauen bringt auch Punkte.
Spiel einfach eine Runde 4 gewinnt und überlege dir bei jedem Zug warum du den machst. Das überträgst du dann.
Lieber dumm fragen, als dumm bleiben!

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

23.04.2008, 18:16

Zitat

Spiel einfach eine Runde 4 gewinnt und überlege dir bei jedem Zug warum du den machst. Das überträgst du dann.


Finde ich einen sehr wichtigen Tipp. Denn da machst du dir Gedanken drüber. Ein wenig Zufall darf aber schon rein, weil man sonst, wenn man einen Trick draussen hat immer gleich gewinnen kann. Also wenn du 2 "gleichwertige" Züge hast, dann einfach per Zufall entscheiden, welchen du machst.

btw:
man schreibt voraus und nicht vor_raus. ;)

Werbeanzeige