[mod] save
This commit is contained in:
parent
474061fdd7
commit
a47a8e30e3
|
|
@ -56,11 +56,11 @@ jsonp_handle(
|
||||||
"tasks.dreifaltigkeit.title": "Dreifaltigkeit",
|
"tasks.dreifaltigkeit.title": "Dreifaltigkeit",
|
||||||
"tasks.dreifaltigkeit.text": "Annehmen genau dann, wenn die Eingabe mindestens drei ${s1} enth\u00e4lt",
|
"tasks.dreifaltigkeit.text": "Annehmen genau dann, wenn die Eingabe mindestens drei ${s1} enth\u00e4lt",
|
||||||
"tasks.abwechslung_erfreuet.title": "Abwechslung erfreuet",
|
"tasks.abwechslung_erfreuet.title": "Abwechslung erfreuet",
|
||||||
"tasks.abwechslung_erfreuet.text": "annehmen genau dann wenn: Die Farben der Eingabe (${s0} / ${s1}) sich immer abwechseln",
|
"tasks.abwechslung_erfreuet.text": "Annehmen genau dann wenn: Die Farben der Eingabe (${s0} / ${s1}) sich immer abwechseln",
|
||||||
"tasks.ans_ende.title": "Ans Ende",
|
"tasks.ans_ende.title": "Ans Ende",
|
||||||
"tasks.ans_ende.text": "die Eingabe (${s0} / ${s1}), aber mit dem ersten Symbol am Ende",
|
"tasks.ans_ende.text": "Die Eingabe (${s0} / ${s1}), aber mit dem ersten Symbol am Ende",
|
||||||
"tasks.tauschen.title": "Tauschen",
|
"tasks.tauschen.title": "Tauschen",
|
||||||
"tasks.tauschen.text": "aus der Eingabe (${s0} / ${s1}) alle ${s0} durch ${s2} ersetzen und alle ${s1} durch ${s3}",
|
"tasks.tauschen.text": "Aus der Eingabe (${s0} / ${s1}) alle ${s0} durch ${s2} ersetzen und alle ${s1} durch ${s3}",
|
||||||
"tasks.waehlerisch.title": "W\u00e4hlerisch",
|
"tasks.waehlerisch.title": "W\u00e4hlerisch",
|
||||||
"tasks.waehlerisch.text": "aus der Eingabe alle ${s0} entfernen und alle ${s1} beibehalten",
|
"tasks.waehlerisch.text": "aus der Eingabe alle ${s0} entfernen und alle ${s1} beibehalten",
|
||||||
"tasks.dekorator.title": "Dekorator",
|
"tasks.dekorator.title": "Dekorator",
|
||||||
|
|
@ -68,7 +68,7 @@ jsonp_handle(
|
||||||
"tasks.alpha_und_omega.title": "Alpha und Omega",
|
"tasks.alpha_und_omega.title": "Alpha und Omega",
|
||||||
"tasks.alpha_und_omega.text": "Eingaben (${s0} / ${s1}), die mit den gleichen Symbolen anfangen und enden",
|
"tasks.alpha_und_omega.text": "Eingaben (${s0} / ${s1}), die mit den gleichen Symbolen anfangen und enden",
|
||||||
"tasks.an_den_anfang.title": "An den Anfang",
|
"tasks.an_den_anfang.title": "An den Anfang",
|
||||||
"tasks.an_den_anfang.text": "die Eingabe (${s0} / ${s1}), aber mit dem letzten Symbol am Anfang",
|
"tasks.an_den_anfang.text": "Die Eingabe (${s0} / ${s1}), aber mit dem letzten Symbol am Anfang",
|
||||||
"tasks.a_n_b_n.title": "a^n b^n",
|
"tasks.a_n_b_n.title": "a^n b^n",
|
||||||
"tasks.a_n_b_n.text": "Jaja, die ber\u00fchmt ber\u00fcchtige Sprache, die sich mit einem endlichen Automaten nicht erkennen l\u00e4sst \u2026 Das ist deine Chance zu zeigen, dass dieses Ding hier mehr ist als so ein k\u00fcmmerlicher DEA \u2026 und das ganz ohne Kellerspeicher! Also: Eine beliebige Anzahl an ${s0}, dann die gleiche Anzahl an ${s1}!",
|
"tasks.a_n_b_n.text": "Jaja, die ber\u00fchmt ber\u00fcchtige Sprache, die sich mit einem endlichen Automaten nicht erkennen l\u00e4sst \u2026 Das ist deine Chance zu zeigen, dass dieses Ding hier mehr ist als so ein k\u00fcmmerlicher DEA \u2026 und das ganz ohne Kellerspeicher! Also: Eine beliebige Anzahl an ${s0}, dann die gleiche Anzahl an ${s1}!",
|
||||||
"tasks.a_n_b_n.hinweise.hinweis1": "Ein Wort ist genau dann Element der Sprache ${s0}^n ${s1}^n, wenn sie entweder 1) leer ist (also n = 0 gilt) oder 2) sie mit ${s0} beginnt, mit ${s1} endet und dazwischen ein Wort der Form ${s0}^(n-1) ${s1}^(n-1) steht \u2026 Stichwort: Rekursion"
|
"tasks.a_n_b_n.hinweise.hinweis1": "Ein Wort ist genau dann Element der Sprache ${s0}^n ${s1}^n, wenn sie entweder 1) leer ist (also n = 0 gilt) oder 2) sie mit ${s0} beginnt, mit ${s1} endet und dazwischen ein Wort der Form ${s0}^(n-1) ${s1}^(n-1) steht \u2026 Stichwort: Rekursion"
|
||||||
|
|
|
||||||
|
|
@ -50,9 +50,24 @@ jsonp_handle(
|
||||||
"help.tasks.transducer.description": "In a transducer task an output shall be generated, which has a certain relationship to to the input; in other words: to apply a function.",
|
"help.tasks.transducer.description": "In a transducer task an output shall be generated, which has a certain relationship to to the input; in other words: to apply a function.",
|
||||||
"help.tasks.transducer.example": "Example: The input repeated two times.",
|
"help.tasks.transducer.example": "Example: The input repeated two times.",
|
||||||
"tasks.einfuehrung.title": "Introduction",
|
"tasks.einfuehrung.title": "Introduction",
|
||||||
"tasks.einfuehrung.text": "Move the token from the entrance (left) to the exit (rights)!",
|
"tasks.einfuehrung.text": "Move the token from the entrance (left) to the exit (right)!",
|
||||||
"tasks.a_n_b_n.title": "a^n b^n",
|
"tasks.a_n_b_n.title": "a^n b^n",
|
||||||
"tasks.a_n_b_n.text": "Yeah, yeah, yeah … The far famed language, which can't be recognized by a finite automaton … This is your chance to prove that this gizmo here is mightier than any wimpy DFA; even without any stack! So: An arbitrary number of ${s0}, then the same number of ${s1}!"
|
"tasks.a_n_b_n.text": "Yeah, yeah, yeah … The far famed language, which can't be recognized by a finite automaton … This is your chance to prove that this gizmo here is mightier than any wimpy DFA; even without any stack! So: An arbitrary number of ${s0}, then the same number of ${s1}!",
|
||||||
|
|
||||||
|
"tasks.start_symbol.title": "starting symbol",
|
||||||
|
"tasks.start_symbol.text": "Accept if the input commences with ${s1}; reject otherwise",
|
||||||
|
"tasks.dreifaltigkeit.title": "Trinity",
|
||||||
|
"tasks.dreifaltigkeit.text": "Accept only if the input contains ${s1} at least 3 times",
|
||||||
|
"tasks.abwechslung_erfreuet.title": "Variation pleases",
|
||||||
|
"tasks.abwechslung_erfreuet.text": "Accept only if the input colors (${s0} / ${s1}) alternate",
|
||||||
|
"tasks.ans_ende.title": "To the end",
|
||||||
|
"tasks.ans_ende.text": "The input, but with the first symbol moved to the end",
|
||||||
|
"tasks.tauschen.title": "Swap",
|
||||||
|
"tasks.tauschen.text": "In the input sequence (${s0} / ${s1}, replace all ${s0} by ${s2} and all ${s1} by ${s3}",
|
||||||
|
"tasks.waehlerisch.title": "Picky",
|
||||||
|
"tasks.waehlerisch.text": "remove all ${s0} from the input and keep all ${s1}",
|
||||||
|
"tasks.dekorator.title": "Decorator",
|
||||||
|
"tasks.dekorator.text": "Absolutely everything is better with ribbons, squiggle and trinkets of all kind! At least that's what people believe — shopping TV channels are the definite proof! But does it also hold for the tape of the token, if it contains only ${s0} and ${s1}? Let's find out: Put ${s2} to the begin and ${s3} to the end!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module mod_vtm
|
||||||
/**
|
/**
|
||||||
* @author kcf <vidofnir@folksprak.org>
|
* @author kcf <vidofnir@folksprak.org>
|
||||||
*/
|
*/
|
||||||
let kind : string = "acceptor";
|
const kind : string = "acceptor";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module mod_vtm
|
||||||
/**
|
/**
|
||||||
* @author kcf <vidofnir@folksprak.org>
|
* @author kcf <vidofnir@folksprak.org>
|
||||||
*/
|
*/
|
||||||
let kind : string = "conveyer";
|
const kind : string = "conveyer";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module mod_vtm
|
||||||
/**
|
/**
|
||||||
* @author kcf <vidofnir@folksprak.org>
|
* @author kcf <vidofnir@folksprak.org>
|
||||||
*/
|
*/
|
||||||
let kind : string = "generator";
|
const kind : string = "generator";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module mod_vtm
|
||||||
/**
|
/**
|
||||||
* @author kcf <vidofnir@folksprak.org>
|
* @author kcf <vidofnir@folksprak.org>
|
||||||
*/
|
*/
|
||||||
let kind : string = "reader";
|
const kind : string = "reader";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -155,11 +155,11 @@ module mod_vtm
|
||||||
)
|
)
|
||||||
: void
|
: void
|
||||||
{
|
{
|
||||||
let symbol_ : lib_errormonade.type_errormonade<mod_symbol.type_symbol> = mod_token.read(token);
|
const symbol_ : lib_errormonade.type_errormonade<mod_symbol.type_symbol> = mod_token.read(token);
|
||||||
let summand : mod_direction.type_direction;
|
let summand : mod_direction.type_direction;
|
||||||
if (lib_errormonade.filled(symbol_))
|
if (lib_errormonade.filled(symbol_))
|
||||||
{
|
{
|
||||||
let symbol : mod_symbol.type_symbol = lib_errormonade.read(symbol_);
|
const symbol : mod_symbol.type_symbol = lib_errormonade.read(symbol_);
|
||||||
if (symbol === reader.symbol_links)
|
if (symbol === reader.symbol_links)
|
||||||
{
|
{
|
||||||
mod_token.shift(token);
|
mod_token.shift(token);
|
||||||
|
|
@ -179,7 +179,7 @@ module mod_vtm
|
||||||
{
|
{
|
||||||
summand = 0;
|
summand = 0;
|
||||||
}
|
}
|
||||||
let direction : mod_direction.type_direction = mod_direction.add(reader.direction, summand);
|
const direction : mod_direction.type_direction = mod_direction.add(reader.direction, summand);
|
||||||
mod_token.move(token, direction);
|
mod_token.move(token, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module mod_vtm
|
||||||
/**
|
/**
|
||||||
* @author kcf <vidofnir@folksprak.org>
|
* @author kcf <vidofnir@folksprak.org>
|
||||||
*/
|
*/
|
||||||
let kind : string = "rejector";
|
const kind : string = "rejector";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ module mod_vtm
|
||||||
/**
|
/**
|
||||||
* @author kcf <vidofnir@folksprak.org>
|
* @author kcf <vidofnir@folksprak.org>
|
||||||
*/
|
*/
|
||||||
let kind : string = "writer";
|
const kind : string = "writer";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -56,16 +56,15 @@ module mod_vtm
|
||||||
"task": task,
|
"task": task,
|
||||||
"testindex": undefined,
|
"testindex": undefined,
|
||||||
"mode": undefined,
|
"mode": undefined,
|
||||||
"listeners": undefined,
|
"listeners":
|
||||||
}
|
|
||||||
;
|
|
||||||
game.listeners =
|
|
||||||
{
|
{
|
||||||
"change_task": [],
|
"change_task": [],
|
||||||
"change_world": [],
|
"change_world": [],
|
||||||
"change_token": [],
|
"change_token": [],
|
||||||
"change_mode": [],
|
"change_mode": [],
|
||||||
}
|
}
|
||||||
|
,
|
||||||
|
}
|
||||||
;
|
;
|
||||||
world_clear(game, false);
|
world_clear(game, false);
|
||||||
reset(game, false);
|
reset(game, false);
|
||||||
|
|
@ -90,7 +89,7 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let message : string = "kein Ereignis mit diesem Name";
|
const message : string = "kein Ereignis mit diesem Name";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -106,11 +105,12 @@ module mod_vtm
|
||||||
data : any = {}
|
data : any = {}
|
||||||
) : void
|
) : void
|
||||||
{
|
{
|
||||||
if (event in game.listeners)
|
if (game.listeners.hasOwnProperty(event))
|
||||||
{
|
{
|
||||||
game.listeners[event].forEach
|
game.listeners[event]
|
||||||
|
.forEach
|
||||||
(
|
(
|
||||||
procedure =>
|
(procedure) =>
|
||||||
{
|
{
|
||||||
procedure(data);
|
procedure(data);
|
||||||
}
|
}
|
||||||
|
|
@ -119,7 +119,7 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let message : string = "kein Ereignis mit diesem Name";
|
const message : string = "kein Ereignis mit diesem Name";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -276,7 +276,7 @@ module mod_vtm
|
||||||
{
|
{
|
||||||
if (! (game.mode === mod_mode.initial))
|
if (! (game.mode === mod_mode.initial))
|
||||||
{
|
{
|
||||||
let message : string = "gesperrt";
|
const message : string = "gesperrt";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -313,7 +313,7 @@ module mod_vtm
|
||||||
{
|
{
|
||||||
if (! (game.mode === mod_mode.initial))
|
if (! (game.mode === mod_mode.initial))
|
||||||
{
|
{
|
||||||
let message : string = "gesperrt";
|
const message : string = "gesperrt";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -345,9 +345,9 @@ module mod_vtm
|
||||||
{
|
{
|
||||||
if (! lib_errormonade.filled<mod_token.type_token>(game.token))
|
if (! lib_errormonade.filled<mod_token.type_token>(game.token))
|
||||||
{
|
{
|
||||||
let test : mod_test.type_test = mod_task.tests(game.task)[lib_errormonade.read<int>(game.testindex)];
|
const test : mod_test.type_test = mod_task.tests(game.task)[lib_errormonade.read<int>(game.testindex)];
|
||||||
let tape : Array<mod_symbol.type_symbol> = lib_list.copy<mod_symbol.type_symbol>(mod_test.input(test));
|
const tape : Array<mod_symbol.type_symbol> = lib_list.copy<mod_symbol.type_symbol>(mod_test.input(test));
|
||||||
let spot : mod_spot.type_spot = mod_world.generator_finden(game.world);
|
const spot : mod_spot.type_spot = mod_world.generator_finden(game.world);
|
||||||
game.token = (
|
game.token = (
|
||||||
lib_errormonade.create_just<mod_token.type_token>
|
lib_errormonade.create_just<mod_token.type_token>
|
||||||
(
|
(
|
||||||
|
|
@ -361,28 +361,28 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let token : mod_token.type_token = lib_errormonade.read<mod_token.type_token>(game.token);
|
const token : mod_token.type_token = lib_errormonade.read<mod_token.type_token>(game.token);
|
||||||
let spot : mod_spot.type_spot = mod_token.spot_read(token);
|
const spot : mod_spot.type_spot = mod_token.spot_read(token);
|
||||||
let actuator_ : lib_errormonade.type_errormonade<mod_actuator.type_actuator> = mod_world.tile_get(game.world, spot);
|
const actuator_ : lib_errormonade.type_errormonade<mod_actuator.type_actuator> = mod_world.tile_get(game.world, spot);
|
||||||
let actuator : mod_actuator.type_actuator = (
|
const actuator : mod_actuator.type_actuator = (
|
||||||
lib_errormonade.filled<mod_actuator.type_actuator>(actuator_)
|
lib_errormonade.filled<mod_actuator.type_actuator>(actuator_)
|
||||||
? lib_errormonade.read<mod_actuator.type_actuator>(actuator_)
|
? lib_errormonade.read<mod_actuator.type_actuator>(actuator_)
|
||||||
: mod_actuator.mod_rejector.create_extended()
|
: mod_actuator.mod_rejector.create_extended()
|
||||||
);
|
);
|
||||||
mod_actuator.use(actuator, token);
|
mod_actuator.use(actuator, token);
|
||||||
let state : mod_state.type_state = mod_token.state_read(token);
|
const state : mod_state.type_state = mod_token.state_read(token);
|
||||||
if (state === mod_state.running)
|
if (state === mod_state.running)
|
||||||
{
|
{
|
||||||
// nothing tun
|
// nothing tun
|
||||||
}
|
}
|
||||||
else if ((state === mod_state.accepted) || (state === mod_state.rejected))
|
else if ((state === mod_state.accepted) || (state === mod_state.rejected))
|
||||||
{
|
{
|
||||||
let accepted : boolean = (state === mod_state.accepted);
|
const accepted : boolean = (state === mod_state.accepted);
|
||||||
let output : Array<mod_symbol.type_symbol> = mod_token.tape_read(token);
|
const output : Array<mod_symbol.type_symbol> = mod_token.tape_read(token);
|
||||||
game.token = (lib_errormonade.create_nothing<mod_token.type_token>());
|
game.token = (lib_errormonade.create_nothing<mod_token.type_token>());
|
||||||
let testindex : int = lib_errormonade.read<int>(game.testindex);
|
let testindex : int = lib_errormonade.read<int>(game.testindex);
|
||||||
let tests : Array<mod_test.type_test> = mod_task.tests(game.task);
|
const tests : Array<mod_test.type_test> = mod_task.tests(game.task);
|
||||||
let test : mod_test.type_test = tests[testindex];
|
const test : mod_test.type_test = tests[testindex];
|
||||||
if (! mod_test.pruefen(test, accepted, output))
|
if (! mod_test.pruefen(test, accepted, output))
|
||||||
{
|
{
|
||||||
game.mode = mod_mode.wrong;
|
game.mode = mod_mode.wrong;
|
||||||
|
|
@ -407,7 +407,7 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let message : string = "unbehandelter Zustand";
|
const message : string = "unbehandelter Zustand";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -416,17 +416,17 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
case mod_mode.wrong:
|
case mod_mode.wrong:
|
||||||
{
|
{
|
||||||
// nothing tun
|
// do nothing
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case mod_mode.correct:
|
case mod_mode.correct:
|
||||||
{
|
{
|
||||||
// nothing tun
|
// do nothing
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
let message : string = "unbehandelter Modus";
|
const message : string = "unbehandelter Modus";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
let message : string = "unbehandelte Art '" + task_raw["kind"] + "'";
|
const message : string = "unbehandelte Art '" + task_raw["kind"] + "'";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ module mod_vtm
|
||||||
lib_hashmap.iterate
|
lib_hashmap.iterate
|
||||||
(
|
(
|
||||||
world.tiles,
|
world.tiles,
|
||||||
(spot, actuator) => tiles.push({"spot": spot, "actuator": actuator})
|
(spot, actuator) => {tiles.push({"spot": spot, "actuator": actuator});}
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
return tiles;
|
return tiles;
|
||||||
|
|
@ -110,8 +110,8 @@ module mod_vtm
|
||||||
)
|
)
|
||||||
: void
|
: void
|
||||||
{
|
{
|
||||||
let extended : boolean = true;
|
const extended : boolean = true;
|
||||||
let liste : Array<{pruefer : (actuator : mod_actuator.type_actuator)=>boolean; erspotr : ()=>mod_actuator.type_actuator;}> = (
|
const liste : Array<{pruefer : (actuator : mod_actuator.type_actuator)=>boolean; erspotr : ()=>mod_actuator.type_actuator;}> = (
|
||||||
[]
|
[]
|
||||||
.concat
|
.concat
|
||||||
(
|
(
|
||||||
|
|
@ -188,12 +188,13 @@ module mod_vtm
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
let index_alt : lib_errormonade.type_errormonade<int>;
|
let index_alt : lib_errormonade.type_errormonade<int>;
|
||||||
let actuator_alt_ : lib_errormonade.type_errormonade<mod_actuator.type_actuator> = lib_hashmap.get(world.tiles, spot);
|
const actuator_alt_ : lib_errormonade.type_errormonade<mod_actuator.type_actuator> = lib_hashmap.get(world.tiles, spot);
|
||||||
if (lib_errormonade.filled<mod_actuator.type_actuator>(actuator_alt_))
|
if (lib_errormonade.filled<mod_actuator.type_actuator>(actuator_alt_))
|
||||||
{
|
{
|
||||||
let actuator_alt : mod_actuator.type_actuator = lib_errormonade.read(actuator_alt_);
|
const actuator_alt : mod_actuator.type_actuator = lib_errormonade.read(actuator_alt_);
|
||||||
let gefunden : boolean = (
|
const gefunden : boolean = (
|
||||||
liste.some
|
liste
|
||||||
|
.some
|
||||||
(
|
(
|
||||||
(entry, index) =>
|
(entry, index) =>
|
||||||
{
|
{
|
||||||
|
|
@ -220,19 +221,19 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let message : string = "kein Aktor gesetzt";
|
const message : string = "kein Aktor gesetzt";
|
||||||
// console.warn(message);
|
// console.warn(message);
|
||||||
index_alt = (lib_errormonade.create_just<int>(0));
|
index_alt = (lib_errormonade.create_just<int>(0));
|
||||||
}
|
}
|
||||||
if (lib_errormonade.filled<int>(index_alt))
|
if (lib_errormonade.filled<int>(index_alt))
|
||||||
{
|
{
|
||||||
let index_neu : int = lib_math.mod(lib_errormonade.read<int>(index_alt) + (inverted ? -1 : +1), liste.length);
|
const index_neu : int = lib_math.mod(lib_errormonade.read<int>(index_alt) + (inverted ? -1 : +1), liste.length);
|
||||||
let actuator_neu : mod_actuator.type_actuator = liste[index_neu].erspotr();
|
const actuator_neu : mod_actuator.type_actuator = liste[index_neu].erspotr();
|
||||||
tile_set(world, spot, actuator_neu);
|
tile_set(world, spot, actuator_neu);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let message : string = ("Aktor nicht gefunden");
|
const message : string = ("Aktor nicht gefunden");
|
||||||
// throw (new Error(message));
|
// throw (new Error(message));
|
||||||
console.warn(message);
|
console.warn(message);
|
||||||
}
|
}
|
||||||
|
|
@ -282,7 +283,7 @@ module mod_vtm
|
||||||
{
|
{
|
||||||
if (lib_errormonade.filled<mod_spot.type_spot>(spot))
|
if (lib_errormonade.filled<mod_spot.type_spot>(spot))
|
||||||
{
|
{
|
||||||
let message : string = "mehrere Erzeuger gefunden";
|
const message : string = "mehrere Erzeuger gefunden";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -299,7 +300,7 @@ module mod_vtm
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let message : string = "kein Erzeuger gefunden";
|
const message : string = "kein Erzeuger gefunden";
|
||||||
throw (new Error(message));
|
throw (new Error(message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -321,7 +322,7 @@ module mod_vtm
|
||||||
{
|
{
|
||||||
if (Math.abs(u-v) <= groesse)
|
if (Math.abs(u-v) <= groesse)
|
||||||
{
|
{
|
||||||
let spot : mod_spot.type_spot = {"u": u, "v": v};
|
const spot : mod_spot.type_spot = {"u": u, "v": v};
|
||||||
let actuator : mod_actuator.type_actuator;
|
let actuator : mod_actuator.type_actuator;
|
||||||
if ((u === -groesse) && (v === 0))
|
if ((u === -groesse) && (v === 0))
|
||||||
{
|
{
|
||||||
|
|
@ -359,8 +360,8 @@ module mod_vtm
|
||||||
world.tiles,
|
world.tiles,
|
||||||
(spot, actuator) =>
|
(spot, actuator) =>
|
||||||
{
|
{
|
||||||
let spot_ : string = mod_spot.export_(spot);
|
const spot_ : string = mod_spot.export_(spot);
|
||||||
let actuator_ : any = mod_actuator.export_(actuator);
|
const actuator_ : any = mod_actuator.export_(actuator);
|
||||||
raw["tiles"][spot_] = actuator_;
|
raw["tiles"][spot_] = actuator_;
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
@ -381,9 +382,9 @@ module mod_vtm
|
||||||
let tiles : lib_hashmap.type_hashmap<mod_spot.type_spot, mod_actuator.type_actuator> = (lib_hashmap.create<mod_spot.type_spot, mod_actuator.type_actuator>(mod_spot.hash));
|
let tiles : lib_hashmap.type_hashmap<mod_spot.type_spot, mod_actuator.type_actuator> = (lib_hashmap.create<mod_spot.type_spot, mod_actuator.type_actuator>(mod_spot.hash));
|
||||||
for (let spot_ in raw["tiles"])
|
for (let spot_ in raw["tiles"])
|
||||||
{
|
{
|
||||||
let spot : mod_spot.type_spot = mod_spot.import_(spot_);
|
const spot : mod_spot.type_spot = mod_spot.import_(spot_);
|
||||||
let actuator_ : mod_actuator.type_actuator = raw["tiles"][spot_];
|
const actuator_ : mod_actuator.type_actuator = raw["tiles"][spot_];
|
||||||
let actuator : mod_actuator.type_actuator = mod_actuator.import_(actuator_);
|
const actuator : mod_actuator.type_actuator = mod_actuator.import_(actuator_);
|
||||||
lib_hashmap.set(tiles, spot, actuator);
|
lib_hashmap.set(tiles, spot, actuator);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue