zwischenspeicherung
This commit is contained in:
parent
74a9792bbf
commit
48b556057c
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
}
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
}
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
}
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
}
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
}
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
}
|
||||
;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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_);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue