fehler bei fast gleichnamigen variabeln
Übersicht

onkelz89Betreff: fehler bei fast gleichnamigen variabeln |
![]() Antworten mit 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 kann das ein problem sein? und wenn ja weiß einer warum? mfg onkelz |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist definitiv ein Fehler im Algorithmus.
Landläufig gesagt wird auch, dass du Grütze programmiert hast ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
DivineDominion hat Folgendes geschrieben: Es ist definitiv ein Fehler im Algorithmus.
Landläufig gesagt wird auch, dass du Grütze programmiert hast ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
klar nur warum kommt es dort zu einem problem? | ||
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stell mal lauffähigen Code rein.
Den Fehler hast du irgendwo eingebaut, an den Variablennamen liegt es sicher nicht. |
||
solitaire |
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hier ist er noch aufgeschrieben:
https://www.blitzforum.de/viewtopic.php?t=14758 hoffe das hilft dir weiter... mfg onkelz |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Willst du etwa aufgeben?
Fehlersuche ist eine Herausforderung (und wird dir beim nächsten Programm wieder begegnen) ![]() |
||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ne keine sorge aufgeben is nich so mein ding ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so!!! endlich ![]() 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 ![]() mfg onkelz |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group