Menu schließen

Info; Delphi; Schlange; Labyrinth

Frage: Info; Delphi; Schlange; Labyrinth
(4 Antworten)


Autor
Beiträge 7242
45
Hi,
hat jemand in Info in seiner Schule (Klasse 12) schon mal ein Programm geschrieben, dass ein zufällig generiertes Labyrinth erstellt (schwarze und weiße Kästchen, zufällig im Canvas Bild) und ein Start-S und ein Ziel-Z.
Wenn man nun einen Weg per ButtonClick suchen möchte, dann soll das programm vom Start, also vom S im Bild, in alle Richtungen prüfen ob das Feld frei ist (also weiß) oder eine Mauer darstellen soll (also schwarz)... Die nächsten Punkte prüfen das gleiche usw. usf. es sol aufhören, wenn es aufs Ziel gestossen ist...

Es sollen übrigens die Koordinaten irgendwie gespeichert werden, damit man den schnellsten Weg zurückverfolgen kann!

Wichtig ist halt irgendein Algorithmus denk ich mal. Hab leider nur kleine Ansätze, die die Erstellung des Labyrinths grafisch betreffen. Ich bin nun daran gescheitert, jedem Feld Koordinaten zuzuteilen... :( Muss das Prog bis Sonntag Abend hochgeladen haben... (!), habs einfach nicht geschafft, weil ich das a) nicht kann und b) viel zu sehr mit meiner facharbeit beschäftigt war.

Wenn das jemand schon bearbeitet hat, dann soll der mal hier posten oder mir ne Nachricht schicken, dann schicke ich gerne meine E-Mail Adresse an ihn. Vielen Dank schon mal im Vorraus

Bitte nur Delphi-fähige Programme. Vllt weiß auch jemand, wo die Musterlösung dazu ist, weil mein Infolehrer die Aufgaben alle aus dem Netz nimmt :D:D:D
Bin nur auf dieses Forum angewiesen... in anderen konnte ich Informationen sammeln, jedoch keine brauchbaren.
Frage von John_Connor | am 06.01.2008 - 02:17

 
Antwort von GAST | 06.01.2008 - 02:40
Ich habe noch nie mit Delphi programmiert, könnte mir aber vorstellen, dass man z. B. ein Feld hat 30 x 30 Kästchen und dort entsprechende Koordinaten: 1|1, 1|2, 1|3, ... 1|30, 2|1, usw.

Die Feststellung ob nun eine Labyrinthwand auf dieser Koordinate steht, kann man in einer Datenbank festhalten. Dort steht dann z. B. I und 0 (Bool`sche Operatoren)!

1|1 - I (Wand!)
1|2 - I (Wand!)
1|3 - 0 (Keine Wand!)

Und dann muss das Objekt praktisch immer erst die eigene Position abfragen und dann per IF- oder SWITCH-CASE-Anweisungen die Umgebung erforschen, undzwar per Datenbankabfrage!
Ist es z. B. auf 9|16 muss es entsprechend 9|17, 9|15, 8|16 und 10|16 checken. Wenn es dann weiß, welches Kästchen frei ist, kann entschieden werden, ob es nun dort langgeht oder nicht.

Das wäre für mich ein logischer Aufbau!
Nun ist nur noch die Frage da, ob du das in Delphi realisieren kannst!

Ich hoffe, ich konnte dir vielleicht ein bisschen helfen! ;)

Gruß
Roman


Autor
Beiträge 40283
2103
Antwort von matata | 06.01.2008 - 02:49
http://forum.dsdt.info/search.php?search_id=1116299249&start=0

Da gibt es so viele verschiedene Spiele, vielleicht ist auch ein Labyrinth dabei.
________________________
 e-Hausaufgaben.de - Team


Autor
Beiträge 4080
17
Antwort von S_A_S | 06.01.2008 - 08:43
Ich weis jetzt nicht was Roman mit einer Datenbank für so eine polig kleine Sache will - das ist wie mit Kanonen auf Spatzen zu schießen aber naja.
Also erst mal: Das Labyrinth an sich speicherst du in einem Array da kannst du einfach Boolean nehmen. Du brauchst ja nur den Zutand "Wand"und "Weg". Das Feld ist selbstverständlich zwei Dimensional also Feld: Array[1..30, 1..30] of Boolean. Dann brauchst du Jweils eine Variable für Start, Ziel, Aktueller Standord und die sind vom typ(, wenn ich mich recht an Delphi erinnere) TCoordinate.
Zu letzt nimmst du dir noch ein Objekt vom Typ Tlist in, dass du am Ende den Weg verfolgen kannst.
Was ich zu aller erst machen würde wäre: Start und Zielpunkt festlegen. Dann das ganze Feld zur Mauer werden lassen, und dann versuche vom Startpunkt irgendwie einen Weg zum Zielpunkt zu finden. Das kannst du mit Zufallsgeneratoren machen. -> Aufpassen, dass du nicht aus den Arraygrenzen kommst. Damit Das Programm nicht immer zufällig das ganze Feld nach und nach zum Weg macht ist es wichtig zu verhindern, dass das ständig bereits in wege umgewandelte Felder neu Benutzt werden. Wenn du dann deinen ersten Weg hast, dann kannst du weitere Zufällige Zusatzwege erstellen.
So würde ich das zu mindest machen. Und wenn du hinter wirklich den genommenen Weg brauchst würde ich den Inhalt der TList einfach ausdrucken oder in eine Textdatei schreiben.

 
Antwort von GAST | 06.01.2008 - 10:00
ein algo zum durchspielen eines bestehenden Labyrinths ist glaub ich nicht so schwer zu erstellen..
wie die anderen schon gesagt: haben 2d-array aus bool werten

viel schwerer wird es wohl sein, ein zufälliges Labyrinth zu erstellen

da musste aber "reinhauen" wenn du das an einemtag schaffen willst...

Verstoß melden
Hast Du eine eigene Frage an unsere Informatik-Experten?

22 ähnliche Fragen im Forum: 2 passende Dokumente zum Thema:
> Du befindest dich hier: Support-Forum - Informatik
ÄHNLICHE FRAGEN:
  • Informatik Delphi
    Hallo, brauche euro hilfe. und zwar muss einen taschenrechner mit delphi programmieren, der natürlich auch mehr soll als plus..
  • Delphi 7/Informatiker
    http://s14.directupload.net/file/d/2910/xzwc94x5_jpg.htm Ich hab ein paar kleine Fragen für Informatiker, die sich mit Delphi..
  • Haus vom Nikolaus mit Delphi 7 zeichnen ?
    hallo leute, ich habe heute in info eine Klassenarbeit zum thema canvas in delphi geschrieben. eine aufgabe hieß den quelltext..
  • Delphi - Schleifen - Muster
    Hallo Leute wir haben jetz in Informatik Programmieren mit Delphi (Lazarus) und mit Schleifen angefangen und Sollen jetz ein ..
  • Delphi
    Ich wollte nur mal fragen ob jemand vielleicht eine Internet Seite kennt, wo man ein ähnliches Programm wie delphi ..
  • Delphi : Vortrag über Delphi - Hilfe gesucht
    Hallo Leute, ich soll morgen einen Vortrag in Informatik halten aber leider habe ich bis jetzt immer nur mit Java gearbeitet und..
  • mehr ...
BELIEBTE DOWNLOADS: