In diesem Kapitel lernst du die wichtigsten Datentypen von LPC kennen.
Datentypen sind das Fundament jeder Programmiersprache – sie bestimmen,
was ein Wert ist, was man damit tun darf und was nicht.
Wir gehen langsam vor, mit vielen Beispielen und Erklärungen für absolute Anfänger.
Danach: Variablen, Gültigkeitsbereiche und Speicher.
3.1 Was sind Datentypen überhaupt?
Ein Datentyp beschreibt, welche Art von Information in einer
Variable gespeichert wird. Ein Name ist etwas anderes als eine Zahl.
Ein Objekt ist etwas anderes als ein Text. LPC muss das wissen, um korrekt
arbeiten zu können.
Vergleich aus dem echten Leben:
Eine Zahl → kannst du addieren
Ein Text → kannst du anzeigen
Ein Objekt → kannst du bewegen oder abfragen
LPC ist dabei streng, aber nicht kleinlich.
Viele Fehler von Anfängern entstehen, weil Datentypen verwechselt werden.
Dieses Kapitel soll genau das verhindern.
3.2 Der Datentyp int – ganze Zahlen
int steht für Integer, also ganze Zahlen.
Das sind Zahlen ohne Komma.
Beispiele für int-Werte
0
1
-5
42
100000
Typische Verwendung:
Lebenspunkte
Level
Zähler
Zufallswerte
int in einer Variable
int hp;
hp = 50;
hp = hp - 10; // Schaden
hp = hp + 5; // Heilung
Wichtig: Es gibt keine Kommazahlen mit int.
3.5 ist kein gültiger int-Wert.
3.3 Der Datentyp string – Texte
Ein string ist Text. Alles, was in Anführungszeichen steht,
ist ein String.
Strings in LPC
"Hallo Welt"
"Ein langer Text mit Leerzeichen"
"123" // das ist Text, keine Zahl!
Strings werden sehr oft benutzt:
Namen
Beschreibungen
Ausgaben an Spieler
String-Variable
string name;
name = "Ein alter Baum";
write(name);
Häufiger Anfängerfehler:"10" ist nicht dasselbe wie 10.
Das erste ist Text, das zweite eine Zahl.
3.4 Der Datentyp object – Dinge in der Welt
Einer der wichtigsten Datentypen in LPC ist object.
Ein Objekt ist ein echtes Ding in der Spielwelt:
Spieler
Räume
NPCs
Items
Object-Variable
object room;
room = environment(this_player());
Mit Objekten kannst du Funktionen aufrufen:
Funktion auf Objekt aufrufen
object pl;
pl = this_player();
write(pl->name());
Merksatz: Ohne Objekte gibt es kein MUD.
LPC ist eine objektorientierte Sprache.
3.5 Der Datentyp mixed – alles und nichts
mixed ist ein besonderer Typ.
Er kann jeden anderen Datentyp enthalten.
mixed in Aktion
mixed x;
x = 10;
x = "Hallo";
x = this_player();
Das ist praktisch, aber auch gefährlich:
✔ flexibel
✘ weniger übersichtlich
✘ mehr Fehler möglich
Empfehlung:
Verwende mixed nur, wenn du es wirklich brauchst.
3.6 Arrays – mehrere Werte in einer Variable
Ein Array ist eine Liste von Werten.
In LPC werden Arrays mit ({ ... }) geschrieben.