Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spiel "5 in einer Reihe" Such Algorithmus

Spiel "5 in einer Reihe" Such Algorithmus
25.08.2003 11:18:25
minimaster
Hallo,
ich habe ein kleines Spiel in Excel programmiert. "Fuenf in einer Reihe". Grundsaetzlich ist es voll funktionsfaehig. Jedoch habe ich es noch nicht geschafft den idealen Suchalgorithmus fuer den besten Weg zum gewuenschten neuen Feld (soweit denn moeglich) zu finden. Vieleicht hat ja jemand Spass an dem Spiel und Lust einen vernuenfitigen Algorithmus auszuarbeiten.
https://www.herber.de/bbs/user/701.xls
Tips sind jederzeit willkommen.
Gruss Hartmut

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
26.08.2003 14:02:19
joel
hallo
ich habe mir deinen programmcode nicht angesehen, jedoch beim spielen bemerkt, dass da wirklich was nicht so zeitoptimiert funktioniert..
kann dir hier auch einen vorschlag machen, wie es viel schneller ginge. programmieren musst dus leider selbst.. die zeit kann ich mir nicht nehmen..
denke dir die startposition als wasserquelle. von dort aus läuft nun wasser in die vier umliegenden felder (nach oben, unten, links und rechts) und zwar nur, wenn diese leer (resp. weiss) sind. diese kannst du dann z.B. auf einer hilfstabelle einfärben.
nun hast du in diesen vier feldern neue "quellen", von denen aus du das spiel wiederholst
am besten definierst du wohl ein dynamisches feld, dass du jeweils mit "quellen" erweiterst, resp. "quellen" löschst, falls von diesen bereits wasser geflossen ist.
sobald du keine "quellen" mehr hast, sind alle felder eingefärbt, die von deinem startpunkt aus erreichbar sind.
nun brauchst du in deiner hilfsquelle nur die farbe am zielpunkt anzuschauen.
hoffe du kannst einigermassen nachvollziehen, wie ich das meine.
werde evtl. heute abend eine routine schreiben, damit das ganze sicher klar rüberkommt.
bis dann viel spass
gruss

Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
27.08.2003 08:56:25
minimaster
Danke fuer Die Anregung. Das ist ein guter Ansatz um grundsaetzlich zu bestimmen ob es einen Weg gibt. Ich wuensche mir jedoch das ein moeglicher Weg auch Schritt fuer Schritt visualisiert werden kann. Und am besten wenn das auch noch der Weg waere mit der geringst moeglichen Schrittanzahl.

AW: Spiel "5 in einer Reihe" Such Algorithmus
27.08.2003 09:01:32
joel
hallo
soso.. du hast vielleicht wünsche. werd mal n bisschen büffeln (muss aber noch was arbeiten nebendran :-))
war gestern abend jedenfalls noch ein bisschen kreativ! schaus dir mal an, evtl. lässt sich darauf was aufbauen
https://www.herber.de/bbs/user/740.xls
hab einfach drauflosgeschrieben (ohne konzept).. liesse sich schöner machen!
gruss

Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
27.08.2003 11:07:22
joel
hallo
bist du schon weiter? hab mir kurz überlegt, wie das lösbar wäre, hab auch ne lösung gefunden. jedoch vielleicht bisschen zu kompliziert, um zu erklären. am besten, ich versuche mir heute abend zeit zu nehmen, um das ganze zu programmieren, dann ists selbsterklärend.
was mich aber noch interessieren würde, wäre dein jetziger lösungsansatz. hatte keine lust, deinen quellcode zu analysieren (sorry), kannst mir deine idee nicht kurz beschreiben? vielleicht lässt sich darauf aufbauen..
gruss

