zwischenspeicherung

This commit is contained in:
Christian Fraß 2018-03-26 10:42:58 +02:00
parent 74a9792bbf
commit 48b556057c
20 changed files with 2090 additions and 1906 deletions

View file

@ -16,7 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor
{
/**
@ -32,7 +38,7 @@ module mod_vtm_aufbau
{
beispiel : ()=>typ_aktor;
drehen : (aktor : typ_aktor, inkrement : int)=>void;
verwenden : (aktor : typ_aktor, figur : typ_figur)=>void;
verwenden : (aktor : typ_aktor, figur : mod_figur.typ_figur)=>void;
exportieren : (aktor : typ_aktor)=>any;
importieren : (roh : any)=>typ_aktor;
}
@ -48,16 +54,18 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function aktor_erstellen(art : string, kern : any) : typ_aktor
/*
export function erstellen(art : string, kern : any) : typ_aktor
{
return {"art": art, "angaben": kern};
return einpacken(art, kern);
}
*/
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function aktor_beispiel(art : string) : typ_aktor
export function beispiel(art : string) : typ_aktor
{
return implementierung_aktor[art].beispiel();
}
@ -66,7 +74,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function aktor_drehen(aktor : typ_aktor, inkrement ?: int) : void
export function drehen(aktor : typ_aktor, inkrement ?: int) : void
{
return implementierung_aktor[aktor.art].drehen(aktor, inkrement);
}
@ -75,7 +83,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function aktor_verwenden(aktor : typ_aktor, figur : typ_figur) : void
export function verwenden(aktor : typ_aktor, figur : mod_figur.typ_figur) : void
{
return implementierung_aktor[aktor.art].verwenden(aktor, figur);
}
@ -84,7 +92,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function aktor_exportieren(aktor : typ_aktor) : any
export function exportieren(aktor : typ_aktor) : any
{
return implementierung_aktor[aktor.art].exportieren(aktor);
}
@ -93,11 +101,14 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function aktor_importieren(roh : any) : typ_aktor
export function importieren(roh : any) : typ_aktor
{
return implementierung_aktor[roh.art].importieren(roh);
}
}
}
}

View file

@ -16,9 +16,21 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor_annehmer
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
let art : string = "annehmer";
/**
* @author kcf <vidofnir@folksprak.org>
*/
@ -31,7 +43,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function annehmer_erstellen
function erstellen
(
)
: typ_annehmer
@ -44,31 +56,31 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function annehmer_erstellen_aktor
export function erstellen_aktor
(
)
: typ_aktor
: mod_aktor.typ_aktor
{
return {"art": "annehmer", "angaben": annehmer_erstellen()};
return einpacken(art, erstellen());
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function annehmer_beispiel
function beispiel
(
)
: typ_annehmer
{
return annehmer_erstellen();
return erstellen();
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function annehmer_drehen
function drehen
(
annehmer : typ_annehmer,
inkrement ?: int
@ -81,21 +93,21 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function annehmer_verwenden
function verwenden
(
annehmer : typ_annehmer,
figur : typ_figur
figur : mod_figur.typ_figur
)
: void
{
figur_annehmen(figur);
mod_figur.annehmen(figur);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function annehmer_exportieren
function exportieren
(
annehmer : typ_annehmer
)
@ -109,14 +121,14 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function annehmer_importieren
function importieren
(
roh : any
)
: typ_annehmer
{
return (
annehmer_erstellen
erstellen
(
)
);
@ -126,18 +138,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
let wrap = (angaben => ({"art": "annehmer", "angaben": angaben}));
let unwrap = (aktor => aktor.angaben);
implementierung_aktor["annehmer"] =
mod_aktor.implementierung_aktor[art] =
{
"beispiel": () => wrap(annehmer_beispiel()),
"drehen": (aktor, inkrement) => annehmer_drehen(unwrap(aktor), inkrement),
"verwenden": (aktor, figur) => annehmer_verwenden(unwrap(aktor), figur),
"exportieren": (aktor) => ({"art": "annehmer_", "angaben": annehmer_exportieren(aktor.angaben)}),
"importieren": (roh) => wrap(annehmer_importieren(roh)),
"beispiel": () => einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh)),
}
;
}
}
}

View file

@ -16,15 +16,27 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor_befoerderer
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
let art : string = "befoerderer";
/**
* @author kcf <vidofnir@folksprak.org>
*/
export type typ_befoerderer =
{
richtung : typ_richtung;
richtung : mod_richtung.typ_richtung;
}
;
@ -32,9 +44,9 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function befoerderer_erstellen
function erstellen
(
richtung : typ_richtung
richtung : mod_richtung.typ_richtung
)
: typ_befoerderer
{
@ -47,36 +59,36 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function befoerderer_erstellen_aktor
export function erstellen_aktor
(
richtung : typ_richtung
richtung : mod_richtung.typ_richtung
)
: typ_aktor
: mod_aktor.typ_aktor
{
return {"art": "befoerderer", "angaben": befoerderer_erstellen(richtung)};
return einpacken(art, erstellen(richtung));
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function befoerderer_beispiel
function beispiel
(
)
: typ_befoerderer
{
return befoerderer_erstellen(0);
return erstellen(0);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function befoerderer_richtung_lesen
export function richtung_lesen
(
befoerderer : typ_befoerderer
)
: typ_richtung
: mod_richtung.typ_richtung
{
return befoerderer.richtung;
}
@ -85,42 +97,42 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function befoerderer_drehen
function drehen
(
befoerderer : typ_befoerderer,
inkrement : int = +1
)
: void
{
befoerderer.richtung = richtung_addieren(befoerderer.richtung, inkrement);
befoerderer.richtung = mod_richtung.addieren(befoerderer.richtung, inkrement);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function befoerderer_verwenden
function verwenden
(
befoerderer : typ_befoerderer,
figur : typ_figur
figur : mod_figur.typ_figur
)
: void
{
figur_bewegen(figur, befoerderer.richtung);
mod_figur.bewegen(figur, befoerderer.richtung);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function befoerderer_exportieren
function exportieren
(
befoerderer : typ_befoerderer
)
: any
{
return {
"richtung": richtung_exportieren(befoerderer.richtung),
"richtung": mod_richtung.exportieren(befoerderer.richtung),
};
}
@ -128,16 +140,16 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function befoerderer_importieren
function importieren
(
roh : any
)
: typ_befoerderer
{
return (
befoerderer_erstellen
erstellen
(
richtung_importieren(roh["richtung"])
mod_richtung.importieren(roh["richtung"])
)
);
}
@ -146,18 +158,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
let wrap = (angaben => ({"art": "befoerderer", "angaben": angaben}));
let unwrap = (aktor => aktor.angaben);
implementierung_aktor["befoerderer"] =
mod_aktor.implementierung_aktor[art] =
{
"beispiel": () => wrap(befoerderer_beispiel()),
"drehen": (aktor, inkrement) => befoerderer_drehen(unwrap(aktor), inkrement),
"verwenden": (aktor, figur) => befoerderer_verwenden(unwrap(aktor), figur),
"exportieren": (aktor) => ({"art": "befoerderer", "angaben": befoerderer_exportieren(aktor.angaben)}),
"importieren": (roh) => wrap(befoerderer_importieren(roh)),
"beispiel": () => einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh)),
}
;
}
}
}

View file

@ -16,15 +16,27 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor_erzeuger
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
let art : string = "erzeuger";
/**
* @author kcf <vidofnir@folksprak.org>
*/
export type typ_erzeuger =
{
richtung : typ_richtung;
richtung : mod_richtung.typ_richtung;
}
;
@ -32,9 +44,9 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function erzeuger_erstellen
function erstellen
(
richtung : typ_richtung
richtung : mod_richtung.typ_richtung
)
: typ_erzeuger
{
@ -47,36 +59,36 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function erzeuger_erstellen_aktor
export function erstellen_aktor
(
richtung : typ_richtung
richtung : mod_richtung.typ_richtung
)
: typ_aktor
: mod_aktor.typ_aktor
{
return {"art": "erzeuger", "angaben": erzeuger_erstellen(richtung)};
return einpacken(art, erstellen(richtung));
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function erzeuger_beispiel
function beispiel
(
)
: typ_erzeuger
{
return erzeuger_erstellen(0);
return erstellen(0);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function erzeuger_richtung_lesen
export function richtung_lesen
(
erzeuger : typ_erzeuger
)
: typ_richtung
: mod_richtung.typ_richtung
{
return erzeuger.richtung;
}
@ -85,42 +97,42 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function erzeuger_drehen
function drehen
(
erzeuger : typ_erzeuger,
inkrement : int = +1
)
: void
{
erzeuger.richtung = richtung_addieren(erzeuger.richtung, inkrement);
erzeuger.richtung = mod_richtung.addieren(erzeuger.richtung, inkrement);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function erzeuger_verwenden
function verwenden
(
erzeuger : typ_erzeuger,
figur : typ_figur
figur : mod_figur.typ_figur
)
: void
{
figur_bewegen(figur, erzeuger.richtung);
mod_figur.bewegen(figur, erzeuger.richtung);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function erzeuger_exportieren
function exportieren
(
erzeuger : typ_erzeuger
)
: any
{
return {
"richtung": richtung_exportieren(erzeuger.richtung),
"richtung": mod_richtung.exportieren(erzeuger.richtung),
};
}
@ -128,16 +140,16 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function erzeuger_importieren
function importieren
(
roh : any
)
: typ_erzeuger
{
return (
erzeuger_erstellen
erstellen
(
richtung_importieren(roh["richtung"])
mod_richtung.importieren(roh["richtung"])
)
);
}
@ -146,18 +158,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
let wrap = (angaben => ({"art": "erzeuger", "angaben": angaben}));
let unwrap = (aktor => aktor.angaben);
implementierung_aktor["erzeuger"] =
mod_aktor.implementierung_aktor[art] =
{
"beispiel": () => wrap(erzeuger_beispiel()),
"drehen": (aktor, inkrement) => erzeuger_drehen(unwrap(aktor), inkrement),
"verwenden": (aktor, figur) => erzeuger_verwenden(unwrap(aktor), figur),
"exportieren": (aktor) => ({"art": "erzeuger", "angaben": erzeuger_exportieren(aktor.angaben)}),
"importieren": (roh) => wrap(erzeuger_importieren(roh)),
"beispiel": () => einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(auspacken(aktor))}),
"importieren": (roh) => einpacken(art, importieren(roh)),
}
;
}
}
}

View file

