Simulation

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

 

Ixam

BeitragDi, Jun 26, 2007 9:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke dafür erstmal, aber das wusste ich auch. Mein Problem ist eher, dass ich zwei Variablen der Types vergleichen will. Nämlich so:
Code: [AUSKLAPPEN]

For B.Bakterie = Each Bakterie   
      If B\posx% = B\posx% And B\posy%=B\posy% And B\Posz%=B\Posz% Then
       Delete B.Bakterie
       MengeB%=MengeB%-1
       EndIf
    Next

In einer schleife zuvor wird den Variabeln B\posx... ein wert zu gewiesen
Das problem ist: entweder er löscht alle oder gar keins

Nächste Frage:
Code: [AUSKLAPPEN]

file = ReadFile("Erreger.txt")
Erreger$=ReadLine(file)
CloseFile(file)
;----------------------
Erregerdat$=Erreger$+".txt"
;------------------------------
krankheit= ReadFile(Erregerdat$)
For i = 1 To 7
Zeile(i)=ReadLine(krankheit)
Next
fl#=ReadFloat(krankheit)
CloseFile(krankheit)

Warum sagt der Computer, dass der stream nicht existiert?
Ixam
 

Ixam

BeitragMo, Jul 02, 2007 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Sind die antworten denn so kompliziert? Sad
Ixam

panda

BeitragMo, Jul 02, 2007 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For B.Bakterie = Each Bakterie   
      If B\posx% = B\posx% And B\posy%=B\posy% And B\Posz%=B\Posz% Then
       Delete B.Bakterie
       MengeB%=MengeB%-1
       EndIf
    Next


Hast du dir die Types den genauer angeschaut und die tuts durch gekaut?
Fang lieber ein Program oder so eine Komplexe Simulation an, wenn du Types Beherrscht Zeit und die anderen Sachen.

Bei Delete B.Bakterie must du Delete First Bakterie hinmachen oder Last schau dir auf der www.blitzbase.de seite die Types an.
 

BIG BUG

BeitragMo, Jul 02, 2007 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Delete First und Last nützt hier gar nix
Statt dessen brauchst Du zwei Schleifen:

Code: [AUSKLAPPEN]

for a = each blup
   for b = each blup
 
     if a<>b then
        if a\pos = b\pos then delete b ;Aufpassen, a darf hier so nicht gelöscht werden, da ja in der b-Schleife wieder auf a abgefragt wird. Hier müsste sonst noch ein Exit rein.
     endif

   next
next
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

Ixam

BeitragMo, Jul 09, 2007 9:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke probier ich mal aus!
Aber was bedeutet <> ?
Und zum zweiten Problem: Könnte es daran liegen, dass ich weiter vorne im Programm das Verzeichnis wechsle?
Ixam
 

Ixam

BeitragMi, Jul 11, 2007 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry für den Doppelpost aber das past echt nicht oben rein:
Wie kommt man aus einem verzeichnis zurück ins vorige?
Ixam

Silver_Knee

BeitragDo, Jul 12, 2007 8:55
Antworten mit Zitat
Benutzer-Profile anzeigen
übergeordneter ordner ist der ordner mit dem namen ".." und <> heißt ungleich
 

Ixam

BeitragDo, Jul 12, 2007 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
FTC hat Folgendes geschrieben:
übergeordneter ordner ist der ordner mit dem namen ".."

Hä?
Ixam
 

Dreamora

BeitragDo, Jul 12, 2007 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
".." ist der Dateilink der dich in den Parentordner springen lässt. *oder im Commandwindow cd ..*
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ixam

BeitragDo, Jul 12, 2007 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie benutz ich ".." Question
Ixam

Tankbuster

BeitragDo, Jul 12, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
^^
Du musst einfach als Ordner-Name ".." screiben Wink
Zitat:
"..\lol.txt"

Das wäre eine Textdatei im übergeordeten Ordner Wink
Twitter
Download Jewel Snake!
Windows|Android
 

Ixam

