fehler bei fast gleichnamigen variabeln

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

onkelz89

Betreff: fehler bei fast gleichnamigen variabeln

BeitragMi, Nov 09, 2005 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

mich würde mal was interessieren...

ist es möglich das es zu fehlern in blitz kommt wenn 2 variabeln fast gleich heißen? beispiel:

street2a
street2b

kann das ein problem sein?
und wenn ja weiß einer warum?

mfg
onkelz

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Nov 09, 2005 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Möglich ist ja alles, aber normalerweise hat Blitz kein Problem damit!

Probleme gibt es nur wenn du eine Function mit dem gleichen namen hast!
[BB2D | BB3D | BB+]
 

onkelz89

BeitragMi, Nov 09, 2005 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
mhm dann bin ich wohl der "glückliche" der nen bug in blitz gefunden hat...

habe nähmlich mehrere tests durchlaufen lassen um wirklich sicher zu gehen das es nicht ein fehler meinerseits ist... aber wie auch schon in dem thread memory acess violation von mir ein stück weiter unten beschrieben, ist diese problem unlösbar... bisher zumindest.

naja es gibt bestimmt möglichkeiten es zu umgehen nur habe ich noch keine gefunden.

fehlerbeschreibung:

also meine map besteht aus ca. 60 verschiedenen tiles.
eine map wird wie folg geladen:
-mapdatei wird geöffnet
-jede zeile nacheinander ausgelesen
-je nachdem was in der zeile steht erzeugt sich ein anderes bild

soweit geht alles wunderbar

dann gehts weiter

die bilder werden vorab alle geladen. logo sonst würde es ja länger dauern. dann müssen die bilder natürlich über types koordinaten bekommen.

nunja hier passiert der fehler...

wenn ich eine schleife mache, die sagt alle zeilen durchsuchen

Code: [AUSKLAPPEN]

for tile 1 to 109
...
next

100 weil ein mapabschnitt 10x10 bilder hat.. dann kämen wir aber auf 100. nur wollte ich ordnung in der datei und habe sie an 9 stellen mit einem zeichen unterteilt (welches nicht abgefragt wird)

so dann wird abgefragt bei dem ...

Code: [AUSKLAPPEN]

;zum beispiel:

If art$="street3a" Then
map.map = New map
map\ort$ = platzhalterort$
map\art = 7
map\x = platzhalter1x
map\y = platzhalter1y
map\x2 = platzhalter2x
map\y2 = platzhalter2y
map\pic = CopyImage(street2a)
platzhalter2x=platzhalter2x+100
EndIf


;was ist art$?
;art$ ist:

file = OpenFile(filename$)
For tile = 1 To 109
art$=ReadLine(file)


so...

interessant ist nur dass das hier: platzhalter2x=platzhalter2x+100
nicht so funktioniert wie es soll...

eigentlich müssten die koords(x) nach jedem gefundenen tile einmal um 100 vergrößert werden... das klappt aber nicht immer

beispiel:

wenn die datei so aussieht(ausschnitt):
Code: [AUSKLAPPEN]

...
street2a
street2b
street2b
street2b
street2b
...


das street2a bild ist die straße von oben nach unten gezeichnet und 2b ist von links nach rechts...

aber bei dieser datei oben wird im programm das street2a "verschluckt" und am ende bei platzhalter2x=900
kommt statt dem street2b-bild ein leeres feld (alles wurde halt eins nach links verschoben)

gut jetzt dachte ich, ich hätte wieder nen flüchtigen fehler gemacht, aber dem war nicht so, da ich es mit verschiedenen anderen variationen ausprobiert habe und auch das script 100 mal durchforstet habe ... aber nie komme ich zu einem anderen ergebniss als das es ein bug sein muss...


hatte jemand schonmal so ein ähnliches oder gar gleiches problem?

mfg
onkelz

PSY

BeitragMi, Nov 09, 2005 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
hi

mich würde mal was interessieren...

ist es möglich das es zu fehlern in blitz kommt wenn 2 variabeln fast gleich heißen? beispiel:

street2a
street2b


Einen so rudimentären Fehler halte ich eigentlich für ausgeschlossen.

Ich werd mir mal morgen den Code ansehn, wenn ich ein bischen Zeit finde...

Grüsse,
PSY
 

onkelz89

BeitragDo, Nov 10, 2005 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
jo danke schonmal

zu deiner vermutung... ich denke auch das es nicht schlimm ist variabeln fast gleich zu benennen... denke eher das ist ein hoffentlich einzelner bug der da auftritt

mfg
onkelz

DivineDominion

BeitragDo, Nov 10, 2005 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist definitiv ein Fehler im Algorithmus.

Landläufig gesagt wird auch, dass du Grütze programmiert hast Smile
Ist platzhalter2x vor der Bedingung deklariert, damit es nicht nur ne lokale Variable ist - stimmen die Werte vor den Schleifen/Fallunterscheidungen, hast du mal mit DebugLog probiert die Zahlen auszugeben zum kontrollieren und dann eine Fehlerlösung zu erstellen die das behebt?

Das mit dem Verschieben verstehe ich nicht ganz. Meinst du du hast 4 Kacheln und pro Zeile dürfen 2 enthalten sein, also
##
##
es kommt aber folgendes dabei raus?
##
#

Sprich, die erste Kachel wird ignoriert.
Idee von mir wäre, dass du bei den For-Schleifen bei 0 anfängst zu zählen statt bei 1. Das könnte erklären, wieso die 0te Kachel ignoriert wird. Oder eben gucken wo Rechenprobleme auftreten die nicht sein sollen.
christian.tietze@gmail.com - https://christiantietze.de
macOS

soli

BeitragFr, Nov 11, 2005 7:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
nur wollte ich ordnung in der datei und habe sie an 9 stellen mit einem zeichen unterteilt (welches nicht abgefragt wird)


Wenn du etwas in die Datei reinschreibst musst du es auch auslesen,
ob du es nachher verwendest oder nicht.
Blitz kann nicht wissen was es mit dem Zeichen anfangen soll.
solitaire
 

Omenaton_2

BeitragFr, Nov 11, 2005 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir sehr sicher (99,99%), daß es in BlitzBasic zu keinerlei Problemen führen kann, wenn 2 Variablen Namen ähnlich sind. Es gibt nur 2 Möglichkeiten. Entweder sind 2 Variablen Namen wirklich gleich, oder nicht. Ähnlich ist genauso weit von dem anderen Namen entfernt, als ob es total unähnlihc wäre.
Ich habe schon unzählige Mal sehr gleichlautenden Variablen Namen verwendet und noch nie Probleme gehabt.

Hummelpups

BeitragFr, Nov 11, 2005 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich halte es für unmöglich das BB Varnamen vertauscht.
Außer man pfuscht an den Zeigern rum dann garantiere ich
für nichts ^^

Aber so bei BB, nie und nimma.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
 

Buddah

BeitragFr, Nov 11, 2005 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Also mit diesen code fragmenten kann zumindest ich dir nicht weiterhelfen.
Falls du nicht schon selbst den fehler gefunden hast kann ich auch gern
mal über den code schaun dazu bräuchte ich aber den kompletten code.
Alles ist gut so wie es ist und bald wird alles anders.
 

onkelz89

BeitragFr, Nov 11, 2005 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
DivineDominion hat Folgendes geschrieben:
Es ist definitiv ein Fehler im Algorithmus.

Landläufig gesagt wird auch, dass du Grütze programmiert hast Smile
Ist platzhalter2x vor der Bedingung deklariert, damit es nicht nur ne lokale Variable ist - stimmen die Werte vor den Schleifen/Fallunterscheidungen, hast du mal mit DebugLog probiert die Zahlen auszugeben zum kontrollieren und dann eine Fehlerlösung zu erstellen die das behebt?

Das mit dem Verschieben verstehe ich nicht ganz. Meinst du du hast 4 Kacheln und pro Zeile dürfen 2 enthalten sein, also
##
##
es kommt aber folgendes dabei raus?
##
#

Sprich, die erste Kachel wird ignoriert.
Idee von mir wäre, dass du bei den For-Schleifen bei 0 anfängst zu zählen statt bei 1. Das könnte erklären, wieso die 0te Kachel ignoriert wird. Oder eben gucken wo Rechenprobleme auftreten die nicht sein sollen.



nicht ganz.

eher so
street2a = #
street2b = +
gras = 0

so sollte es nach dem code aussehen:

