Types

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

dominik

Betreff: Types

BeitragSo, Okt 03, 2004 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich hab ne karte auf der man häuser bauen kann und ich muss herausfinden ob bestimmte häuser nebeneinader stehen. die karte is in kästchen aufgeteilt die in types gepeichert sind. ich habs jetzt der einfachheithalber so gemacht das der haustype nach dem gesucht wird immer nur links von dem anderen type stehen kann. leider hab ich aber noch keine möglichkeit gefunden wie ich das jetz heraus bekomm. ich habs schon mit dem before befehkl probiert aber da bleibt dann das prog hängen wenns gelich das erste haus is bei dem nach dem anderen gesucht wird.

PS: kann sein das es total billig is ich hab die types erst heute gerallt. Embarassed Very Happy
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Suco-X

Betreff: .......

BeitragSo, Okt 03, 2004 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

for haus1.haus_type = each haus_type
   for haus2.haus_type = each haus_type
      If haus1\x=haus2\x ;Pi Mal Daumen, nur als beispiel
          machewas
      endif
   next
next


So kannst du jedes auf auf jedes Haus testen. Ist halt so ne verschachtelte Sache. Keine ahnung wie ich es besser beschreiben könnte.
bye
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

dominik

BeitragSo, Okt 03, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
ja so weit bin ich schon auch gekommen, das man da einfach ne for each type schleife macht.(wenn ich das nicht wüsste das ich das dazu bracuhe würd ich mich garnicht erst hierher trauen)

aber meine frage is ja eben was dann hier
Code: [AUSKLAPPEN]
 Blud und bla und wenn sie nun da stehen

rein kommt gerade das is ja das problem.

EDIT:
also ich ksann ja noch dazu schreiben wie ich bisher gemacht hab. wie aber halt net geht
Code: [AUSKLAPPEN]
  For haus.gebeude = Each gebeude
    If haus\hausart = 2 Then
      haus = Before haus
      If haus\hausart = 3 Then geld = geld + 200
  Next
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Okt 03, 2004 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For H1.gebeude = Each gebeude
   H2.gebeude = Before H1
   If H2.gebeude <> Null
      If H1\hausart = 2 And H2\hausart = 3 Then geld = geld + 200
   End If
Next

So sollte das gehen ... hab jetzt deinen Code eingebaut
Wann soll sich denn genau die Kohle erhöhen!
Auch wen 2 an 2 steht?
oder 3 rechts neben 2
[BB2D | BB3D | BB+]

dominik

BeitragMo, Okt 04, 2004 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn 3 links neben 2 steht.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Okt 04, 2004 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
dann stimmt der Code !
[BB2D | BB3D | BB+]

dominik

BeitragMo, Okt 04, 2004 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
also der funktioniert so auch nich.

deshalb dachte ich mach ichs mal mit den x koords:
Code: [AUSKLAPPEN]
  For haus.gebeude = Each gebeude  <-- jedes gebäude testen
    If haus\hausart = 2 Then  <-- wenn 2 is dann
      raffinerie_x = haus\x   
      For haus.gebeude = Each gebeude <--- teste ob überhaubt ein haus daneben steht
        If raffinerie_x - 32 = haus\x Then
          If haus\hausart = 3 Then geld = geld + 200 <-- wenn des dann auch noch nen 3'er ist dann geld ......
        EndIf
      Next
    EndIf
  Next


der bisher aber leider auch nicht geht. Sad
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Okt 04, 2004 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
wie sind denn die TYPES gespeichert ?
wie eine Strasse oder
etwa nach dem Schema einer MAP
1 2 3 4
5 6 7 8
9 10 ....
[BB2D | BB3D | BB+]

dominik

BeitragMo, Okt 04, 2004 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
nach einer straße da ich bisher einfach nur ne grüne gleichemäsige fläche ist da ich die level nacher aber noch aus ne datei einlesen will wird sich das wohl noch ändern.

EDIT:
kanns vll sein das wenn man zwei schleifen ineineander schiebt und in denen die geleichen vars benützt die sich gegenseitig vertauschen?
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Okt 04, 2004 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
So funktioniert das nicht..
denn bei zwei gleichen var geht das nicht!
Code: [AUSKLAPPEN]
For Haus.Gebeude = Each Gebeude
   ...
   For Haus.Gebeude = Each Gebeude

   Next
Next


Du mußt das so machen oder ähnlich
Code: [AUSKLAPPEN]
For Haus.Gebeude = Each Gebeude
   ...
   For Haus1.Gebeude = Each Gebeude

   Next