@ -16,17 +16,29 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor_leser
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
let art : string = "leser";
/**
* @author kcf <vidofnir@folksprak.org>
*/
export type typ_leser =
{
"richtung": typ_richtung,
"symbol_links": typ_symbol,
"symbol_rechts": typ_symbol,
"richtung": mod_richtung.typ_richtung,
"symbol_links": mod_symbol.typ_symbol,
"symbol_rechts": mod_symbol.typ_symbol,
}
;
@ -34,11 +46,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function leser_erstellen
function erstellen
(
richtung : typ_richtung,
symbol_links : typ_symbol,
symbol_rechts : typ_symbol
richtung : mod_richtung.typ_richtung,
symbol_links : mod_symbol.typ_symbol,
symbol_rechts : mod_symbol.typ_symbol
)
: typ_leser
{
@ -53,38 +65,38 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function leser_erstellen_aktor
export function erstellen_aktor
(
richtung : typ_richtung,
symbol_links : typ_symbol,
symbol_rechts : typ_symbol
richtung : mod_richtung.typ_richtung,
symbol_links : mod_symbol.typ_symbol,
symbol_rechts : mod_symbol.typ_symbol
)
: typ_aktor
: mod_aktor.typ_aktor
{
return {"art": "leser", "angaben": leser_erstellen(richtung, symbol_links, symbol_rechts)};
return einpacken(art, erstellen(richtung, symbol_links, symbol_rechts));
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function leser_beispiel
function beispiel
(
)
: typ_leser
{
return leser_erstellen(0, 0, 1);
return erstellen(0, 0, 1);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function leser_richtung_lesen
export function richtung_lesen
(
leser : typ_leser
)
: typ_richtung
: mod_richtung.typ_richtung
{
return leser.richtung;
}
@ -93,11 +105,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function leser_symbol_links_lesen
export function symbol_links_lesen
(
leser : typ_leser
)
: typ_symbol
: mod_symbol.typ_symbol
{
return leser.symbol_links;
}
@ -106,11 +118,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function leser_symbol_rechts_lesen
export function symbol_rechts_lesen
(
leser : typ_leser
)
: typ_symbol
: mod_symbol.typ_symbol
{
return leser.symbol_rechts;
}
@ -119,40 +131,40 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function leser_drehen
function drehen
(
leser : typ_leser,
inkrement : int = +1
)
: void
{
leser.richtung = richtung_addieren(leser.richtung, inkrement);
leser.richtung = mod_richtung.addieren(leser.richtung, inkrement);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function leser_verwenden
function verwenden
(
leser : typ_leser,
figur : typ_figur
figur : mod_figur.typ_figur
)
: void
{
let symbol_ : schnittstelle_fehlermonade<typ_symbol> = figur_lesen(figur);
let summand : typ_richtung;
let symbol_ : schnittstelle_fehlermonade<mod_symbol.typ_symbol> = mod_figur.lesen(figur);
let summand : mod_richtung.typ_richtung;
if (symbol_.ist_schlicht())
{
let symbol : typ_symbol = symbol_.lesen();
let symbol : mod_symbol.typ_symbol = symbol_.lesen();
if (symbol === leser.symbol_links)
{
figur_schieben(figur);
mod_figur.schieben(figur);
summand = +2;
}
else if (symbol === leser.symbol_rechts)
{
figur_schieben(figur);
mod_figur.schieben(figur);
summand = -2;
}
else
@ -164,24 +176,24 @@ module mod_vtm_aufbau
{
summand = 0;
}
let richtung : typ_richtung = richtung_addieren(leser.richtung, summand);
figur_bewegen(figur, richtung);
let richtung : mod_richtung.typ_richtung = mod_richtung.addieren(leser.richtung, summand);
mod_figur.bewegen(figur, richtung);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function leser_exportieren
function exportieren
(
leser : typ_leser
)
: any
{
return {
"richtung": richtung_exportieren(leser.richtung),
"symbol_links": symbol_exportieren(leser.symbol_links),
"symbol_rechts": symbol_exportieren(leser.symbol_rechts),
"richtung": mod_richtung.exportieren(leser.richtung),
"symbol_links": mod_symbol.exportieren(leser.symbol_links),
"symbol_rechts": mod_symbol.exportieren(leser.symbol_rechts),
};
}
@ -189,18 +201,18 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function leser_importieren
function importieren
(
roh : any
)
: typ_leser
{
return (
leser_erstellen
erstellen
(
richtung_importieren(roh["richtung"]),
symbol_importieren(roh["symbol_links"]),
symbol_importieren(roh["symbol_rechts"])
mod_richtung.importieren(roh["richtung"]),
mod_symbol.importieren(roh["symbol_links"]),
mod_symbol.importieren(roh["symbol_rechts"])
)
);
}
@ -209,18 +221,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
let wrap = (angaben => ({"art": "leser", "angaben": angaben}));
let unwrap = (aktor => aktor.angaben);
implementierung_aktor["leser"] =
mod_aktor.implementierung_aktor[art] =
{
"beispiel": () => wrap(leser_beispiel()),
"drehen": (aktor, inkrement) => leser_drehen(unwrap(aktor), inkrement),
"verwenden": (aktor, figur) => leser_verwenden(unwrap(aktor), figur),
"exportieren": (aktor) => ({"art": "leser", "angaben": leser_exportieren(aktor.angaben)}),
"importieren": (roh) => wrap(leser_importieren(roh)),
"beispiel": () => einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": "leser", "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh)),
}
;
}
}
}

View file

@ -16,16 +16,28 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor_schreiber
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
let art : string = "schreiber";
/**
* @author kcf <vidofnir@folksprak.org>
*/
export type typ_schreiber =
{
richtung : typ_richtung;
symbol : typ_symbol;
richtung : mod_richtung.typ_richtung;
symbol : mod_symbol.typ_symbol;
}
;
@ -33,10 +45,10 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function schreiber_erstellen
function erstellen
(
richtung : typ_richtung,
symbol : typ_symbol
richtung : mod_richtung.typ_richtung,
symbol : mod_symbol.typ_symbol
)
: typ_schreiber
{
@ -50,37 +62,37 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function schreiber_erstellen_aktor
export function erstellen_aktor
(
richtung : typ_richtung,
symbol : typ_symbol
richtung : mod_richtung.typ_richtung,
symbol : mod_symbol.typ_symbol
)
: typ_aktor
: mod_aktor.typ_aktor
{
return {"art": "schreiber", "angaben": schreiber_erstellen(richtung, symbol)};
return einpacken(art, erstellen(richtung, symbol));
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function schreiber_beispiel
function beispiel
(
)
: typ_schreiber
{
return schreiber_erstellen(0, 0);
return erstellen(0, 0);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function schreiber_richtung_lesen
export function richtung_lesen
(
schreiber : typ_schreiber
)
: typ_richtung
: mod_richtung.typ_richtung
{
return schreiber.richtung;
}
@ -89,11 +101,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function schreiber_symbol_lesen
export function symbol_lesen
(
schreiber : typ_schreiber
)
: typ_symbol
: mod_symbol.typ_symbol
{
return schreiber.symbol;
}
@ -102,44 +114,44 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function schreiber_drehen
function drehen
(
schreiber : typ_schreiber,
inkrement : int = +1
)
: void
{
schreiber.richtung = richtung_addieren(schreiber.richtung, inkrement);
schreiber.richtung = mod_richtung.addieren(schreiber.richtung, inkrement);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function schreiber_verwenden
function verwenden
(
schreiber : typ_schreiber,
figur : typ_figur
figur : mod_figur.typ_figur
)
: void
{
figur_schreiben(figur, schreiber.symbol);
figur_bewegen(figur, schreiber.richtung);
mod_figur.schreiben(figur, schreiber.symbol);
mod_figur.bewegen(figur, schreiber.richtung);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function schreiber_exportieren
function exportieren
(
schreiber : typ_schreiber
)
: any
{
return {
"richtung": richtung_exportieren(schreiber.richtung),
"symbol": symbol_exportieren(schreiber.symbol),
"richtung": mod_richtung.exportieren(schreiber.richtung),
"symbol": mod_symbol.exportieren(schreiber.symbol),
};
}
@ -147,17 +159,17 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function schreiber_importieren
function importieren
(
roh : any
)
: typ_schreiber
{
return (
schreiber_erstellen
erstellen
(
richtung_importieren(roh["richtung"]),
symbol_importieren(roh["symbol"])
mod_richtung.importieren(roh["richtung"]),
mod_symbol.importieren(roh["symbol"])
)
);
}
@ -166,18 +178,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
let wrap = (angaben => ({"art": "schreiber", "angaben": angaben}));
let unwrap = (aktor => aktor.angaben);
implementierung_aktor["schreiber"] =
mod_aktor.implementierung_aktor["schreiber"] =
{
"beispiel": () => wrap(schreiber_beispiel()),
"drehen": (aktor, inkrement) => schreiber_drehen(unwrap(aktor), inkrement),
"verwenden": (aktor, figur) => schreiber_verwenden(unwrap(aktor), figur),
"exportieren": (aktor) => ({"art": "schreiber", "angaben": schreiber_exportieren(aktor.angaben)}),
"importieren": (roh) => wrap(schreiber_importieren(roh)),
"beispiel": () => einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": "schreiber", "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh)),
}
;
}
}
}

View file

@ -16,9 +16,21 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_aktor_verwerfer
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
let art : string = "verwerfer";
/**
* @author kcf <vidofnir@folksprak.org>
*/
@ -31,7 +43,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function verwerfer_erstellen
function erstellen
(
)
: typ_verwerfer
@ -44,31 +56,31 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function verwerfer_erstellen_aktor
export function erstellen_aktor
(
)
: typ_aktor
: mod_aktor.typ_aktor
{
return {"art": "verwerfer", "angaben": verwerfer_erstellen()};
return einpacken(art, erstellen());
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function verwerfer_beispiel
function beispiel
(
)
: typ_verwerfer
{
return verwerfer_erstellen();
return erstellen();
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function verwerfer_drehen
function drehen
(
verwerfer : typ_verwerfer,
inkrement ?: int
@ -81,21 +93,21 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function verwerfer_verwenden
function verwenden
(
verwerfer : typ_verwerfer,
figur : typ_figur
figur : mod_figur.typ_figur
)
: void
{
figur_verwerfen(figur);
mod_figur.verwerfen(figur);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function verwerfer_exportieren
function exportieren
(
verwerfer : typ_verwerfer
)
@ -109,14 +121,14 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function verwerfer_importieren
function importieren
(
roh : any
)
: typ_verwerfer
{
return (
verwerfer_erstellen
erstellen
(
)
);
@ -126,18 +138,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
let wrap = (angaben => ({"art": "verwerfer", "angaben": angaben}));
let unwrap = (aktor => aktor.angaben);
implementierung_aktor["verwerfer"] =
mod_aktor.implementierung_aktor[art] =
{
"beispiel": () => wrap(verwerfer_beispiel()),
"drehen": (aktor, inkrement) => verwerfer_drehen(unwrap(aktor), inkrement),
"verwenden": (aktor, figur) => verwerfer_verwenden(unwrap(aktor), figur),
"exportieren": (aktor) => ({"art": "verwerfer", "angaben": verwerfer_exportieren(aktor.angaben)}),
"importieren": (roh) => wrap(verwerfer_importieren(roh)),
"beispiel": () => einpacken(art, beispiel()),
"drehen": (aktor, inkrement) => drehen(auspacken(aktor), inkrement),
"verwenden": (aktor, figur) => verwenden(auspacken(aktor), figur),
"exportieren": (aktor) => ({"art": art, "angaben": exportieren(aktor.angaben)}),
"importieren": (roh) => einpacken(art, importieren(roh)),
}
;
}
}
}

View file

@ -24,7 +24,7 @@ module mod_vtm_aufbau
*/
export type typ_akzeptortest =
{
eingabe : Array<typ_symbol>;
eingabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>;
annehmen : boolean;
}
;
@ -35,7 +35,7 @@ module mod_vtm_aufbau
*/
export function akzeptortest_erstellen
(
eingabe : Array<typ_symbol>,
eingabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>,
annehmen : boolean
)
: typ_akzeptortest
@ -54,7 +54,7 @@ module mod_vtm_aufbau
(
akzeptortest : typ_akzeptortest
)
: Array<typ_symbol>
: Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
{
return akzeptortest.eingabe;
}
@ -67,7 +67,7 @@ module mod_vtm_aufbau
(
akzeptortest : typ_akzeptortest,
angenommen : boolean,
ausgabe : Array<typ_symbol>
ausgabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
)
: boolean
{

View file

@ -32,10 +32,10 @@ module mod_vtm_aufbau
(
test : typ_test
)
: Array<typ_symbol>
: Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
{
return (
fallunterscheidung<Array<typ_symbol>>
fallunterscheidung<Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>>
(
test,
{
@ -54,7 +54,7 @@ module mod_vtm_aufbau
(
test : typ_test,
angenommen : boolean,
ausgabe : Array<typ_symbol>
ausgabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
)
: boolean
{

View file

@ -24,8 +24,8 @@ module mod_vtm_aufbau
*/
export type typ_transduktortest =
{
eingabe : Array<typ_symbol>;
ausgabe : Array<typ_symbol>;
eingabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>;
ausgabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>;
}
;
@ -35,8 +35,8 @@ module mod_vtm_aufbau
*/
export function transduktortest_erstellen
(
eingabe : Array<typ_symbol>,
ausgabe : Array<typ_symbol>
eingabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>,
ausgabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
)
: typ_transduktortest
{
@ -54,7 +54,7 @@ module mod_vtm_aufbau
(
transduktortest : typ_transduktortest
)
: Array<typ_symbol>
: Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
{
return transduktortest.eingabe;
}
@ -67,7 +67,7 @@ module mod_vtm_aufbau
(
transduktortest : typ_transduktortest,
angenommen : boolean,
ausgabe : Array<typ_symbol>
ausgabe : Array<mod_vtm.mod_aufbau.mod_symbol.typ_symbol>
)
: boolean
{
@ -80,7 +80,7 @@ module mod_vtm_aufbau
let gleich : boolean = true;
for (let index : int = 0; index < transduktortest.ausgabe.length; index += 1)
{
if (! symbol_vergleichen(transduktortest.ausgabe[index], ausgabe[index]))
if (! mod_vtm.mod_aufbau.mod_symbol.vergleichen(transduktortest.ausgabe[index], ausgabe[index]))
{
gleich = false;
break;

View file

@ -3,20 +3,26 @@
* Copyright (C) 2016 Christian Fraß <vidofnir@folksprak.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General export function figur_License as published by
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General export function figur_License for more details.
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General export function figur_License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_figur
{
/**
@ -24,9 +30,9 @@ module mod_vtm_aufbau
*/
export type typ_figur =
{
zustand : typ_zustand;
band : Array<typ_symbol>;
stelle : typ_stelle;
zustand : mod_zustand.typ_zustand;
band : Array<mod_symbol.typ_symbol>;
stelle : mod_stelle.typ_stelle;
}
;
@ -34,15 +40,15 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_erstellen
export function erstellen
(
band : Array<typ_symbol> = [],
stelle : typ_stelle = stelle_null()
band : Array<mod_symbol.typ_symbol> = [],
stelle : mod_stelle.typ_stelle = mod_stelle.null_()
)
: typ_figur
{
return {
"zustand": zustand_laufend,
"zustand": mod_zustand.laufend,
"band": band,
"stelle": stelle,
};
@ -52,11 +58,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_zustand_lesen
export function zustand_lesen
(
figur : typ_figur
)
: typ_zustand
: mod_zustand.typ_zustand
{
return figur.zustand;
}
@ -65,11 +71,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_band_lesen
export function band_lesen
(
figur : typ_figur
)
: Array<typ_symbol>
: Array<mod_symbol.typ_symbol>
{
return figur.band;
}
@ -78,11 +84,11 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_stelle_lesen
export function stelle_lesen
(
figur : typ_figur
)
: typ_stelle
: mod_stelle.typ_stelle
{
return figur.stelle;
}
@ -91,25 +97,25 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_bewegen
export function bewegen
(
figur : typ_figur,
richtung : typ_richtung
richtung : mod_richtung.typ_richtung
)
: void
{
let summand : typ_stelle = stelle_von_richtung(richtung);
figur.stelle = stelle_addieren(figur.stelle, summand);
let summand : mod_stelle.typ_stelle = mod_stelle.von_richtung(richtung);
figur.stelle = mod_stelle.addieren(figur.stelle, summand);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_schreiben
export function schreiben
(
figur : typ_figur,
symbol : typ_symbol
symbol : mod_symbol.typ_symbol
)
: void
{
@ -120,19 +126,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_lesen
export function lesen
(
figur : typ_figur
)
: schnittstelle_fehlermonade<typ_symbol>
: schnittstelle_fehlermonade<mod_symbol.typ_symbol>
{
if (figur.band.length <= 0)
{
return (new klasse_nichts<typ_symbol>());
return (new klasse_nichts<mod_symbol.typ_symbol>());
}
else
{
return (new klasse_schlicht<typ_symbol>(figur.band[0]));
return (new klasse_schlicht<mod_symbol.typ_symbol>(figur.band[0]));
}
}
@ -140,7 +146,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_schieben
export function schieben
(
figur : typ_figur
)
@ -161,26 +167,30 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_annehmen
export function annehmen
(
figur : typ_figur
)
: void
{
figur.zustand = zustand_angenommen;
figur.zustand = mod_zustand.angenommen;
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function figur_verwerfen
export function verwerfen
(
figur : typ_figur
)
: void
{
figur.zustand = zustand_abgelehnt;
figur.zustand = mod_zustand.abgelehnt;
}
}
}
}

View file

@ -16,7 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_modus
{
/**
@ -28,10 +34,14 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export const modus_initial = 0;
export const modus_ungewiss = 1;
export const modus_fehlerhaft = 2;
export const modus_korrekt = 3;
export const initial = 0;
export const ungewiss = 1;
export const fehlerhaft = 2;
export const korrekt = 3;
}
}
}

View file

@ -3,20 +3,26 @@
* Copyright (C) 2016 Christian Fraß <vidofnir@folksprak.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General export function partie_License as published by
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General export function partie_License for more details.
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General export function partie_License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_partie
{
/**
@ -24,11 +30,11 @@ module mod_vtm_aufbau
*/
export type typ_partie =
{
welt : typ_welt;
figur : schnittstelle_fehlermonade<typ_figur>;
aufgabe : typ_aufgabe;
welt : mod_welt.typ_welt;
figur : schnittstelle_fehlermonade<mod_figur.typ_figur>;
aufgabe : mod_vtm_aufbau.typ_aufgabe;
testindex : schnittstelle_fehlermonade<int>;
modus : typ_modus;
modus : mod_modus.typ_modus;
lauscher : {[ereignis : string] : Array<(angaben ?: any)=>void>};
}
;
@ -37,9 +43,9 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_erstellen
export function erstellen
(
aufgabe : typ_aufgabe
aufgabe : mod_vtm_aufbau.typ_aufgabe
)
: typ_partie
{
@ -57,8 +63,8 @@ module mod_vtm_aufbau
"aenderung_figur": [],
"aenderung_modus": [],
};
partie_welt_leeren(partie, false);
partie_zuruecksetzen(partie, false);
welt_leeren(partie, false);
zuruecksetzen(partie, false);
return partie;
}
@ -66,7 +72,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_lauschen(partie : typ_partie, ereignis : string, prozedur : (angaben ?: any)=>void) : void
export function lauschen(partie : typ_partie, ereignis : string, prozedur : (angaben ?: any)=>void) : void
{
if (ereignis in partie.lauscher)
{
@ -83,7 +89,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
function partie_benachrichtigen(partie : typ_partie, ereignis : string, angaben : any = {}) : void
function benachrichtigen(partie : typ_partie, ereignis : string, angaben : any = {}) : void
{
if (ereignis in partie.lauscher)
{
@ -107,15 +113,15 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_zuruecksetzen(partie : typ_partie, bescheid_geben : boolean = true) : void
export function zuruecksetzen(partie : typ_partie, bescheid_geben : boolean = true) : void
{
partie.figur = (new klasse_nichts<typ_figur>());
partie.figur = (new klasse_nichts<mod_figur.typ_figur>());
partie.testindex = (new klasse_nichts<int>());
partie.modus = modus_initial;
partie.modus = mod_modus.initial;
if (bescheid_geben)
{
partie_benachrichtigen(partie, "aenderung_figur", {});
partie_benachrichtigen(partie, "aenderung_modus", {});
benachrichtigen(partie, "aenderung_figur", {});
benachrichtigen(partie, "aenderung_modus", {});
}
else
{
@ -127,7 +133,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_aufgabe_lesen(partie : typ_partie) : typ_aufgabe
export function aufgabe_lesen(partie : typ_partie) : mod_vtm_aufbau.typ_aufgabe
{
return partie.aufgabe;
}
@ -136,19 +142,19 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_aufgabe_setzen(partie : typ_partie, aufgabe : typ_aufgabe) : void
export function aufgabe_setzen(partie : typ_partie, aufgabe : mod_vtm_aufbau.typ_aufgabe) : void
{
partie.aufgabe = aufgabe;
// partie.welt_leeren();
partie_benachrichtigen(partie, "aenderung_aufgabe", {});
partie_zuruecksetzen(partie);
benachrichtigen(partie, "aenderung_aufgabe", {});
zuruecksetzen(partie);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_welt_lesen(partie : typ_partie) : typ_welt
export function welt_lesen(partie : typ_partie) : mod_welt.typ_welt
{
return partie.welt;
}
@ -157,12 +163,12 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_welt_setzen(partie : typ_partie, welt : mod_vtm_aufbau.typ_welt, bescheid_geben : boolean = true) : void
export function welt_setzen(partie : typ_partie, welt : mod_welt.typ_welt, bescheid_geben : boolean = true) : void
{
partie.welt = welt;
if (bescheid_geben)
{
partie_benachrichtigen(partie, "aenderung_welt", {});
benachrichtigen(partie, "aenderung_welt", {});
}
else
{
@ -174,12 +180,12 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_welt_leeren(partie : typ_partie, bescheid_geben : boolean = true) : void
export function welt_leeren(partie : typ_partie, bescheid_geben : boolean = true) : void
{
partie.welt = welt_blanko();
partie.welt = mod_welt.blanko();
if (bescheid_geben)
{
partie_benachrichtigen(partie, "aenderung_welt", {});
benachrichtigen(partie, "aenderung_welt", {});
}
else
{
@ -191,7 +197,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_figur_lesen(partie : typ_partie) : schnittstelle_fehlermonade<typ_figur>
export function figur_lesen(partie : typ_partie) : schnittstelle_fehlermonade<mod_figur.typ_figur>
{
return partie.figur;
}
@ -200,7 +206,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_modus_lesen(partie : typ_partie) : typ_modus
export function modus_lesen(partie : typ_partie) : mod_modus.typ_modus
{
return partie.modus;
}
@ -209,16 +215,16 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_welt_feld_wechseln(partie : typ_partie, stelle : typ_stelle, umgekehrt : boolean = false) : void
export function welt_feld_wechseln(partie : typ_partie, stelle : mod_stelle.typ_stelle, umgekehrt : boolean = false) : void
{
if (! (partie.modus === mod_vtm_aufbau.modus_initial))
if (! (partie.modus === mod_modus.initial))
{
let meldung : string = "gesperrt";
}
else
{
welt_feld_wechseln(partie.welt, stelle, umgekehrt);
partie_benachrichtigen
mod_welt.feld_wechseln(partie.welt, stelle, umgekehrt);
benachrichtigen
(
partie,
"aenderung_welt",
@ -228,7 +234,7 @@ module mod_vtm_aufbau
{
"stelle": stelle,
"umgekehrt": umgekehrt,
"feld": welt_feld_holen(partie.welt, stelle),
"feld": mod_welt.feld_holen(partie.welt, stelle),
}
}
)
@ -240,16 +246,16 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_welt_feld_drehen(partie : typ_partie, stelle : typ_stelle, inkrement : int = +1) : void
export function welt_feld_drehen(partie : typ_partie, stelle : mod_stelle.typ_stelle, inkrement : int = +1) : void
{
if (! (partie.modus === mod_vtm_aufbau.modus_initial))
if (! (partie.modus === mod_modus.initial))
{
let meldung : string = "gesperrt";
}
else
{
welt_feld_drehen(partie.welt, stelle, inkrement);
partie_benachrichtigen(partie, "aenderung_welt", {});
mod_welt.feld_drehen(partie.welt, stelle, inkrement);
benachrichtigen(partie, "aenderung_welt", {});
}
}
@ -257,28 +263,28 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function partie_fortfahren(partie : typ_partie) : void
export function fortfahren(partie : typ_partie) : void
{
switch (partie.modus)
{
case modus_initial:
case mod_modus.initial:
{
partie.modus = modus_ungewiss;
partie.modus = mod_modus.ungewiss;
partie.testindex = (new klasse_schlicht<int>(0));
partie_benachrichtigen(partie, "aenderung_modus", {});
benachrichtigen(partie, "aenderung_modus", {});
break;
}
case modus_ungewiss:
case mod_modus.ungewiss:
{
if (! partie.figur.ist_schlicht())
{
let test : typ_test = aufgabe_tests(partie.aufgabe)[partie.testindex.lesen()];
let band : Array<typ_symbol> = mod_vtm_helfer.liste_kopieren<typ_symbol>(test_eingabe(test));
let stelle : typ_stelle = welt_erzeuger_finden(partie.welt);
let test : mod_vtm_aufbau.typ_test = mod_vtm_aufbau.aufgabe_tests(partie.aufgabe)[partie.testindex.lesen()];
let band : Array<mod_symbol.typ_symbol> = mod_vtm_helfer.liste_kopieren<mod_symbol.typ_symbol>(mod_vtm_aufbau.test_eingabe(test));
let stelle : mod_stelle.typ_stelle = mod_welt.erzeuger_finden(partie.welt);
partie.figur = (
new klasse_schlicht<typ_figur>
new klasse_schlicht<mod_figur.typ_figur>
(
figur_erstellen
mod_figur.erstellen
(
band,
stelle
@ -288,28 +294,28 @@ module mod_vtm_aufbau
}
else
{
let figur : typ_figur = partie.figur.lesen();
let stelle : typ_stelle = figur_stelle_lesen(figur);
let aktor_ : schnittstelle_fehlermonade<typ_aktor> = welt_feld_holen(partie.welt, stelle);
let aktor : typ_aktor = (aktor_.ist_schlicht() ? aktor_.lesen() : verwerfer_erstellen_aktor());
aktor_verwenden(aktor, figur);
let zustand : typ_zustand = figur_zustand_lesen(figur);
if (zustand === zustand_laufend)
let figur : mod_figur.typ_figur = partie.figur.lesen();
let stelle : mod_stelle.typ_stelle = mod_figur.stelle_lesen(figur);
let aktor_ : schnittstelle_fehlermonade<mod_aktor.typ_aktor> = mod_welt.feld_holen(partie.welt, stelle);
let aktor : mod_aktor.typ_aktor = (aktor_.ist_schlicht() ? aktor_.lesen() : mod_aktor_verwerfer.erstellen_aktor());
mod_aktor.verwenden(aktor, figur);
let zustand : mod_zustand.typ_zustand = mod_figur.zustand_lesen(figur);
if (zustand === mod_zustand.laufend)
{
// nichts tun
}
else if ((zustand === zustand_angenommen) || (zustand === zustand_abgelehnt))
else if ((zustand === mod_zustand.angenommen) || (zustand === mod_zustand.abgelehnt))
{
let angenommen : boolean = (zustand === zustand_angenommen);
let ausgabe : Array<typ_symbol> = figur_band_lesen(figur);
partie.figur = (new klasse_nichts<typ_figur>());
let angenommen : boolean = (zustand === mod_zustand.angenommen);
let ausgabe : Array<mod_symbol.typ_symbol> = mod_figur.band_lesen(figur);
partie.figur = (new klasse_nichts<mod_figur.typ_figur>());
let testindex : int = partie.testindex.lesen();
let tests : Array<typ_test> = aufgabe_tests(partie.aufgabe);
let test : typ_test = tests[testindex];
if (! test_pruefen(test, angenommen, ausgabe))
let tests : Array<mod_vtm_aufbau.typ_test> = mod_vtm_aufbau.aufgabe_tests(partie.aufgabe);
let test : mod_vtm_aufbau.typ_test = tests[testindex];
if (! mod_vtm_aufbau.test_pruefen(test, angenommen, ausgabe))
{
partie.modus = modus_fehlerhaft;
partie_benachrichtigen(partie, "aenderung_modus", {});
partie.modus = mod_modus.fehlerhaft;
benachrichtigen(partie, "aenderung_modus", {});
}
else
{
@ -323,8 +329,8 @@ module mod_vtm_aufbau
{
// auf Modus "korrekt" wechseln
partie.testindex = (new klasse_nichts<int>());
partie.modus = modus_korrekt;
partie_benachrichtigen(partie, "aenderung_modus", {});
partie.modus = mod_modus.korrekt;
benachrichtigen(partie, "aenderung_modus", {});
}
}
}
@ -334,15 +340,15 @@ module mod_vtm_aufbau
throw (new Error(meldung));
}
}
partie_benachrichtigen(partie, "aenderung_figur", {});
benachrichtigen(partie, "aenderung_figur", {});
break;
}
case modus_fehlerhaft:
case mod_modus.fehlerhaft:
{
// nichts tun
break;
}
case modus_korrekt:
case mod_modus.korrekt:
{
// nichts tun
break;
@ -359,3 +365,7 @@ module mod_vtm_aufbau
}
}
}

View file

@ -16,7 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_richtung
{
/**
@ -28,7 +34,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function richtung_addieren(richtung1 : typ_richtung, richtung2 : typ_richtung) : typ_richtung
export function addieren(richtung1 : typ_richtung, richtung2 : typ_richtung) : typ_richtung
{
return mod_vtm_helfer.mod(richtung1 + richtung2, 6);
}
@ -37,7 +43,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function richtung_exportieren(richtung : typ_richtung) : int
export function exportieren(richtung : typ_richtung) : int
{
return richtung;
}
@ -46,10 +52,13 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function richtung_importieren(richtung_ : int) : typ_richtung
export function importieren(richtung_ : int) : typ_richtung
{
return richtung_;
}
}
}
}

View file

@ -16,7 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_stelle
{
/**
@ -28,7 +34,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_hash(stelle : typ_stelle) : string
export function hash(stelle : typ_stelle) : string
{
return (stelle.u.toFixed(0) + "_" + stelle.v.toFixed(0));
}
@ -37,7 +43,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_von_hash(hash : string) : typ_stelle
export function von_hash(hash : string) : typ_stelle
{
let teile : Array<string> = hash.split("_");
return {"u": parseInt(teile[0]), "v": parseInt(teile[1])};
@ -47,7 +53,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_null() : typ_stelle
export function null_() : typ_stelle
{
return {"u": 0, "v": 0};
}
@ -56,7 +62,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_von_richtung(richtung : typ_richtung) : typ_stelle
export function von_richtung(richtung : mod_richtung.typ_richtung) : typ_stelle
{
switch (richtung)
{
@ -74,7 +80,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_addieren(stelle1 : typ_stelle, stelle2 : typ_stelle) : typ_stelle
export function addieren(stelle1 : typ_stelle, stelle2 : typ_stelle) : typ_stelle
{
return {"u": (stelle1.u + stelle2.u), "v": (stelle1.v + stelle2.v)};
}
@ -83,19 +89,22 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_exportieren(stelle : typ_stelle) : string
export function exportieren(stelle : typ_stelle) : string
{
return stelle_hash(stelle);
return hash(stelle);
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function stelle_importieren(stelle_ : string) : typ_stelle
export function importieren(stelle_ : string) : typ_stelle
{
return stelle_von_hash(stelle_);
return von_hash(stelle_);
}
}
}
}

View file

@ -16,7 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_symbol
{
/**
@ -28,7 +34,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function symbol_vergleichen(symbol1 : typ_symbol, symbol2 : typ_symbol) : boolean
export function vergleichen(symbol1 : typ_symbol, symbol2 : typ_symbol) : boolean
{
return (symbol1 === symbol2);
}
@ -37,7 +43,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function symbol_exportieren(symbol : typ_symbol) : int
export function exportieren(symbol : typ_symbol) : int
{
return symbol;
}
@ -46,10 +52,14 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function symbol_importieren(symbol_ : int) : typ_symbol
export function importieren(symbol_ : int) : typ_symbol
{
return symbol_;
}
}
}
}

View file

@ -3,20 +3,26 @@
* Copyright (C) 2016 Christian Fraß <vidofnir@folksprak.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General export function welt_License as published by
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General export function welt_License for more details.
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General export function welt_License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_welt
{
/**
@ -24,7 +30,7 @@ module mod_vtm_aufbau
*/
export type typ_welt =
{
felder : mod_vtm_helfer.klasse_hashmap<typ_stelle, typ_aktor>;
felder : mod_vtm_helfer.klasse_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor>;
}
;
@ -32,9 +38,9 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_erstellen
export function erstellen
(
felder : mod_vtm_helfer.klasse_hashmap<typ_stelle, typ_aktor> = (new mod_vtm_helfer.klasse_hashmap<typ_stelle, typ_aktor>(stelle_hash))
felder : mod_vtm_helfer.klasse_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor> = (new mod_vtm_helfer.klasse_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor>(mod_stelle.hash))
)
: typ_welt
{
@ -47,9 +53,9 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_felder_lesen(welt : typ_welt) : Array<{stelle : typ_stelle; aktor : typ_aktor;}>
export function felder_lesen(welt : typ_welt) : Array<{stelle : mod_stelle.typ_stelle; aktor : mod_aktor.typ_aktor;}>
{
let felder : Array<{stelle : typ_stelle; aktor : typ_aktor;}> = [];
let felder : Array<{stelle : mod_stelle.typ_stelle; aktor : mod_aktor.typ_aktor;}> = [];
welt.felder.iterieren
(
(stelle, aktor) => felder.push({"stelle": stelle, "aktor": aktor})
@ -62,7 +68,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_feld_holen(welt : typ_welt, stelle : typ_stelle) : schnittstelle_fehlermonade<typ_aktor>
export function feld_holen(welt : typ_welt, stelle : mod_stelle.typ_stelle) : schnittstelle_fehlermonade<mod_aktor.typ_aktor>
{
return welt.felder.holen(stelle);
}
@ -71,7 +77,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_feld_setzen(welt : typ_welt, stelle : typ_stelle, aktor : typ_aktor) : void
export function feld_setzen(welt : typ_welt, stelle : mod_stelle.typ_stelle, aktor : mod_aktor.typ_aktor) : void
{
welt.felder.setzen(stelle, aktor);
}
@ -80,17 +86,17 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_feld_wechseln(welt : typ_welt, stelle : typ_stelle, umgekehrt : boolean = false) : void
export function feld_wechseln(welt : typ_welt, stelle : mod_stelle.typ_stelle, umgekehrt : boolean = false) : void
{
let erweitert : boolean = true;
let liste : Array<{pruefer : (aktor : typ_aktor)=>boolean; ersteller : ()=>typ_aktor;}> = (
let liste : Array<{pruefer : (aktor : mod_aktor.typ_aktor)=>boolean; ersteller : ()=>mod_aktor.typ_aktor;}> = (
[]
.concat
(
[
{
"pruefer": (aktor) => (aktor.art === "befoerderer"),
"ersteller": () => befoerderer_erstellen_aktor(0),
"ersteller": () => mod_aktor_befoerderer.erstellen_aktor(0),
},
]
)
@ -104,7 +110,7 @@ module mod_vtm_aufbau
{
if (aktor.art === "schreiber")
{
return (schreiber_symbol_lesen(aktor.angaben) === symbol);
return (mod_aktor_schreiber.symbol_lesen(aktor.angaben) === symbol);
}
else
{
@ -112,7 +118,7 @@ module mod_vtm_aufbau
}
}
,
"ersteller": () => schreiber_erstellen_aktor(0, symbol)
"ersteller": () => mod_aktor_schreiber.erstellen_aktor(0, symbol)
}
)
)
@ -123,8 +129,8 @@ module mod_vtm_aufbau
(
index =>
{
let symbol_links : typ_symbol = (2*index+0);
let symbol_rechts : typ_symbol = (2*index+1);
let symbol_links : mod_symbol.typ_symbol = (2*index+0);
let symbol_rechts : mod_symbol.typ_symbol = (2*index+1);
return (
{
"pruefer": (aktor) =>
@ -132,9 +138,9 @@ module mod_vtm_aufbau
if (aktor.art === "leser")
{
return (
(leser_symbol_links_lesen(aktor.angaben) === symbol_links)
(mod_aktor_leser.symbol_links_lesen(aktor.angaben) === symbol_links)
&&
(leser_symbol_rechts_lesen(aktor.angaben) === symbol_rechts)
(mod_aktor_leser.symbol_rechts_lesen(aktor.angaben) === symbol_rechts)
);
}
else
@ -143,7 +149,7 @@ module mod_vtm_aufbau
}
}
,
"ersteller": () => leser_erstellen_aktor(0, symbol_links, symbol_rechts)
"ersteller": () => mod_aktor_leser.erstellen_aktor(0, symbol_links, symbol_rechts)
}
);
}
@ -154,16 +160,16 @@ module mod_vtm_aufbau
[
{
"pruefer": (aktor) => (aktor.art === "verwerfer"),
"ersteller": () => verwerfer_erstellen_aktor(),
"ersteller": () => mod_aktor_verwerfer.erstellen_aktor(),
},
]
)
);
let index_alt : schnittstelle_fehlermonade<int>;
let aktor_alt_ : schnittstelle_fehlermonade<typ_aktor> = welt.felder.holen(stelle);
let aktor_alt_ : schnittstelle_fehlermonade<mod_aktor.typ_aktor> = welt.felder.holen(stelle);
if (aktor_alt_.ist_schlicht())
{
let aktor_alt : typ_aktor = aktor_alt_.lesen();
let aktor_alt : mod_aktor.typ_aktor = aktor_alt_.lesen();
let gefunden : boolean = (
liste.some
(
@ -199,8 +205,8 @@ module mod_vtm_aufbau
if (index_alt.ist_schlicht())
{
let index_neu : int = mod_vtm_helfer.mod(index_alt.lesen() + (umgekehrt ? -1 : +1), liste.length);
let aktor_neu : typ_aktor = liste[index_neu].ersteller();
welt_feld_setzen(welt, stelle, aktor_neu);
let aktor_neu : mod_aktor.typ_aktor = liste[index_neu].ersteller();
feld_setzen(welt, stelle, aktor_neu);
}
else
{
@ -214,12 +220,12 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_feld_drehen(welt : typ_welt, stelle : typ_stelle, inkrement : int = +1) : void
export function feld_drehen(welt : typ_welt, stelle : mod_stelle.typ_stelle, inkrement : int = +1) : void
{
let aktor_ : schnittstelle_fehlermonade<typ_aktor> = welt.felder.holen(stelle);
let aktor_ : schnittstelle_fehlermonade<mod_aktor.typ_aktor> = welt.felder.holen(stelle);
if (aktor_.ist_schlicht)
{
aktor_drehen(aktor_.lesen(), inkrement);
mod_aktor.drehen(aktor_.lesen(), inkrement);
}
else
{
@ -232,9 +238,9 @@ module mod_vtm_aufbau
* @author kcf <vidofnir@folksprak.org>
* @throws {Error}
*/
export function welt_erzeuger_finden(welt : typ_welt) : typ_stelle
export function erzeuger_finden(welt : typ_welt) : mod_stelle.typ_stelle
{
let stelle : schnittstelle_fehlermonade<typ_stelle> = (new klasse_nichts<typ_stelle>());
let stelle : schnittstelle_fehlermonade<mod_stelle.typ_stelle> = (new klasse_nichts<mod_stelle.typ_stelle>());
welt.felder.iterieren
(
(stelle_, aktor) =>
@ -248,7 +254,7 @@ module mod_vtm_aufbau
}
else
{
stelle = (new klasse_schlicht<typ_stelle>(stelle_));
stelle = (new klasse_schlicht<mod_stelle.typ_stelle>(stelle_));
}
}
}
@ -269,28 +275,28 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_blanko(groesse : int = 3) : typ_welt
export function blanko(groesse : int = 3) : typ_welt
{
let welt : typ_welt = welt_erstellen();
let welt : typ_welt = erstellen();
for (let u : int = -groesse; u <= +groesse; u += 1)
{
for (let v : int = -groesse; v <= +groesse; v += 1)
{
if (Math.abs(u-v) <= groesse)
{
let stelle : typ_stelle = {"u": u, "v": v};
let aktor : typ_aktor;
let stelle : mod_stelle.typ_stelle = {"u": u, "v": v};
let aktor : mod_aktor.typ_aktor;
if ((u === -groesse) && (v === 0))
{
aktor = erzeuger_erstellen_aktor(0);
aktor = mod_aktor_erzeuger.erstellen_aktor(0);
}
else if ((u === +groesse) && (v === 0))
{
aktor = annehmer_erstellen_aktor();
aktor = mod_aktor_annehmer.erstellen_aktor();
}
else
{
aktor = verwerfer_erstellen_aktor();
aktor = mod_aktor_verwerfer.erstellen_aktor();
}
welt.felder.setzen(stelle, aktor);
}
@ -303,7 +309,7 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_exportieren(welt : typ_welt) : any
export function exportieren(welt : typ_welt) : any
{
let roh : any = {};
roh["felder"] = {};
@ -311,8 +317,8 @@ module mod_vtm_aufbau
(
(stelle, aktor) =>
{
let stelle_ : string = stelle_exportieren(stelle);
let aktor_ : any = aktor_exportieren(aktor);
let stelle_ : string = mod_stelle.exportieren(stelle);
let aktor_ : any = mod_aktor.exportieren(aktor);
roh["felder"][stelle_] = aktor_;
}
)
@ -324,18 +330,18 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export function welt_importieren(roh : any) : typ_welt
export function importieren(roh : any) : typ_welt
{
let felder : mod_vtm_helfer.klasse_hashmap<typ_stelle, typ_aktor> = (new mod_vtm_helfer.klasse_hashmap<typ_stelle, typ_aktor>(stelle_hash));
let felder : mod_vtm_helfer.klasse_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor> = (new mod_vtm_helfer.klasse_hashmap<mod_stelle.typ_stelle, mod_aktor.typ_aktor>(mod_stelle.hash));
for (let stelle_ in roh["felder"])
{
let stelle : typ_stelle = stelle_importieren(stelle_);
let aktor_ : typ_aktor = roh["felder"][stelle_];
let aktor : typ_aktor = aktor_importieren(aktor_);
let stelle : mod_stelle.typ_stelle = mod_stelle.importieren(stelle_);
let aktor_ : mod_aktor.typ_aktor = roh["felder"][stelle_];
let aktor : mod_aktor.typ_aktor = mod_aktor.importieren(aktor_);
felder.setzen(stelle, aktor);
}
return (
welt_erstellen
erstellen
(
felder
)
@ -344,3 +350,7 @@ module mod_vtm_aufbau
}
}
}

View file

@ -16,7 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module mod_vtm_aufbau
module mod_vtm
{
export module mod_aufbau
{
export module mod_zustand
{
/**
@ -28,9 +34,13 @@ module mod_vtm_aufbau
/**
* @author kcf <vidofnir@folksprak.org>
*/
export var zustand_abgelehnt = -1;
export var zustand_laufend = 0;
export var zustand_angenommen = +1;
export var abgelehnt = -1;
export var laufend = 0;
export var angenommen = +1;
}
}
}

View file

@ -22,6 +22,24 @@
type typ_komplex<typ_angaben> = {art : string; angaben ?: typ_angaben;};
/**
* @author kcf <vidofnir@folksprak.org>
*/
function einpacken<typ_angaben>(art : string, angaben : typ_angaben) : typ_komplex<typ_angaben>
{
return {"art": art, "angaben": angaben};
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function auspacken<typ_angaben>(komplex : typ_komplex<typ_angaben>) : typ_angaben
{
return komplex.angaben;
}
/**
* @author kcf <vidofnir@folksprak.org>
*/

View file

@ -115,27 +115,27 @@ function haupt() : void
let hoehe : float = 80;
[
{
"aufbau": mod_vtm_aufbau.aktor_beispiel("erzeuger"),
"aufbau": mod_vtm.mod_aufbau.mod_aktor.beispiel("erzeuger"),
"bereich": document.querySelector("#hilfe_aktoren_aktor_erzeuger"),
},
{
"aufbau": mod_vtm_aufbau.aktor_beispiel("annehmer"),
"aufbau": mod_vtm.mod_aufbau.mod_aktor.beispiel("annehmer"),
"bereich": document.querySelector("#hilfe_aktoren_aktor_annehmer"),
},
{
"aufbau": mod_vtm_aufbau.aktor_beispiel("verwerfer"),
"aufbau": mod_vtm.mod_aufbau.mod_aktor.beispiel("verwerfer"),
"bereich": document.querySelector("#hilfe_aktoren_aktor_verwerfer"),
},
{
"aufbau": mod_vtm_aufbau.aktor_beispiel("befoerderer"),
"aufbau": mod_vtm.mod_aufbau.mod_aktor.beispiel("befoerderer"),
"bereich": document.querySelector("#hilfe_aktoren_aktor_befoerderer"),
},
{
"aufbau": mod_vtm_aufbau.aktor_beispiel("schreiber"),
"aufbau": mod_vtm.mod_aufbau.mod_aktor.beispiel("schreiber"),
"bereich": document.querySelector("#hilfe_aktoren_aktor_schreiber"),
},
{
"aufbau": mod_vtm_aufbau.aktor_beispiel("leser"),
"aufbau": mod_vtm.mod_aufbau.mod_aktor.beispiel("leser"),
"bereich": document.querySelector("#hilfe_aktoren_aktor_leser"),
},
]
@ -147,7 +147,7 @@ function haupt() : void
mod_vtm_manifestation.svg_aktor_erstellen_manifestation
(
eintrag.aufbau,
mod_vtm_aufbau.stelle_null()
mod_vtm.mod_aufbau.mod_stelle.null_()
)
);
let xmlknoten : mod_vtm_helfer.typ_xmlknoten = (
@ -168,13 +168,13 @@ function haupt() : void
}
// Spiel
{
// let aufbau : mod_vtm_aufbau.typ_partie;
let aufbau : mod_vtm.mod_aufbau.mod_partie.typ_partie;
aufgaben_eintragen
(
function (aufgabe : mod_vtm_aufbau.typ_aufgabe) : void {mod_vtm_aufbau.partie_aufgabe_setzen(aufbau, aufgabe);}
function (aufgabe : mod_vtm_aufbau.typ_aufgabe) : void {mod_vtm.mod_aufbau.mod_partie.aufgabe_setzen(aufbau, aufgabe);}
)
;
aufbau = mod_vtm_aufbau.partie_erstellen(mod_vtm_aufbau.aufgabe_holen(0));
aufbau = mod_vtm.mod_aufbau.mod_partie.erstellen(mod_vtm_aufbau.aufgabe_holen(0));
mod_vtm_manifestation.manifestation_einrichten
(
mod_vtm_manifestation.web_partie_erstellen_erweitert
@ -194,7 +194,6 @@ function haupt() : void
;
}
}
var aufbau : mod_vtm_aufbau.typ_partie = null;
/**