Error: Integer divide by zero.

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

kamehan

Betreff: Error: Integer divide by zero.

BeitragDo, Jul 13, 2006 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
was ist das für ein fehler?
ich modifiziere ein spiel wo der fehler immer dann auftritt, wenn ich gegen mehrere bots spiele, spätestens dann wenn eine runde vorbei ist...
aber eben weil dieser fehler erst so spät erscheint kann ich nicht sagen welche ursache der hat Sad
hat jemand eine idee welche (allgemeinen) gründe das haben könnte?
danke

Goodjee

BeitragDo, Jul 13, 2006 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
du teilst durch 0 wenn du englisch könntest wüssest du das...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Steve0

BeitragDo, Jul 13, 2006 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Du teilst durch 0 was ja bekanntlich nicht geht.
2. Mach den Debug an um zu sehen wo der Fehler liegt.

[Edit]Verdammt. Schon wieder zu spät. Passiert mir ständig in letzter Zeit.
Pixelgenaue 2D SingleSurface Engine!!!

Goodjee

BeitragDo, Jul 13, 2006 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
debug ist schon an...sonst hätte er eine mav...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Dreamora

BeitragDo, Jul 13, 2006 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du sagst durch bots:

Kanns sein dass du irgendwas durch die anzahl verbleibender bots teilst?
*gibt leider ungefähr eine million möglichkeiten aber Anzahl Objekte und FPS sind die häufigsten kandidaten für diesen fehler, bzw. werte die zu klein werden*
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

kamehan

BeitragDo, Jul 13, 2006 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, anzahl an objekten klingt wahrscheinlich...aber wenn man nicht weiß wo bei sonem 20k< zeilencode dann wirds schwierig^^ ->neuanfang -.- aber trotzdem danke für die hinweise!

PS: ich kann englisch (fast perfekt) und wußte auch das da was durch null geteilt wird, aber deswegen muß ich das nicht sofort zuordnen können, deswegen frag ich hier nach möglichen gründen für die "0-teilung"...also pls stop "vorurteiling"^^

D2006

Administrator

BeitragFr, Jul 14, 2006 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
neuanfangen? Surprised

Der Debugger zeigt dir die Zeile an, wo der Fehler auftaucht. Also schau nach und überprüfe, wie es dazu kommen konnte und wie du es verhinderst.

Ich überlege gerade wie oft ich meine Programme neuanfangen müsste wegen solchen kleinen Fehlern ... Wink
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Dreamora

BeitragFr, Jul 14, 2006 7:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Überleg dir Mal wie häufig du zu beginn deiner Programmierkarriere wegen sowas gescheitert bist ... weil der Code noch nicht so sauber strukturiert war das nicht überall alles auf jede Variable schrieb Smile

Auch Modularisierung und "OO Programierstil" brauchen ihre Zeit zum Reifen (mit letzterem meine ich, dass man nur in bestimmten Funktionen auf bestimmte Werte zugreift und nicht überall. Dadurch kann man eine gewisse Konsistenz garantieren, was bei grösseren Projekten zwingend notwendig ist Wink)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

kamehan

BeitragFr, Jul 14, 2006 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
naja neu anfangen...es ist ja eigentlich ein bereits fertiges spiel das ich nur umbauen will, dazu gehört die tatsache das es ganz andere waffen und items gibt...
dabei werden einige slots ungültig wie zum bsp. beim waffenkauf etc...
der fehler (siehe thema) kam also dann vor wenn die bots waffen kaufen wollen, die es gar nicht gibt...
im grunde bräuchte ich nur die bots umprogrammieren das die keine waffen mehr kaufen (da waffen nur noch aufsammelbar sein sollen), aber das bekomme ich nicht hin weil die bots dann gar nichts mehr machen (laufen, zielen, schießen)...aber das wird noch, notfalls mit etwas hilfe die ich noch nicht habe
dazu kommen noch andere kleine fehler die ich nicht finden kann, weil der debugger diese auch nicht anzeigt (?)

also fang ich lieber neu an mit dem umprogrammieren anstatt die fehler auszubessern, geht wesentlich schneller
 

Dreamora

BeitragFr, Jul 14, 2006 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn die Fehler grösstenteils an den Bots liegen, würde ich darüber nachdenken, die Bots rauszunehmen und diese neu von Grund auf aufzubauen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

kamehan

BeitragFr, Jul 14, 2006 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
naja was heißt größtenfalls?!? es langt den bots die fähigkeit des einkaufens zu nehmen, von grund auf neu programmieren ist schon ne liga zu hoch für mich, da muß ich mich erstmal reinfinden

Spikespine

BeitragSa, Jul 15, 2006 10:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie gesagt, das ist wahrscheinlich ein kleiner Fehler, den man, wenn man weiß wie es geht, in minuten gelöst hat.

1. Debugger anmachen
2. Das Programm laufen lassen, bis der Fehler auftaucht.
3. Die Programmierzeile, in der durch 0 geteilt wird, wird angezeigt.
4. Schau gegebenenfalls im Debugger nach, welche Variable den Wert 0 hat
5. Erkenne den Fehler!

danach verzweigt sich das ganze natürlich. Möglicherweise musst du nur irgendwo im code verhindern, dass eine variable den Wert 0 erreicht. Es könnte aber auch sein, dass die Lösung komplizierter ist und möglicherweise eine ganz andere Grundüberlegung besitzen sollte wie deine erste Methode.
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

TheShadow

Moderator

BeitragSo, Jul 16, 2006 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Du teilst durch 0 was ja bekanntlich nicht geht


es geht schon - nur würde unendlich rauskommen. Integer können jedoch unendlich nicht verarbeiten...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

BladeRunner

Moderator

BeitragSo, Jul 16, 2006 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Teilen durch null geht eben nicht. Man kann nicht durch nichts teilen.
Es hat sich nur bei Floats eingebürgert "Inf." zu nehmen, aber korrekt ist das nicht, da das Ergebnis einer Division durch Null nicht bestimmbar ist.

EDIT:
http://de.wikipedia.org/wiki/Division_durch_Null
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

kamehan

BeitragMi, Jul 19, 2006 6:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ahh gut jetzt xD habs ja verstanden Laughing und wie bereits erwähnt hab ich auch den grund für die 0teilung gefunden, von daher ist dieser thread unnütz und kann meinetwegen geschlossen werden...oder laßt ihn in frieden nach unten rutschen Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group