Next

du kannst auch x.Gebeude
und y.Gebeude nehmen, das spielt keine Rolle, nur verschieden müssen die sein!
[BB2D | BB3D | BB+]
  • Zuletzt bearbeitet von Rallimen am Mo, Okt 04, 2004 18:54, insgesamt einmal bearbeitet

dominik

BeitragMo, Okt 04, 2004 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
geht doch aber nicht ich will ja beidemale die gleichen typs abfragen da kann ich die doch nich einfach umbenennen.

EDIT:
aber um nicht die gelichen vars in der geliche schleife zu aben hab ich ja eigetnlich schon die zeile eingeügt:
Code: [AUSKLAPPEN]
raffinerie_x = haus\x

aber kanns sein das nicht für jede schliefe ein zeiger oder wie die dinger heisen verschoben und gespeichert wird sondern das es pro feld nu eine gibt und sich die schleifen dadurch beeinflussen.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.
  • Zuletzt bearbeitet von dominik am Mo, Okt 04, 2004 18:57, insgesamt einmal bearbeitet

Hubsi

BeitragMo, Okt 04, 2004 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sind ja nur Variablen. Die beiden lassen sich dann so vergleichen, oder was auch immer:Code: [AUSKLAPPEN]
If haus\bla=haus1\bla...
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

dominik

BeitragMo, Okt 04, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
ja aber die var die ich abfragen will is im type feld nunmal unter haus.gebeude gespeichert. da kann ich doch nicht einfach nach haus1.gebeude fragen.
ich müsste also des type feld für die abfrage jedesmal kopieren und dann des orginal mit der kopie vergleichen.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Hubsi

BeitragMo, Okt 04, 2004 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne, nehmen wir an das ist kein Type, sondern ein Array:Code: [AUSKLAPPEN]
For a=0 to 10
  For b=0 to 10
    if bla(a)=bla(b)...
  Next
Next
Jetzt klarer Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Okt 04, 2004 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Haus und Haus1 sind nur Zeiger die auf den Eintrag stehen, du bist nicht daran gebunden denn die Liste ist das Gebeude!

ich mach mal ebend ein Beispiel...

Code: [AUSKLAPPEN]
Type Gebeude
   Field x$
End Type

For t= 0 To 5
 Haus.Gebeude = New Gebeude
 haus\x = "Haus"
Next

For t= 0 To 5
 garage.Gebeude = New Gebeude
garage\x = "Garage"
Next


For Dummy.Gebeude = Each Gebeude
   Print Dummy\x
Next
WaitKey
[BB2D | BB3D | BB+]

dominik

BeitragMo, Okt 04, 2004 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
jaa sau geoil danke aber kleine anmerkung noch
das geht nicht

Code: [AUSKLAPPEN]
For haus1.gebeude = Each gebeude

muss wenn dann
Code: [AUSKLAPPEN]
For hausa.gebeude = Each gebeude

so heißen.

bei version 1 kommt "variablen type missmatch"
aber danke für eure hilfe. Very Happy Very Happy
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Okt 04, 2004 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt aber wahrscheinlich daran das du Haus1 schon woanders benutzt
als Definierte Variable
[BB2D | BB3D | BB+]

dominik

BeitragMo, Okt 04, 2004 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
viel zu krasss ich lad die einzelnen tiles für die map jezt aus ner datei, aber des ruckelt ja nur noch. (40*32)
Code: [AUSKLAPPEN]
map_datei = ReadFile("map.txt")
  For iy = 0 To kartengroesey Step 32
    For ix = 0 To kartengroesex Step 32
      zeile = ReadLine(map_datei)
      For i = 0 To 40
        tile = Mid(zeile, i, 1)
        grund.boden = New boden
        grund\bodenart = tile
        grund\x = ix
        grund\y = iy
      Next
    Next
 Next
CloseFile map_datei


und zum zeichnen:(da hab ich aber nix dran verändert, des war auch vorher schon so)
Code: [AUSKLAPPEN]
  For grund.boden = Each boden
    If grund\bodenart = 0 Then DrawImage land, grund\x, grund\y
  Next
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Hubsi

BeitragMo, Okt 04, 2004 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Du lädst aber nicht in der Hauptschleife? Das wär echt krass Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

dominik

BeitragMo, Okt 04, 2004 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
nee Very Happy

aber stimmt doch so vom ablauf her oder lad ich da irgnetwie ausversehen was dopelt oder so.
die ausgabe auf bildschirm stimmt ja aber eigentlich hat sich wärend des progg ablauf ja garnix geändert.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group