Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Strategie im Jumper (https://www.delphipraxis.net/155592-strategie-im-jumper.html)

xxsasch4xx 30. Okt 2010 13:46

Strategie im Jumper
 
Hey ich will in dem spiel Jumper (http://upload.wikimedia.org/wikipedi...litaire_01.jpg)
Einen Strategie Button programmieren auf den man während dem spielen klicken kann egal in welcher Position man sich befindet, und dann sagt einem das Programm welche 2 Steine man als nächstes als sinnvollstes bewegen soll und markiert diese beiden Felder. Ich habe aber noch keinen Ansatz auf eine Strategie gefunden und wollte fragen ob ihr vielleicht ein paar Tipps geben könnt.
Benutze Delphi 7 Version.

Namenloser 30. Okt 2010 14:54

AW: Strategie im Jumper
 
Ich würde das per Backtracking lassen.

D.h. dein Programm nimmt zunächst den ersten möglichen Zug, prüft ob weitere Züge möglich sind, nimmt dann wieder den ersten möglichen usw... Falls irgendwann keine Züge mehr möglich sind, aber noch Steine übrig, geht das Programm einen Schritt zurück und versucht den nächsten Schritt. Wenn alle Züge durchprobiert sind, geht es noch einen Schritt zurück usw.

Klingt jetzt recht abstrakt, aber im Wikipedia-Artikel ist das ganze genauer erklärt. Außerdem gibt es viele Beispiele dazu, auch in Delphi.

xxsasch4xx 30. Okt 2010 15:12

AW: Strategie im Jumper
 
aber wenn der user bereits die hälfte der steine bewegt hat dann würde es ja garkeine lösung mehr geben und das programm müsste die strategie anbieten in der am ende am wenigsten steine auf dem feld stehen würden.

Namenloser 30. Okt 2010 15:16

AW: Strategie im Jumper
 
Dann bleibt wohl kaum was anderes als Brute Force übrig... jedenfalls fällt mir nichts besseres ein. Man könnte zwar irgendeine Heuristik verwenden, aber dann kann man nicht sicher sein, wirklich die optimale Lösung zu haben.

xxsasch4xx 30. Okt 2010 15:33

AW: Strategie im Jumper
 
hört sich ziemlich komplizziert an. ich hab das spiel selbst schon programmiert damit kann man schon spielen. aber ich wollte das mit der strategie noch reinbringen weil ich vorher noch nie sowas gemacht habe und mich für neues bereit gefült hab aber jetzt weiss ich nicht ob ich das hinbekomm :?

Namenloser 30. Okt 2010 16:16

AW: Strategie im Jumper
 
Kompliziert ist Brute Force eigentlich überhaupt nicht - im Gegenteil, es ist der einfachste Lösungsalgorithmus, den es gibt - allerdings auch der ineffizienteste, denn dabei werden einfach alle Möglichkeiten durchprobiert.
Je nach Komplexität des Spiels kann das vertretbar sein oder auch nicht - bei Tic Tac Toe würde das Lösen mit dieser Technik wahrscheinlich nur wenige Millisekunden dauern, während z.B. Schach überhaupt nicht lösbar wäre, weil aller Speicher der Erde nicht ausreichen würde, um sämtliche möglichen Züge zu speichern - und die Erde selbst würde wahrscheinlich auch nicht lange genug bestehen, bis aktuelle Hardware alles durchgerechnet hätte.
"Jumper" bzw. "Solitär" (so kenn ich es) wird von der Dauer her irgendwo dazwischen liegen, aber definitiv näher bei Tic Tac Toe als bei Schach. Ich kann aber so nicht abschätzen, wie lange es effektiv dauern würde. Am besten, du probierst es einfach mal aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz