korrekturen

This commit is contained in:
Christian Fraß 2017-11-10 00:05:15 +01:00
parent da3cf639bd
commit c3dd314751
11 changed files with 74 additions and 79 deletions

View file

@ -49,7 +49,7 @@ erzeugnis/vtm.js: \
quelldatein/aufbau/partie.ts \ quelldatein/aufbau/partie.ts \
quelldatein/manifestation/manifestation.ts \ quelldatein/manifestation/manifestation.ts \
quelldatein/manifestation/position.ts \ quelldatein/manifestation/position.ts \
quelldatein/manifestation/svg.ts \ quelldatein/manifestation/svg/svg.ts \
quelldatein/manifestation/svg/figur.ts \ quelldatein/manifestation/svg/figur.ts \
quelldatein/manifestation/svg/aktor.ts \ quelldatein/manifestation/svg/aktor.ts \
quelldatein/manifestation/svg/partie.ts \ quelldatein/manifestation/svg/partie.ts \
@ -91,7 +91,7 @@ erzeugnis/vtm.js: \
quelldatein/aufbau/partie.ts \ quelldatein/aufbau/partie.ts \
quelldatein/manifestation/manifestation.ts \ quelldatein/manifestation/manifestation.ts \
quelldatein/manifestation/position.ts \ quelldatein/manifestation/position.ts \
quelldatein/manifestation/svg.ts \ quelldatein/manifestation/svg/svg.ts \
quelldatein/manifestation/svg/figur.ts \ quelldatein/manifestation/svg/figur.ts \
quelldatein/manifestation/svg/aktor.ts \ quelldatein/manifestation/svg/aktor.ts \
quelldatein/manifestation/svg/partie.ts \ quelldatein/manifestation/svg/partie.ts \

View file

@ -134,6 +134,19 @@ module mod_vtm_aufbau
} }
/**
* @author kcf <vidofnir@folksprak.org>
*/
public aufgabe_setzen(aufgabe : schnittstelle_aufgabe) : void
{
this.aufgabe = aufgabe;
this.welt = klasse_welt.blanko();
this.benachrichtigen("aenderung_aufgabe", {});
this.benachrichtigen("aenderung_welt", {});
this.zuruecksetzen();
}
/** /**
* @author kcf <vidofnir@folksprak.org> * @author kcf <vidofnir@folksprak.org>
*/ */
@ -226,21 +239,19 @@ module mod_vtm_aufbau
{ {
if (! this.figur.ist_schlicht()) if (! this.figur.ist_schlicht())
{ {
let tests : Array<schnittstelle_test> = this.aufgabe.tests(); let test : schnittstelle_test = this.aufgabe.tests()[this.testindex.lesen()];
let testindex : int = this.testindex.lesen(); let band : Array<typ_symbol> = mod_vtm_helfer.liste_kopieren<typ_symbol>(test.eingabe());
let test : schnittstelle_test = tests[testindex];
let stelle : typ_stelle = this.welt.erzeuger_finden(); let stelle : typ_stelle = this.welt.erzeuger_finden();
this.figur = ( this.figur = (
new klasse_schlicht<klasse_figur> new klasse_schlicht<klasse_figur>
( (
new klasse_figur new klasse_figur
( (
mod_vtm_helfer.liste_kopieren<typ_symbol>(test.eingabe()), band,
stelle stelle
) )
) )
); );
this.benachrichtigen("aenderung_figur", {});
} }
else else
{ {
@ -259,8 +270,8 @@ module mod_vtm_aufbau
let angenommen : boolean = (zustand === zustand_angenommen); let angenommen : boolean = (zustand === zustand_angenommen);
let ausgabe : Array<typ_symbol> = figur.band_lesen(); let ausgabe : Array<typ_symbol> = figur.band_lesen();
this.figur = (new klasse_nichts<klasse_figur>()); this.figur = (new klasse_nichts<klasse_figur>());
let tests : Array<schnittstelle_test> = this.aufgabe.tests();
let testindex : int = this.testindex.lesen(); let testindex : int = this.testindex.lesen();
let tests : Array<schnittstelle_test> = this.aufgabe.tests();
let test : schnittstelle_test = tests[testindex]; let test : schnittstelle_test = tests[testindex];
if (! test.pruefen(angenommen, ausgabe)) if (! test.pruefen(angenommen, ausgabe))
{ {
@ -270,18 +281,18 @@ module mod_vtm_aufbau
else else
{ {
testindex += 1; testindex += 1;
if (testindex >= tests.length) if (testindex < tests.length)
{
// nächsten Test auswählen
this.testindex = (new klasse_schlicht<int>(testindex));
}
else
{ {
// auf Modus "korrekt" wechseln // auf Modus "korrekt" wechseln
this.testindex = (new klasse_nichts<int>()); this.testindex = (new klasse_nichts<int>());
this.modus = modus_korrekt; this.modus = modus_korrekt;
this.benachrichtigen("aenderung_modus", {}); this.benachrichtigen("aenderung_modus", {});
} }
else
{
// nächsten Test auswählen
this.testindex = (new klasse_schlicht<int>(testindex));
}
} }
} }
else else
@ -289,8 +300,8 @@ module mod_vtm_aufbau
let meldung : string = "unbehandelter Zustand"; let meldung : string = "unbehandelter Zustand";
throw (new Error(meldung)); throw (new Error(meldung));
} }
this.benachrichtigen("aenderung_figur", {});
} }
this.benachrichtigen("aenderung_figur", {});
break; break;
} }
case modus_fehlerhaft: case modus_fehlerhaft:

