![]() |
Strategie im Jumper
Hey ich will in dem spiel Jumper (
![]() 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. |
AW: Strategie im Jumper
Ich würde das per
![]() 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. |
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.
|
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.
|
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 :?
|
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 09:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz