Tic tak toe, wie kann man so ein Spiel umsetzen?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • So, jetzt habe ich noch ein bisschen umgestellt (wo die Sofortgewinnprüfung statt findet) und jetzt schaut es gut aus. Die Wertungen sind jetzt symmetrisch (wenn nur ein Feld vom Gegner gesetzt ist) und ich habe bislang noch nicht gewonnen.
      Das neue, komplette Programm:
      tic-tac-toe-KI-V0.22.bas
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Das ist ja prima. Dann bist du der erste, den ich kenne, der einen solchen rekursiven Alg. umgesetzt hat.
      In der Funktion Teste_auf_Gewinn ist der erste Check übrigens doppelt.
      Ich nehme an, du lässt das Programm beginnen. Wohin setzt er denn, wenn du in die Ecke gehst? Nimmt er immer das gleiche Feld, egal welche Ecke du besetzt?

      Falls du anfängst, dann setze doch mal oben rechts in die Ecke, also Feld 0. Wenn das Programm dann auf Feld 1, 2, 3, 5, 6 oder 7 geht, kannst du gewinnen.
    • Ich werde einen kleinen Film drehen, dann siehst du die Wertungen, die zu Computers Zug geführt haben. Da werde ich deine Zugvorschläge probieren.
      Wenn ich das jetzt wirklich geschafft habe, müsste ich noch ein Verfahren ersinnen, dass bei mehreren, gleichwertigen Zügen einen davon zufällig wählt. Also Film folgt bald...
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Lange Rede, kurzer Film

      Bei dem Startbild des Filmchens sieht man, dass etliche Felder die gleiche Wertung haben. Da der Computer rechts oben mit der Suche nach dem besten Zug beginnt und da ein günstiger Zug wäre, setzt er den gleich. Um das Spiel etwas variantenreicher zu gestalten, soll eben jetzt unter den bestbewerteten Zügen gelost werden.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Das Würfeln bei mehreren besten Zügen:
      Vorgaben: ein array mit 9 integer-Elementen. Der index eines Elementes ist der Zug.
      zB. (siehe Bildchen vom Film)
      Ergebnis(0)=0
      Ergebnis(1)=-14
      Ergebnis(2)=0
      Ergebnis(3)=0
      Ergebnis(4)=-30
      Ergebnis(5)=0
      Ergebnis(6)=0
      Ergebnis(7)=-30
      Ergebnis(8)=0
      Die besten Züge sind hier die mit dem Wert 0 Das wäre rechts oben, links oben, rechts mitte, links mitte, rechts unten, links unten.
      Mein aktueller Gedanke:
      den besten Wert ermitteln, mit einer for n=0 to 8 Schleife (BestWert).
      jetzt mit rnd(9) eine Zufallszahl (Zz)zwischen 0 und 8 generieren, den Wert Ergebnis(Zz)=BestWert? mit dem besten Wert vergleichen, sind beide Werte gleich, dann ist dieses Zz der Zug. Sind die Werte verschieden, nochmals Rnd(9) und wieder vergleichen. Das solange, bis ein index mit dem besten Wert dazu getroffen wurde.
      Hat jemand eine elegantere Methode?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • ledblu schrieb:

      hast Du vielleicht es vor das Proiekt zu verfügung zu stellen?

      Habe ich gemacht, siehe hier
      tic tac toe minimax-Algorithmus und Rekursion

      Bei dieser Gelegenheit auch mal einen Dank an meine Unterstützer, Tippgeber und Mitdenker :rolleyes:
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------