tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
3020
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sawamin sawamin ist offline Mitglied
    Registriert seit
    Dec 2004
    Beiträge
    13
    Hallo Allerseits,

    programmiere ein TicTacToe-Spiel gegen den Computer, als Konsolenanwendung (objektorinetiert). Nun komme ich auf keine Idee, wie ich die Strategie des Computers realisiere. Ich kann mit srand den Computer zufällig einen Zug machen lassen, bzw. mit Hilfe von <ctime> habe ich bei jedem Spiel einen anderen Zufall. Aber dies entspricht nicht dem Sinn des Spiels.

    Nach der Aufgabenstellung (ist eine Praktikumsaufgabe an einer FH) soll eine private Methode den Sieger ermitteln. Ich dachte dies realisiere ich mit einer bool Funktion, die true zurückgibt, falls eine der 8 Gewinn-Kombinationen eintritt.

    Nur wie bringe ich meinem Rechenknecht genügend verschiedene Strategien bei, dass er versucht 3 aneinanderliegende Kästchen (im Array) zu belegen und möglichst viele verschiedene Zugvariationen kennt?

    Über Anregungen würde ich mich freuen!
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hallo,
    du solltest dich mal mit dem Mini Max Algo auseinandersetzen, ich denke das is genau das was du suchst...

    Zur Einführung vielleicht das hier:

    http://de.wikipedia.org/wiki/Minimax-Algorithmus

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    sawamin sawamin ist offline Mitglied
    Registriert seit
    Dec 2004
    Beiträge
    13
    Guter Hinweis mit dem Minimax-Algo!

    thx 2 RedWing

    sawamin
     

  4. #4
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Gerade bei diesem Spiel wäre es simpel(und interessant), einfach mal sämtliche Spielsituationen auf Gewinnmöglichkeiten zu testen. Es gibt nur maximal 362880 (9!) unterschiedliche Situationen (inklusive Spiegelungen und ohne Berücksichtung bereits verlorener Partien), wenn ich mich nicht irre. Diese könnte man alle generieren und gemeinsam mit dem Zug, der zu ihrem Entstehen führt, speichern, und dann nacheinander bewerten. Alle Züge, die zu einer Verlustsituation führen, kann man dann nach und nach von hinten her eliminieren, so dass irgendwann nur noch Züge übrig bleiben, die immer zum Sieg führen.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  5. #5
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Zitat Zitat von Kachelator
    Gerade bei diesem Spiel wäre es simpel(und interessant), einfach mal sämtliche Spielsituationen auf Gewinnmöglichkeiten zu testen. Es gibt nur maximal 362880 (9!) unterschiedliche Situationen (inklusive Spiegelungen und ohne Berücksichtung bereits verlorener Partien), wenn ich mich nicht irre. Diese könnte man alle generieren und gemeinsam mit dem Zug, der zu ihrem Entstehen führt, speichern, und dann nacheinander bewerten. Alle Züge, die zu einer Verlustsituation führen, kann man dann nach und nach von hinten her eliminieren, so dass irgendwann nur noch Züge übrig bleiben, die immer zum Sieg führen.
    Genau das macht der Algorithmus auch.
    Man kann den Spielbaum ohne weiteres (bei Tic Tac Toe) bis zum Schluss
    aufbauen

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  6. #6
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Genau das macht der Algorithmus auch.
    Schon klar. Ich dachte aber an eine ganz simple Brutalo-Version, die wirklich nur mit vollständiger Auswertung arbeitet.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  7. #7
    ocb ocb ist offline Mitglied Silber
    Registriert seit
    Feb 2005
    Beiträge
    60
    TicTacToe ist auch ein, mehr oder weniger, interessantes Testobjekt für neuronale Netze.
     

Ähnliche Themen

  1. TicTacToe
    Von anfängerregnäfna im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 11
    Letzter Beitrag: 21.08.09, 19:10
  2. Echtzeit-Strategie-Spiele
    Von arkanoid im Forum Smalltalk
    Antworten: 26
    Letzter Beitrag: 04.12.08, 14:44
  3. Strategie zur parallelen Datenübertragung
    Von port29 im Forum Coders Talk
    Antworten: 0
    Letzter Beitrag: 28.11.08, 06:30
  4. Strategie bei Überprüfungen von Formularfeldern?
    Von profy im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 21.04.05, 00:02