BeitragFr, Jul 13, 2007 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann die Schleife nicht einbauen, da immer ein fehler kommt Crying or Very sad
an was kann's liegen?
Hat jemand eine idee warum das:
Code: [AUSKLAPPEN]
file = ReadFile("Erreger.txt")
Erreger$=ReadLine(file)
CloseFile(file)
;----------------------
Erregerdat$=Erreger$+".txt"
;------------------------------
krankheit= ReadFile(Erregerdat$)
For i = 1 To 7
Zeile(i)=ReadLine(krankheit)
Next
fl#=ReadFloat(krankheit)
CloseFile(krankheit)

Nicht funktioniert?
Ixam

Silver_Knee

BeitragFr, Jul 13, 2007 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
krankheit= ReadFile(Erregerdat$)

ich tippe mal darauf die datei gibt es net und wenn du dann versuchst mit
Zitat:
Zeile(i)=ReadLine(krankheit)

was aus dieser nicht existierenden datei zu lesen wirds knifflig^^ mein tipp:
Code: [AUSKLAPPEN]
file = ReadFile("Erreger.txt")
Erreger$=ReadLine(file)
CloseFile(file)
;----------------------
Erregerdat$=Erreger$+".txt"
;------------------------------
krankheit= ReadFile(Erregerdat$)
IF KRANKHEIT<>0 ;WENN DIE DATEI EXISTIERT
 For i = 1 To 7
 Zeile(i)=ReadLine(krankheit)
 Next
 fl#=ReadFloat(krankheit)
 CloseFile(krankheit)
ELSE;wenn nicht
 RUNTIMEERROR "DIE KRANKHEIT EXISTIERT NICHT!!!!";zb Meldung geben
ENDIF
 

Ixam

BeitragFr, Jul 13, 2007 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke da bin ich aber grad selber draufgekommen Very Happy
Und wie ist das mit der schleife? Da komme ich nicht dahinter wo das Problem sein könnte
Außerdem tritt bei diesem Code:
Code: [AUSKLAPPEN]

;Leukozytenentstehung und sterben
For F = Each Leukozyt
If F\gefressen% = 10 Then Delete F
;If F\gefressen%= 10 Then Mengel% = Mengel%-1
Next
;EndIf
F =  First Leukozyt
Delete F
Mengel= Mengel-1
SeedRnd MilliSecs()
 For i=1 To 1
 F=New Leukozyt
 F\posix%=Rand(0,Breite%)
 F\posiy%=Rand(0,Hoehe%)
 F\Posiz%=Rand(0,tiefe%)
 F\gefressen% = 0 
MengeL% = MengeL% + 1
 Next
;Fressen
For F = Each Leukozyt
 For B = Each Bakterie
  If B\posx% = F\posix% And B\posy%=F\posiy% And B\posz% = F\posiz% Then MengeB% = Mengeb% - 1 And F\gefressen% = F\gefressen% + 1   
 If MengeB% = 0  Then Immunsytemgewinnt ;And Ende
 If MengeB%<1 Then End
Next
Next

Das Problem auf, dass anscheinend alle Bakterien auf einen Schlag gelöscht werden, obwohl die Positionen per Zufall bestimmt werden.
Wo liegt der Fehler?
Ixam
 

Ixam

BeitragDi, Jul 24, 2007 8:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat denn keiner ne Idee? Crying or Very sad Crying or Very sad Crying or Very sad
Ixam

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Jul 24, 2007 9:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo kommt der Fehler? Zeile? Was kommt als Fehlermeldung? Dabei den Debugger einschalten!

Ansonsten, wenn es zB nichts mehr gibt, werden folgende Zeilen ein Fehler verursachen.
Code: [AUSKLAPPEN]
F =  First Leukozyt

Delete F

Tipp 1: Variablen Menge... würde ich generell nicht hoch und runter zählen, sondern in einer Schleife wo eh alle durchgegangen werden von 0 an hoch zählen.