AW: Spiel "5 in einer Reihe" Such Algorithmus
27.08.2003 13:03:52
minimaster
Gebe zu das mein Code ziemlich wuest ist. Wenig Erlaeuterungen und noch nicht mal Variablen definitionen.
Aber nun kurz zu meiner bisherigen Strategie einen kurzen Weg zu finden (oder auch nicht) der auch Schritt fuer Schritt angezeigt wird.
Am Anfang Vergleich Start und Zielkoordinaten um eine jeweilige 1. Startsuchrichtung fuer x und y Richtung festzulegen.
dann Schleife mit folgendem Inhalt.
1.Check: Weil es oft so simpel ist: Pruefe ob von derzeitiger Position ein gerader oder L-foermiger Weg frei ist. Falls ja alles easy, einfach hinlaufen.
2. Falls kein gerader Weg frei ist Pruefe ob Feld nebenan frei ist. Wenn ja gehe dorthin. Wenn nein versuche andere Richtung. Wenn auch nicht aendere Suchrichtung. Nach jedem Schritt ueberpruefung ob Zielko-ordinaten erreicht sind.
In der Schleife laeuft ein Zaehler mit der ab und zu dafuer sorgt das per Zufallsgenerator die Suchrichtungen geaendert werden wenn es irgendwie nicht recht voran geht mehr, sprich es geht nur hin und her ohne Annaeherung an das Ziel.
Naja das Resultat des ganzen ist noch nicht so berauschend. Die ganze Schleifenkonstruktion sieht schon recht kompliziert aus, da ich nach und nach die Kriterien fuer Suchrichtungsaenderungen komplexer gemacht habe.
Viel Spass beim Tuefteln. Ich habe auch schon etwas das Internet abgegrast nach Algorithmen diesbezueglich. Leider bin ich nur auf relative komplexe mathematische Theorien gestossen wo mir das Mathematikfachwissen fehlt um es auf mein Excelproblem zu uebertragen, geschweige denn das ich die Theorien ueberhaupt richtig verstanden habe.

Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
28.08.2003 09:25:55
joel
hallo
also, hab meine idee mit den "quellen" erweitern können.. schau dir den quellcode an,
https://www.herber.de/bbs/user/750.xls
ich kann nur soviel dazu sagen:
ich habe ohne bleistift programmiert: will heissen, wenn ich irgendwo ne variable brauchte, hab ich diese halt irgendwo definiert, das gleiche mit funktionen, etc.
ebenfalls habe ich die ursprüngliche idee nicht verändert. es wäre z.B. nicht mehr notwendig, alle Zellen mit der Farbe "WASSER" einzufärben, die abfrage könnte z.B. über den wert stattfinden..
es ging einfach darum, eine mögliche lösung zu präsentieren. deine aufgabe ist nun, den algorithmus für dein programm optimiert umzuschreiben..
viel spass

Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
28.08.2003 09:27:36
joel
ach ja, schick mir doch dann deine neue version, würds dann gern testen
(tschoegg@hotmail.com)
thx

AW: Spiel "5 in einer Reihe" Such Algorithmus
28.08.2003 15:13:54
minimaster
Das sieht grossartig aus. Sollte kein grosses Problem das mit meinem Code zu verschmelzen. Vielen Dank fuer die excellente Hilfe. Natuerlich werde ich das fertige Spiel zusenden. Kann aber ein paar Tage dauern. Bin im Moment ziemlich busy mit anderen Dingen.
Gruss
Hartmut

AW: Spiel "5 in einer Reihe" Such Algorithmus
29.08.2003 15:07:21
minimaster
Beigefuegt das Excelfile mit dem zusammengebastelten Makros.
Spiel lauft bestens.
https://www.herber.de/bbs/user/785.xls
Nochmals besten Dank fuer die excellente schnelle Hilfe.

Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
29.08.2003 15:26:05
joel
hallo
läuft ja prima, siecht auch super aus wie der stein so dahinwandert (viel besser, als wenn er nur an zielpunkt gesetzt werden würde).
übrigens: ein "ding" kannst du mit der "beep"-anweisung erreichen..
einfach in code am richtigen ort "beep" schreiben. (aus der office hilfe: Die Frequenz und Länge des Signaltons ist von der Hardware und der System-Software abhängig und ist je nach Computer verschieden.)
gruss

AW: Spiel "5 in einer Reihe" Such Algorithmus
29.08.2003 15:43:06
minimaster
Der daemliche Beep wird auf meinem daemlichen Dell laptop nicht wiedergegeben.
Irgend 'ne Ahnung wie ich in Excel-VBA ein wav-file abspielen lassen kann?

Anzeige
AW: Spiel "5 in einer Reihe" Such Algorithmus
29.08.2003 16:11:58
joel
probier erst mal
Application.EnableSound = TRUE, damit die Klangausgabe aktiviert wird..
ansonsten:
1. Lösung

Sub wav()
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run "C:\Windows\Desktop\Test.wav"
End Sub

2. Lösung
Declare

Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long
Call sndPlaySound32("pfad", 1)
3. Lösung.. gibts sicher auch noch, schau mal in der excel-FAQ, da findest du so auf ziemlich alles eine antwort
oder in www.google.ch folgenden suchbegriff eingeben
suchbegriff site:www.herber.de
gruss joel

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige