AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Labyrinth darstellen

Ein Thema von GetCool · begonnen am 8. Jan 2004 · letzter Beitrag vom 14. Jan 2004
Antwort Antwort
Seite 2 von 4     12 34      
GetCool

Registriert seit: 15. Dez 2003
Ort: Kaki
91 Beiträge
 
Delphi 8 Professional
 
#11

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 19:50
@XeRo: Jo, so wäre es noch recht einfach zu realisieren...
@SleepyMaster: Könntest du mal die Project Files uppen?

Morgen krieg ich 3D-Programmierung mit Delphi...für Kids (wegen Delphi 8, damit ich updaten kann) Vielleicht steht da was drin...2D Spiele werden IMHO auch oft mit kleinen Kästchen programmiert. Das wäre ja genau das richtige...
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 19:52
So gehts auch: (Etwas überarbeitet)
Delphi-Quellcode:
function Farbcode(Code: integer):TColor;
begin
 result := clwhite;
 case Code of
 1 : result := clred;
 2 : result := clblue;
 3 : result := clgreen;
 4 : result := cllime;
 end;
end;

procedure TForm1.ReDraw;
var
  x,y: longint;
  const Groesse = 20; //Größe der kacheln
begin
      Image1.Canvas.pen.Color := clwhite;

for x :=0 to 50 do
  for y :=0 to 50 do
    begin
      Image1.Canvas.brush.Color := Farbcode(Spielfeld[x,y]); //Farbcode
      Image1.Canvas.Rectangle(x*Groesse,y*Groesse,
                x*Groesse+Groesse,y*Groesse+Groesse);
    end;
end;
  Mit Zitat antworten Zitat
Fib

Registriert seit: 21. Dez 2003
9 Beiträge
 
#13

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 20:01
Man könnt's auch mit nem DrawGrid, bei dem man die Zellen als Wand einfärbt und als Weg, da wär auch das Abfragen ob Wand oder nicht kein großes Problem.
  Mit Zitat antworten Zitat
GetCool

Registriert seit: 15. Dez 2003
Ort: Kaki
91 Beiträge
 
Delphi 8 Professional
 
#14

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 20:06
Sehr gut Fib! Das kommt in die nähere Auswahl. Das ist nun echt einfach zu handhaben. Überleg mir aber noch bis morgen wie genau ich das löse. Also mehr Ideen müssen her Hoffentlich komm ich dann morgen auch dazu ein bisschen rumzuprobieren...
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#15

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 20:40
Hallo Getcool,

für die KI (das Routefinding) der Maus schlage ich dir folgendes vor: Erstelle einen Array of Integer in der Größe des Labyrinths, so dass zu jeder Kachel ein Integer gehört. Setzte alle diese Integer auf -1 (beispielsweise) und das Feld auf dem die Maus steht auf 0. Nun brauchst du eine Schleife die den Array so ausfüllt, dass in jedem Feld die Anzahl der Schritte steht, die das Feld im Labyrinth von der Maus entfernt ist. d.h. die Felder über, unter und neben der Maus bekommen eine 1, sofern keine Wand dazwischen ist usw...
Die Schleife könnte beispielsweise eine for-Schleife sein, wobei der Laufindex ich nenn ihn mal i,dann die Zahl ist, die überprüft werden muss und das geht so: In diese Schleife setzt du wieder zwei Schleife, um so alle Felder des Labyrinths durchzugehen. Steht in irgendeinem Feld die Zahl i, dann schaust du ob die umliegenden Felder (oben, unten, rechts, links) direkt von diesem Feld aus erreichbar sind (d.h. keine Wand ist dazwischen) und ob darin noch keine Zahl steht, die kleiner als i ist. Ist dies der Fall, schreibst du in die entsprechenden Felder die Zahl i+1. Nach Maximal 2500 Durchläufen ist das ganze Labyrinth mit diesen Zahlen gefüllt, wobei die nicht erreichbaren Felder immernoch -1 enthalten.
Der Kürzeste Weg zum Ausgang lässt sich dann so finden: Starte bei der Betrachtung des Wegs beim Ausgang. Gehe nun auf das benachbarte Feld, dessen Wert um 1 kleiner ist als auf diesem Feld... usw. Irgendwann kommst du dann bei der Maus an.
Das ganze ist natürlich eigentlich keine KI, sonder Routefinding, d.h. wenn die Aufgabe ist, eine Maus zu programmieren, die nicht das ganze Labyrinth kenn, sondern nur den Teil, wo sie schon war, dann musst du es anders machen.

Grüße
Seniman
  Mit Zitat antworten Zitat
GetCool

Registriert seit: 15. Dez 2003
Ort: Kaki
91 Beiträge
 
Delphi 8 Professional
 
#16

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 20:51
Zitat von Seniman:
Das ganze ist natürlich eigentlich keine KI, sonder Routefinding, d.h. wenn die Aufgabe ist, eine Maus zu programmieren, die nicht das ganze Labyrinth kenn, sondern nur den Teil, wo sie schon war, dann musst du es anders machen.
Da liegt das Problem an deiner Ausführung. Leider kennt die Maus das Labyrinth nicht. Wäre ja auch langweilig wenn die Maus den Weg sowieso immer kennt. Aber trotzdem guter Lösungvorschlag
  Mit Zitat antworten Zitat
XeRo

Registriert seit: 23. Okt 2003
Ort: Warth
461 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 20:58
Wenn die Maus das Labyrinth nicht kennt, dann machs wirklich mit einem Array aus bitmaps, dann versuch zuerst ob die maus nach rechts gehen kann, wenn nicht dann nach links,...
Dann muss sie sich noch irgendwie merken, wo sie schon war und wo eine sackgasse ist,...

Aber so ungefähr könnt ich mir das vorstellen...und es ist nicht wirklich kompliziert so zu prog.
  Mit Zitat antworten Zitat
GetCool

Registriert seit: 15. Dez 2003
Ort: Kaki
91 Beiträge
 
Delphi 8 Professional
 
#18

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 21:16
Zitat von XeRo:
Aber so ungefähr könnt ich mir das vorstellen...und es ist nicht wirklich kompliziert so zu prog.
Naja, erstens das Spielfeld, aber da hab ich ja jetzt ziemlich viele Vorschläge. Das wird nicht so das Problem. Aber du lässt ausser acht, dass der Code ziemlich komplex sein wird und ich schätze auch kompliziert, wenn die Maus möglichst intelligent durch das Labyrinth laufen soll. Aber das kann man ja nach und nach verbessern, hauptsache ich krieg erstmal ein ordentliches Zufallslabyrinth hin.
  Mit Zitat antworten Zitat
XeRo

Registriert seit: 23. Okt 2003
Ort: Warth
461 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Labyrinth darstellen

  Alt 8. Jan 2004, 21:25
wollte sagen dass das "WIE KÖNNTE ES GEHEN" nicht schwer ist...

...dass das Prog ziemlich umfangreich wird ist klar, aber wenn dein Lehrer eine gute und saubere Lösung will muss er mit sowas rechnen...
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#20

Re: Labyrinth darstellen

  Alt 9. Jan 2004, 14:37
[OT]
Zum Thema KI:

D-Robots ist echt Hammer!
www.plasmacode.com
[/OT]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 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