Tipp 2: Ausserdem, wo dir grad geholfen werden konnte, hast du ziemlich Zeitnah neue Fragen gestellt. Ich würde dir raten, sich selbst erstmal mit Problemen aussernader zu setzen. Das bedeutet, dass du auch die Codes verstehen musst, auch die, die dir gegeben wurden. Sonst tust du dir selbst kein Gefallen damit.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Nooby

BeitragDi, Jul 24, 2007 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir das ganze Thema hier einmal durchgelesen und will jetzt auch mal 3 Dinge dazu sagen:

1. Möchte ich klarstellen, das Ixam auf Seite 1 mit der Menge der natürlichen Zahlen recht hatte. Wenn es eine Menge der "natürlichen ganzen Zahlen" gäbe, wären sie identisch.

2.Ixam hat Folgendes geschrieben:
For B.Bakterie = Each Bakterie
If B\posx% = B\posx% And B\posy%=B\posy% And B\Posz%=B\Posz% Then
Delete B.Bakterie
MengeB%=MengeB%-1
EndIf
Next

Wenn hier alle Bakterien gelöscht werden, würde es mich nicht wundern, denn die Bedingung ist soviel wie "1=1"... Im Beitrag weiter unten ist das anders... vielleicht wars ein Bug, vielleicht auch nicht.

3. @Bladerunner: Du immer mit deiner Glaskugel^^ Wink
DAS PERPETUOMOBILE!!!
http://www.sax.de/~stalker/pad/199801/
 

Ixam

BeitragMi, Sep 19, 2007 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
Ich habe inzwischen eine andere Frage :
Code: [AUSKLAPPEN]
Repeat
 
 
 Teilungm% = (MengeB%*2)/2
 LiterG# = mengeG# * mengeB%
 litertox# = litertox# + LiterG#  ;+ mengeG# * mengeB%
 If litertox# > maxgift% Then Exit


;Bakterien vermehrung
 If Durchlauf% Mod teilg% = 0 Then
 SeedRnd MilliSecs()
 For i=1 To Teilungm%
 B=New Bakterie
 B\posx%=Rand(0,Breite%)
 B\posy%=Rand(0,Hoehe%)
 B\Posz%=Rand(0,tiefe%)
 DrawImage bakimgg, B\posx%,B\posy%
 MengeB% = MengeB% + 1
 Next
 EndIf


Repeat
If MengeB% > Hoehe% Then MengeB%=MengeB%-10
Until MengeB% < Hoehe%

;____________
; Print MengeB%+", "+literG#+"zeit:"+ Durchlauf%
Delay zeitraf%
Durchlauf% = Durchlauf% + 1


Text 350,40, "Zeit in min: "+Durchlauf%
Text 350,60, "Menge bakt. : "+ mengeB%
Text 320,80, "Menge toxine :"+literG#



Until KeyHit(1)

Wenn ich das nun durchlaufen lasse überschreibt sich der text nach kurzer Zeit und man nichts mehr erkennen.
Wie kann ich nun den text "lesbar machen" ohne, dass die Bilder gelöscht werden?
Danke
ixam

mas93

BeitragMi, Sep 19, 2007 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
das geht ganz einfach mit Double Buffering.

Also.Schreib ganz oben unter graphics
Code: [AUSKLAPPEN]
Setbuffer backbuffer()


so, dann schreibst du ans Ender deiner Hauptschleife:

Code: [AUSKLAPPEN]
Flip
cls


und schon dürfte man alles ganz gut lesen können.
Schau dir einfach mal den befehl Setbuffer() in der Onlinehilfe an.


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Progger93

BeitragMi, Sep 19, 2007 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du allerdings nicht alles löschen willst und der text auf schwarzem hintergrund steht kannst du vor den alten text schwarze rechtecke oder so zeichnen.
Wenn bilder dahintert sind dann kannst du solange sich die bilder hinter dem text nicht bewegen, das was hinter dem text steht als bild speichern und bei jedem durchlauf wieder über den text zeichnen.
MFG Pascal

@mas93: Ixam sagt doch " ohne, dass die Bilder gelöscht werden"
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group