000#0000
000#0000
000#0000
000#+++
000#0000

aber so sieht es aus

000#0000
000#0000
000#0000
000+++
000#0000

das eine wird einfach verschluckt... (habe alles überprüft und wenn ich das street2b in gras austausche klappt es ohne das der straßenteil verschluckt wird)

hoffe das hilft weiter


mfg
onkelz


PS: rechenprobleme ausgeschlossen hab mit alle rechnungen mit ergebniss auf bildschirma ausgeben lassen sind korrekt...

also sprich die koordinaten sind korrekt er malt das bild aber nicht an diese... warum auch immer
 

Gerhard

BeitragSa, Nov 12, 2005 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube, so recht versteht hier keiner was du eigentlich machen willst.

Du erstellt seitenweise Types, die sich nur durch x- u. y-Koordinaten unterscheiden?

Dass du Probleme ab Zeile 6 bei deinen Types bekommst, hängt wahrscheinlich damit zusammen, dass dort erstmals street2b auftaucht.
 

onkelz89

BeitragSo, Nov 13, 2005 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
klar nur warum kommt es dort zu einem problem?

soli

BeitragMo, Nov 14, 2005 8:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Stell mal lauffähigen Code rein.
Den Fehler hast du irgendwo eingebaut,
an den Variablennamen liegt es sicher nicht.
solitaire
 

onkelz89

BeitragMo, Nov 14, 2005 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
hier ist er noch aufgeschrieben:

https://www.blitzforum.de/viewtopic.php?t=14758

hoffe das hilft dir weiter...


mfg
onkelz
 

Gerhard

BeitragMo, Nov 14, 2005 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Versuch, den Fehler einzugrenzen.
Wenn ich recht verstehe, hast du eine Datei erstellt, die deienen Level abbildet.

street2b
gras1
....

Diese Datei willst du einlesen. Oder? Und wo machst du das?
In deinem 100-Types-Beitrag sind doch alle map\pisc fest belegt.
Die 100er Schritte stimmen schon. Dein Dateiinhalt wird aber wahrscheinlich nicht in die Types übernommen. Das wirkt dann, als ob die Koordinaten nicht stimmen.

Mach doch mal ein kleines einfaches Beispiel. So verlierst du dich ja schon am Programmanfang in deiner Komplexität.

Das gilt generell. Nicht gleich den Jahrhundertwurf mit zig Erweiterungsmöglichkeiten machen, sondern Stückchen für Stückchen - und immer wieder testen, ob's auch klappt.
 

onkelz89

BeitragDi, Nov 15, 2005 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry... das ist der alte code.. aber da ist der selbe fehler... nur weiß nich warum... das problem ist auchnoch wenn ich ein kleineres beispiel nehme klappt es, warum auch immer
 

Gerhard

BeitragDi, Nov 15, 2005 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst du etwa aufgeben?
Fehlersuche ist eine Herausforderung (und wird dir beim nächsten Programm wieder begegnen) Very Happy
 

onkelz89

BeitragDi, Nov 15, 2005 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ne keine sorge aufgeben is nich so mein ding Wink

aber ich programmiere ja nicht nur in blitz und naja bisher konnte ich alle probleme soweit lösen... aber sowas habe ich zufor noch nicht gesehn ist halt ein bug im programm anders kann ich es nicht erklären... naja ich schau mir den code in den nächsten tagen nochmal in aller ruhe an und dann werde ich ja sehen ob ich vieleicht nur die ganez zeit blind war...


mfg
onkelz
 

onkelz89

BeitragSa, Nov 19, 2005 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
so!!! endlich Smile hab den (letztendlich doch sehr dummen) fehler gefunden...

war ganz simpel...

ich habe für die straßenbilder jeweils nur eines jeder art gemalt... also eine kurve eine gerade usw. naja die fehlenden habe ich mit rotateimage ersetzt...

was ich bis vor 10 minuten noch nicht wusste war, dass der befehl das image nicht vom mittelpunkt aus dreht, sondern von einer ecke aus... und diese ecke nun als "draw" punkt nimmt

darum wurde zb bei street2b das bild um 100px verschoben...

naja aber stimmt schon einfach nicht aufgeben und weitermachen irgendwann klappts Wink

mfg
onkelz

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group