Az Inform 7 programozási nyelv

Típusok, típuskonstrukciók

Típusok, típuskonstrukciók

Az Inform 7-ben a típusok, mint sok minden más, kissé el vannak rejtve a programozó elől.

Típusszerkezet

A típus kulcsszava a kind. Ebből lehet konkrét "objektumokat" létrehozni. Ezeknek az objektumoknak vannak property-jei. A property-knek lehet alapértelmezett értéke, ezt a kind definícójában lehet megadni. Felüldefiniálás a konkrét objektum létrehozásakor lehetséges.

Létezik olyan típus is amit más programnyelvekben enumeration-nak hívunk.

The brightness is a kind of value.The brightnesses are dim,blazing.

Elemi típusok

Az elemi típusok a some text és number. A some text a string-nek felel meg, a number az integer-nek. A some text értékeket kettős idézőjel közé kell tenni. Ez a leggyakrabban használt típus, hiszen ez tárolja az összes olyan szöveget, amit a gép a játékosnak információ gyanánt kiír.

Típuskonstrukciók

Lehet listát létrehozni és ezen a listán egy foreach ciklussal végigmenni. Ezeknek az elemeknek azonos típusúaknak kell lenniük. A hasznos helyettesítés: "[list of leírás]" kiírja mondatként azokat a dolgokat, amelyek megfelelnek a leírásnak.

"The places you can go are [list of rooms]."

Ha nincs ilyen dolog akkor 'nothing' lesz kiírva.

Nem mindegy, hogy a lista hány elemet tartalmaz. Ha csak egy elemet, akkor más névelő kell (is), mintha több elemet (are). Ezt azonban előre nem lehet tudni, de az alábbi konstrukció megoldja a problémát.

Near here [is-are list of rooms]."

Típuskonverziók

Nincs automatikus konverzió. Ha egy változót number típusúra deklaráltunk és string értéket akarunk neki adni (vagy fordítva), akkor fordítási hibát kapunk. Érdekesség, hogy egy number típust egyszerűen ki lehet írni szavakkal:

"You've been wandering around for [turn count in words] turn[s] now."

Az [s] a turn után azért kell, hogy "one turn" és "two turns" legyen kiíratva a megfelelő időben.

Változók, konstansok

Konstansok alakja a következő:

The érték is called név.

Lokális változókat a let kulcsszóval vezethetünk be. Változókat nem lehet akárhol deklarálni, például akciókon belül lehet.

let név be érték

A típust nem kell megadni, azt a kötelezően megadott kezdő értékből vezeti le a fordító.

Kind-ok

Ezek a más nyelvekben megszokott osztályoknak felelnek meg. Van öröklődés és kompozíció is. A kiegészítések majdnem mindig tartalmaznak újabb típusokat. Az alább látható hierarchia tartalmazza az alap kind-okat.

room
Egy helyíség, ilyenekből áll a játékvilág. Ezekbe kell elhelyezni a többi tárgyat.
direction
Irány, alapértelmezésként az égtájak: north, northeast... és up, down, outside, inside.
region
Több szobát összefogó nagyob térség
thing
Egy tárgy, nincs semmilyen konkrét tulajdonsága
door
Ajtó, szobák között helyezkedik el.
container
Tároló, bele lehet rakni és ki lehet belőle venni dolgokat.
vehicle
Jármű
player's holdall
Játékosnál levő tárgyak tárolója
supporter
Tartó, tárgyakat lehet rá pakolni
backdrop
Több szobában egyszerre jelnlévő tárgy
person
Nem játékos karakter
device
működésbe hozható gépezet, ki-be lehet kapcsolni

Új kind öröklődéssel egyszerűen létrehozható.

Car is a kind of vehicle.