Data Sections

Anfängerfragen zum Programmieren mit PureBasic.
seggl
Beiträge: 17
Registriert: 25.08.2005 16:57

Data Sections

Beitrag von seggl »

wie kann ich den 1en z.B. ein graues sprite (Wand) bzw. den 2en einen freiraum zuweisen in dem man sich bewegen kann??

Code: Alles auswählen


DataSection 
Data.l 1,1,1,1,1,1,1
Data.l 1,2,2,2,2,2,1
Data.l 1,2,1,2,1,2,1               ;1 = wand
Data.l 1,2,2,2,2,2,1               ;2 = freier platz
Data.l 1,2,1,2,1,2,1     
Data.l 1,2,2,2,2,2,1   
Data.l 1,1,1,1,1,1,1 
EndDataSection

Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

zu diesem thema gibts schon viel hier im forum.
such mal mit der suchfunktion :allright:
-.-"
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Der wohl beste Algoritmus zum wegfinden nennt sich A*.
Wenn man in der suche A* eingibt bekommt man alle wörter die mit A beginnen :lol:

schau mal hier:
http://forums.purebasic.com/german/view ... athfind%2A

in diesem Thread hier ist ein Link zu einer Englischen Erkärung von A*
http://forums.purebasic.com/german/arch ... php?t=4877

A* Pathfinding for Beginners = http://www.policyalmanac.org/games/aStarTutorial.htm

Sonnst Googel oder Forums-Suche benutzen
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

PAMKKKKK hat geschrieben:Der wohl beste Algoritmus zum wegfinden nennt sich A*.
Wenn man in der suche A* eingibt bekommt man alle wörter die mit A beginnen :lol:

schau mal hier:
http://forums.purebasic.com/german/view ... athfind%2A

in diesem Thread hier ist ein Link zu einer Englischen Erkärung von A*
http://forums.purebasic.com/german/arch ... php?t=4877

A* Pathfinding for Beginners = http://www.policyalmanac.org/games/aStarTutorial.htm

Sonnst Googel oder Forums-Suche benutzen
Hä was hat das hier zu suchen?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

@DarkDragon
In den oben genannten Links ist ein Codebeispiel das die Frage gut erklärt!

Wenn man sich das betrachtet, kann man es leicht erweitern. (dachte ich)

Code: Alles auswählen

Procedure.l chkNode(x, y, stopX, stopY)
  If Map(x, y) = 1; If it is not walkable or if it is on the closed list, ignore it 
Die Zahlen 1 und 0 reichen aus um ein Gebiet begehbar 0 oder nicht begehbar 1 zu machen.
seggl hat nach 1 und 2 gefragt was gleichbedeutend mit 0 und 1 ist!

Fügt man nun Mehr zahlen 1,2,3,.... hinzu so bekommt man einen Virtuellen-Berg. Mit ansteigen der Zahlen steigen auch die kosten der Bewegung.

Wenn der Berg zu steill wird, sollte dann wieder 1 (not walkable) zum einsatz kommen.

Ausserdem, wenn man den Algorythmus versteht, dann wird´s leichter was eigenes zu entwickeln!

Ein Paar wörter für die Suchmaschine:
Pathfinder Pathfinding wegsuchen wegfinden A* A stern
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Ähh sorry, er will erstmal ja nur Anzeigen und die DataSection auslesen. Er ist ja nichtmal soweit dass er ne KI braucht. Das ist komplettes OffTopic was du da machst(Thema verfehlt).
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Code: Alles auswählen

Restore levelData

For i 0 to weißichnich
  Read blabla
  if blabla = 1
    DisplaySprite(das,dort,dadrüben,usw.)
  endif
  usw....
Next i

DataSection:
levelData:
Data.l 1,2,1
EndDataSection
seggl
Beiträge: 17
Registriert: 25.08.2005 16:57

Beitrag von seggl »

DarkDragon hat geschrieben:Ähh sorry, er will erstmal ja nur Anzeigen und die DataSection auslesen. Er ist ja nichtmal soweit dass er ne KI braucht. Das ist komplettes OffTopic was du da machst(Thema verfehlt).
Möngi!!
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

seggl hat geschrieben:Möngi!!
:o Was für eine qualifierzierte Aussage! :shock:
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

was heißt Möngi?
Antworten