Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Nimm-Spiel Programmierung im Informatikkurs


gowoot06 - So 28.01.07 16:43
Titel: Nimm-Spiel Programmierung im Informatikkurs
Hallo,

wir sollen im Infokurs das NIM-Spiel programmieren.

Zum Aufbau und der Spielweise:
Es gibt drei Häufchen mit 3, 5 und 7 Streichhölzern.
Man darf abwechselnd soviele Streichhölzer nehmen wie man will, aber mindestens eins und nur aus einer Reihe.
Wer das letzte Streichholz nimmt verliert.

Die Oberfläche und so ist kein Problem, aber wir sollen einen Computergegner einbauen un da hab ich keine Ahnung wie das gehen soll(genauso wie alle anderen aus dem Infokurs).

Vielleicht kann mir ja hier einer helfen, eins seiner Programme schicken(falls jemand schon sowas hat) oder einen Denkanstoss geben.

Danke im Vorraus.


Martok - So 28.01.07 16:53

In Delphi gemacht hab ich sowas zwar noch nie, aber ich kenne eine JavaScript-Version: hier [http://www.alraft.de/altenhein/nim.htm].

Das Script steht hier drin: http://www.alraft.de/altenhein/nim_idx.htm

Vielleicht kannst du dir da ja was ableiten?


gowoot06 - So 28.01.07 17:03

Irgendwie nicht, sorry. Also ein Denkanstoß wie man den KI-Teil des Quellcodes gestaltet wäre wirklich schön.

Gewinnsituationen sind ja klar:

2-4-6
1-4-5
1-2-3
1-1-1
0-2-2
0-3-3
0-4-4
0-5-5
0-0-1


MrFox - So 28.01.07 18:43

Na also, die KI könnte einfach mit aller Kraft auf diese Gewinnsituationen hinarbeiten bzw. Situationen errechnen, die zu den Gewinnsituationen führen und daraus wiederrum neue Situationen die zu den Situationen führen die zu den Gewinnsituationen führen usw. So lässt sich meines Erachtens sogar für jeden Zug die absolut richtige Handlungsweise bestimmen.


lutz - So 28.01.07 18:46

ja das ist ja irgendwie klar, aber wie könnte man sowas bewerkstelligen?


gowoot06 - So 28.01.07 20:08

Ja genau liegt ja leider das Problem.
Wie soll man denn sowas unter Zuhilfenahme der Gewinnsituationen (s.o.) bewerkstelligen?


Jann1k - So 28.01.07 20:40

Naja, also ein Anfang wäre es ja schonmal, dass man den Computergegner einfach immer zufälllig ein paar Hölzer nehmen lässt, bis eine Situation auftritt in der er sicher gewinnen kann. (kann man ja über if-Abfragen überprüfen) ab da lässt man ihn dann halt nach einem vorher festgelegten Plan spielen.


Martok - Mo 29.01.07 01:11

Ich hab mich nochmal schlau gemacht, hier noch ein Paar Links:

http://www.csm.astate.edu/secret.html
http://www.mathematische-basteleien.de/nimspiel.html
http://de.wikipedia.org/wiki/Nim-Spiel

Ist allerdings sehr Mathe-Theorie-lastig. Am weitesten wirst du wohl tatsächlich kommen, wenn du den Quelltext von dem Javascript analysierst.