Einzelnen Beitrag anzeigen

Premaider

Registriert seit: 31. Mär 2012
160 Beiträge
 
#7

AW: Spiel (Aspirin): Spieler kurzzeitig unverletzlich machen

  Alt 19. Okt 2012, 19:27
Ja, es ist sdauberer, aber auch Fehlerunanfälliger.

Ein Boolean hat eben nicht nur zwei Zustände wie True und False, sondern mindestens 256. (Boolean = 1 Byte und z.B. LongBool = 4 Byte)

Ganz genau ist es so definiert:
False = 0
True <> 0

Aber da eine Konstante nur einen Wert haben kann, ist in Delphi das True als 1 definiert. (in C-Sprachen dagegen meist als -1)

=True kann daher eine falsches Ergebnis liefern.

Das ist so ähnlich, wie bei den Floats (Fließkommazahlen ala Single oder Double), walche man auch nicht unbedingt auf "Gleichheit" prüfen sollte.

Delphi-Quellcode:
var B: Boolean;

B := Boolean(2);

if B = True then
  ShowMessage('B = True');
if B = False then
  ShowMessage('B = False');

if B then
  ShowMessage('B');
if not B then
  ShowMessage('not B');
Okay werd ich machen danke
" aber eigentlich solltest du die Herzen-Variable nicht verändern, wenn sie nicht verändert werden soll (not Spieler.Verletzbar)" meinst du damit das die herzen verringert werden sollen wenn der Spieler unverletzlich wird ?

Dann werd ich das dann machen wenn mein eigendliches Problem gelöst ist.

Geändert von Premaider (19. Okt 2012 um 19:41 Uhr)
  Mit Zitat antworten Zitat