View file

@ -139,9 +139,9 @@ jsonp_behandlung(
"ausgabe": [1,1,1,1] "ausgabe": [1,1,1,1]
}, },
{ {
"eingabe": [0,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1], "eingabe": [0,0,0,0,1,0,1,1,0],
"ausgabe": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] "ausgabe": [1,1,1]
} },
] ]
} }
}, },
@ -162,31 +162,6 @@ jsonp_behandlung(
] ]
} }
}, },
{
"art": "akzeptor",
"parameter": {
"titel": "ungerade Zahlen",
"text": "Mit ${s0} als 0 und ${s1} als 1, nur ungerade Zahlen",
"tests": [
{
"eingabe": [],
"annehmen": false
},
{
"eingabe": [],
"annehmen": false
},
{
"eingabe": [],
"annehmen": false
},
{
"eingabe": [],
"annehmen": false
}
]
}
},
{ {
"art": "akzeptor", "art": "akzeptor",
"parameter": { "parameter": {

View file

@ -79,17 +79,10 @@ function aufgaben_eintragen(behandler : (aufgabe : mod_vtm_aufbau.schnittstelle_
function haupt() : void function haupt() : void
{ {
let aufbau : mod_vtm_aufbau.klasse_partie; let aufbau : mod_vtm_aufbau.klasse_partie;
let aufgabe_laden = function (aufgabe : mod_vtm_aufbau.schnittstelle_aufgabe) : void let aufgabe_laden = function (aufgabe : mod_vtm_aufbau.schnittstelle_aufgabe) : void {aufbau.aufgabe_setzen(aufgabe);};
{
aufbau = (new mod_vtm_aufbau.klasse_partie(aufgabe));
let manifestation : mod_vtm_manifestation.klasse_manifestation<mod_vtm_aufbau.klasse_partie, void> = (
new mod_vtm_manifestation.klasse_web_partie(aufbau, document.querySelector("#bereich_mitte"))
);
manifestation.einrichten();
}
;
aufgaben_eintragen(aufgabe_laden); aufgaben_eintragen(aufgabe_laden);
aufgabe_laden(mod_vtm_aufbau.aufgabe_holen(0)); aufbau = (new mod_vtm_aufbau.klasse_partie(mod_vtm_aufbau.aufgabe_holen(0)));
(new mod_vtm_manifestation.klasse_web_partie(aufbau, document.querySelector("#bereich_mitte"))).einrichten();
} }

View file

@ -63,9 +63,9 @@ module mod_vtm_manifestation
{ {
let band : Array<mod_vtm_aufbau.typ_symbol> = figur.band_lesen(); let band : Array<mod_vtm_aufbau.typ_symbol> = figur.band_lesen();
let kinder_band : Array<mod_vtm_helfer.schnittstelle_xmlknoten> = []; let kinder_band : Array<mod_vtm_helfer.schnittstelle_xmlknoten> = [];
band.reduceRight band.forEach
( (
(dummy, symbol, index) => (symbol, index) =>
{ {
let r : float = 0.06125; let r : float = 0.06125;
let x : float = (+0.1+(2*r*1.25)*index); let x : float = (+0.1+(2*r*1.25)*index);
@ -94,10 +94,7 @@ module mod_vtm_manifestation
) )
); );
kinder_band.push(knoten_eintrag); kinder_band.push(knoten_eintrag);
return null;
} }
,
null
) )
; ;
let knoten_band = ( let knoten_band = (

View file

@ -71,21 +71,6 @@ module mod_vtm_manifestation
); );
kinder_welt.push(knoten_felder); kinder_welt.push(knoten_felder);
} }
// Figur
{
let figur_ : schnittstelle_fehlermonade<mod_vtm_aufbau.klasse_figur> = this.aufbau.figur_lesen();
if (figur_.ist_schlicht())
{
let figur : mod_vtm_aufbau.klasse_figur = figur_.lesen();
let manifestation_figur : klasse_manifestation<mod_vtm_aufbau.klasse_figur, mod_vtm_helfer.schnittstelle_xmlknoten> = (new klasse_svg_figur(figur));
let knoten_figur : mod_vtm_helfer.schnittstelle_xmlknoten = manifestation_figur.darstellen();
kinder_welt.push(knoten_figur);
}
else
{
// nichts tun
}
}
let knoten_welt : mod_vtm_helfer.schnittstelle_xmlknoten = ( let knoten_welt : mod_vtm_helfer.schnittstelle_xmlknoten = (
new mod_vtm_helfer.klasse_xmlknoten_normal new mod_vtm_helfer.klasse_xmlknoten_normal
( (
@ -98,6 +83,21 @@ module mod_vtm_manifestation
); );
kinder_partie.push(knoten_welt); kinder_partie.push(knoten_welt);
} }
// Figur
{
let figur_ : schnittstelle_fehlermonade<mod_vtm_aufbau.klasse_figur> = this.aufbau.figur_lesen();
if (figur_.ist_schlicht())
{
let figur : mod_vtm_aufbau.klasse_figur = figur_.lesen();
let manifestation_figur : klasse_manifestation<mod_vtm_aufbau.klasse_figur, mod_vtm_helfer.schnittstelle_xmlknoten> = (new klasse_svg_figur(figur));
let knoten_figur : mod_vtm_helfer.schnittstelle_xmlknoten = manifestation_figur.darstellen();
kinder_partie.push(knoten_figur);
}
else
{
// nichts tun
}
}
let knoten_partie : mod_vtm_helfer.schnittstelle_xmlknoten = ( let knoten_partie : mod_vtm_helfer.schnittstelle_xmlknoten = (
new mod_vtm_helfer.klasse_xmlknoten_normal new mod_vtm_helfer.klasse_xmlknoten_normal
( (

View file

@ -25,7 +25,7 @@ module mod_vtm_manifestation
function text_nachbearbeiten(text : string) : string function text_nachbearbeiten(text : string) : string
{ {
let regexp : RegExp = (new RegExp("\\$\{s(\\d*)\}", "g")); let regexp : RegExp = (new RegExp("\\$\{s(\\d*)\}", "g"));
return text.replace(regexp, "<span class=\"symbol_$1\">&nbsp;</span>"); return text.replace(regexp, "<span class=\"symbol_$1\">&nbsp;&nbsp;</span>");
} }
@ -146,6 +146,8 @@ module mod_vtm_manifestation
*/ */
private erneuern_figur() : void private erneuern_figur() : void
{ {
/*
*/
let knoten_svg : mod_vtm_helfer.schnittstelle_xmlknoten = mod_vtm_manifestation.svg_wurzel let knoten_svg : mod_vtm_helfer.schnittstelle_xmlknoten = mod_vtm_manifestation.svg_wurzel
( (
-4, -4, -4, -4,
@ -183,7 +185,7 @@ module mod_vtm_manifestation
} }
case mod_vtm_aufbau.modus_korrekt: case mod_vtm_aufbau.modus_korrekt:
{ {
status = "scheinbar korrekt :)"; status = "anscheinend korrekt :)";
break; break;
} }
default: default:
@ -268,7 +270,7 @@ module mod_vtm_manifestation
let stelle_ : schnittstelle_fehlermonade<mod_vtm_aufbau.typ_stelle> = stelle_ermitteln(event.target); let stelle_ : schnittstelle_fehlermonade<mod_vtm_aufbau.typ_stelle> = stelle_ermitteln(event.target);
if (stelle_.ist_schlicht()) if (stelle_.ist_schlicht())
{ {
this.aufbau.welt_feld_wechseln(stelle_.lesen(), true); this.aufbau.welt_feld_wechseln(stelle_.lesen(), false);
} }
else else
{ {
@ -287,7 +289,7 @@ module mod_vtm_manifestation
let stelle_ : schnittstelle_fehlermonade<mod_vtm_aufbau.typ_stelle> = stelle_ermitteln(event.target); let stelle_ : schnittstelle_fehlermonade<mod_vtm_aufbau.typ_stelle> = stelle_ermitteln(event.target);
if (stelle_.ist_schlicht()) if (stelle_.ist_schlicht())
{ {
this.aufbau.welt_feld_wechseln(stelle_.lesen(), false); this.aufbau.welt_feld_wechseln(stelle_.lesen(), true);
} }
else else
{ {

View file

@ -7,6 +7,7 @@ html
color: hsl(120, 0%, 100%); color: hsl(120, 0%, 100%);
font-family: monospace; font-family: monospace;
line-height: 200%;
} }
body body
@ -107,3 +108,8 @@ body > header
#knoepfe.testen_stehend > #knopf_anhalten {display: none;} #knoepfe.testen_stehend > #knopf_anhalten {display: none;}
#knoepfe.testen_stehend > #knopf_bearbeiten {} #knoepfe.testen_stehend > #knopf_bearbeiten {}
#aufgabe_status
{
margin-bottom: 8px;
}

View file

@ -21,7 +21,7 @@
<div class="bereich" id="bereich_mitte"> <div class="bereich" id="bereich_mitte">
</div> </div>
<div class="bereich" id="bereich_rechts"> <div class="bereich" id="bereich_rechts">
<span id="aufgabe_status"></span> <div id="aufgabe_status"></div>
<div id="knoepfe"> <div id="knoepfe">
<button id="knopf_testen">Testen</button> <button id="knopf_testen">Testen</button>
<button id="knopf_anhalten">Anhalten</button> <button id="knopf_anhalten">Anhalten</button>
@ -84,7 +84,7 @@
</li> </li>
<li> <li>
<header>Transduktor</header> <header>Transduktor</header>
<p>Bei einer Transdukor-Aufgabe soll eine Ausgabe erzeugt werden, die in einer bestimmten Beziehung zur vorgefundenen Eingabe steht, also sozusagen eine Funktion angewendet werden.</p> <p>Bei einer Transduktor-Aufgabe soll eine Ausgabe erzeugt werden, die in einer bestimmten Beziehung zur vorgefundenen Eingabe steht, also sozusagen eine Funktion angewendet werden.</p>
<p>Beispiel: Die Eingabe zwei mal wiederholt.</p> <p>Beispiel: Die Eingabe zwei mal wiederholt.</p>
</li> </li>
</ul> </ul>

11
werkzeuge/ausrollen.sh Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env sh
rsync \
--verbose \
--archive \
--compress \
--recursive \
--rsh=ssh \
erzeugnis/* \
mehl:~/websites/folksprak.org/htdocs/vtm/