Archivlink: javarea.de Forum > Soft- & Hardware Forum > C: xox KI
Vollständigen Link anzeigen: javarea.de Forum > Soft- & Hardware Forum > C: xox KI
Pages: [1]
| geschrieben von Simon am 27.03.2006 - 18:42 |
Hallihallo
Wir haben z.Z. das Fach C-Programmierung im Unterricht; und dies ist nicht immer so interessant. Deshalb habe ich mir aus Langeweile ein 2Player-TicTacToe gebastelt.
Nun möchte ich dies auf ein 1Player-Spiel reduzieren, und eine "KI" erstellen.
Das Problem ist, mir fehlt der Denkansatz.
Eine Möglichkeit währe, alle erdenglichen Fälle durch zu programmieren. Doch dies gibt, selbst mein TTT enorme verschiedene Möglichkeiten, und von einem Vier gewinnt oder Schach möcht ich noch gar nicht sprechen.
Wie funktioniert die "richtige" Möglichkeit.
Habt ihr Ideen, wie dies etwa ablaufen könnte?
Danke
Simon |
| geschrieben von Matneu am 27.03.2006 - 19:11 |
Eine richtige KI wirst Du bei TicTacToe nicht wirklich sinnvoll entwickeln können, da TicTacToe im Zweifelsfalls IMMER auf ein unentschieden hinausläuft. Zumindest wenn der Spieler es halbwegs beherrscht. Vielleicht solltest Du diese Taktik einbauen.
Taktik für den, der anfängt: Man setze in eine Ecke, danach in die gegenüberliegende Ecke. Beim dritten Zug setzt man in eine der beiden noch freien Ecken, um gleich zwei Möglichkeiten zu haben, so dass der Gegner nur eine Möglichkeit schliessen kann
Taktik für den, der als zweites anfängt: Die Taktik des "Anfängers" zu stören, indem der erste Stein / das erste Kreuz / der erste Kreis in die Mitte gesetzt wird. Danach setzt man immer so, dass man im Zug danach eine Linie vollmachen könnte, so dass der Anfänger sein Ziel nicht mehr verfolgen kann, da er den Gegner immer blockieren muss. Fazit: Unentschieden.
So far...
Matthias
P.S.: Alle erdenklichen Fälle sind auch wiederum nicht so viele, da es max. 9! verschiedene Möglichkeiten gibt, von denen sicherlich die Mehrheit schwachsinnig ist bzw. zum vorzeitigen Sieg führt. 9! = 362'880. Da sollte man mit einem halbwegs normalen Rechner in annehmbarer Zeit durchspielen können. Was allerdings ein TTT ist und vor allem was der schafft weiss ich nicht. |
| geschrieben von Simon am 27.03.2006 - 19:41 |
Die Taktiken sind mir alleweile bekannt.
Es gibt insgesammt 8 Möglichkeiten zu gewinnen.
Was mir aber Probleme Bereitet: Der Spieler setzt in irgend ein verfluchtes Feld, was kein Trottel machen würde. Wo also setzt dann der PC ein? Und er sollte so setzen, dass er gewinnen könnte. Also nicht einfach durch ein Zufallsprinzip. Wie also soll er sich errechnen können, wo er beim ersten Zug, beim zweiten, beim dritten etc setzen soll?
Simon
Ps. TTT= TicTacToe, was wiederum auch xox genannt wird  |
| geschrieben von okley am 27.03.2006 - 21:52 |
Hallo Simon
Im Java Unterricht vor n par Jahren hab ich mir aus 'langeweile' auch ein TTT gebastelt.
Als Anhang hab ich dir ne rar Datei mit den sourcefiles und der exe.
Die KI ist nicht ohne Fehler, deckt jedoch fast alle Fälle ab. Der eine Bug der noch ist, kann man auch beheben, wenn man ihn nur identifiziert 
Wir haben uns daran gesetzt verschiedene Spiele und ihre Zugmöglichkeiten aufzuschreiben, und haben ferstgestellt, dass es immer ein Muster gibt, das zum Erfolg führt, bzw. dass es (logischweise) eine begrenzte Anzahl usecases gilt abzudecken, die von jeder Seite her betrachtet angewendet werden können.
Am besten wirfst du mal ein Auge auf den Code, vielleicht findest du da etwas das s dir weiterhilft. |
| geschrieben von okley am 27.03.2006 - 21:54 |
Hallo Simon
Im Java Unterricht vor n par Jahren hab ich mir aus 'langeweile' auch ein TTT gebastelt.
Als Anhang hab ich dir ne rar Datei mit den sourcefiles und der exe.
Die KI ist nicht ohne Fehler, deckt jedoch fast alle Fälle ab. Der eine Bug der noch ist, kann man auch beheben, wenn man ihn nur identifiziert 
Wir haben uns daran gesetzt verschiedene Spiele und ihre Zugmöglichkeiten aufzuschreiben, und haben ferstgestellt, dass es immer ein Muster gibt, das zum Erfolg führt, bzw. dass es (logischweise) eine begrenzte Anzahl usecases gilt abzudecken, die von jeder Seite her betrachtet angewendet werden können.
Am besten wirfst du mal ein Auge auf den Code, vielleicht findest du da etwas das s dir weiterhilft.
http://bubblez.ambitiouslemon.com/u....6.2004.rar |
| geschrieben von Simon am 28.03.2006 - 20:08 |
@ Danny
| Zitat | | | Allerdings ist in der Praxis der vollständige Aufbau eines Suchbaums nur bei sehr einfachen Spielen wie Tic-Tac-Toe möglich. |
Scheint ziemlich genau zuzutreffen 
@ Okley
Ich werd mich mal durch den Javacode boxen Wird mir sicherlich weiterhelfen
Danke euch beiden |
|