diff --git a/makefile b/makefile index 4c72dee..7c7bd64 100644 --- a/makefile +++ b/makefile @@ -49,7 +49,7 @@ erzeugnis/vtm.js: \ quelldatein/aufbau/partie.ts \ quelldatein/manifestation/manifestation.ts \ quelldatein/manifestation/position.ts \ - quelldatein/manifestation/svg.ts \ + quelldatein/manifestation/svg/svg.ts \ quelldatein/manifestation/svg/figur.ts \ quelldatein/manifestation/svg/aktor.ts \ quelldatein/manifestation/svg/partie.ts \ @@ -91,7 +91,7 @@ erzeugnis/vtm.js: \ quelldatein/aufbau/partie.ts \ quelldatein/manifestation/manifestation.ts \ quelldatein/manifestation/position.ts \ - quelldatein/manifestation/svg.ts \ + quelldatein/manifestation/svg/svg.ts \ quelldatein/manifestation/svg/figur.ts \ quelldatein/manifestation/svg/aktor.ts \ quelldatein/manifestation/svg/partie.ts \ diff --git a/quelldatein/aufbau/partie.ts b/quelldatein/aufbau/partie.ts index 49c0da1..e05e7e4 100644 --- a/quelldatein/aufbau/partie.ts +++ b/quelldatein/aufbau/partie.ts @@ -134,6 +134,19 @@ module mod_vtm_aufbau } + /** + * @author kcf + */ + 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 */ @@ -226,21 +239,19 @@ module mod_vtm_aufbau { if (! this.figur.ist_schlicht()) { - let tests : Array = this.aufgabe.tests(); - let testindex : int = this.testindex.lesen(); - let test : schnittstelle_test = tests[testindex]; + let test : schnittstelle_test = this.aufgabe.tests()[this.testindex.lesen()]; + let band : Array = mod_vtm_helfer.liste_kopieren(test.eingabe()); let stelle : typ_stelle = this.welt.erzeuger_finden(); this.figur = ( new klasse_schlicht ( new klasse_figur ( - mod_vtm_helfer.liste_kopieren(test.eingabe()), + band, stelle ) ) ); - this.benachrichtigen("aenderung_figur", {}); } else { @@ -259,8 +270,8 @@ module mod_vtm_aufbau let angenommen : boolean = (zustand === zustand_angenommen); let ausgabe : Array = figur.band_lesen(); this.figur = (new klasse_nichts()); - let tests : Array = this.aufgabe.tests(); let testindex : int = this.testindex.lesen(); + let tests : Array = this.aufgabe.tests(); let test : schnittstelle_test = tests[testindex]; if (! test.pruefen(angenommen, ausgabe)) { @@ -270,18 +281,18 @@ module mod_vtm_aufbau else { testindex += 1; - if (testindex >= tests.length) + if (testindex < tests.length) + { + // nächsten Test auswählen + this.testindex = (new klasse_schlicht(testindex)); + } + else { // auf Modus "korrekt" wechseln this.testindex = (new klasse_nichts()); this.modus = modus_korrekt; this.benachrichtigen("aenderung_modus", {}); } - else - { - // nächsten Test auswählen - this.testindex = (new klasse_schlicht(testindex)); - } } } else @@ -289,8 +300,8 @@ module mod_vtm_aufbau let meldung : string = "unbehandelter Zustand"; throw (new Error(meldung)); } - this.benachrichtigen("aenderung_figur", {}); } + this.benachrichtigen("aenderung_figur", {}); break; } case modus_fehlerhaft: diff --git a/quelldatein/daten/aufgaben.dat.js b/quelldatein/daten/aufgaben.dat.js index 5187a9a..52dbeb7 100644 --- a/quelldatein/daten/aufgaben.dat.js +++ b/quelldatein/daten/aufgaben.dat.js @@ -139,9 +139,9 @@ jsonp_behandlung( "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], - "ausgabe": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] - } + "eingabe": [0,0,0,0,1,0,1,1,0], + "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", "parameter": { diff --git a/quelldatein/haupt.ts b/quelldatein/haupt.ts index 4d5dc61..f01a0f7 100644 --- a/quelldatein/haupt.ts +++ b/quelldatein/haupt.ts @@ -79,17 +79,10 @@ function aufgaben_eintragen(behandler : (aufgabe : mod_vtm_aufbau.schnittstelle_ function haupt() : void { let aufbau : mod_vtm_aufbau.klasse_partie; - let aufgabe_laden = function (aufgabe : mod_vtm_aufbau.schnittstelle_aufgabe) : void - { - aufbau = (new mod_vtm_aufbau.klasse_partie(aufgabe)); - let manifestation : mod_vtm_manifestation.klasse_manifestation = ( - new mod_vtm_manifestation.klasse_web_partie(aufbau, document.querySelector("#bereich_mitte")) - ); - manifestation.einrichten(); - } - ; + let aufgabe_laden = function (aufgabe : mod_vtm_aufbau.schnittstelle_aufgabe) : void {aufbau.aufgabe_setzen(aufgabe);}; 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(); } diff --git a/quelldatein/manifestation/svg/figur.ts b/quelldatein/manifestation/svg/figur.ts index d7f85f0..48e7c86 100644 --- a/quelldatein/manifestation/svg/figur.ts +++ b/quelldatein/manifestation/svg/figur.ts @@ -63,9 +63,9 @@ module mod_vtm_manifestation { let band : Array = figur.band_lesen(); let kinder_band : Array = []; - band.reduceRight + band.forEach ( - (dummy, symbol, index) => + (symbol, index) => { let r : float = 0.06125; let x : float = (+0.1+(2*r*1.25)*index); @@ -94,10 +94,7 @@ module mod_vtm_manifestation ) ); kinder_band.push(knoten_eintrag); - return null; } - , - null ) ; let knoten_band = ( diff --git a/quelldatein/manifestation/svg/partie.ts b/quelldatein/manifestation/svg/partie.ts index 2407e68..4946c5d 100644 --- a/quelldatein/manifestation/svg/partie.ts +++ b/quelldatein/manifestation/svg/partie.ts @@ -71,21 +71,6 @@ module mod_vtm_manifestation ); kinder_welt.push(knoten_felder); } - // Figur - { - let figur_ : schnittstelle_fehlermonade = this.aufbau.figur_lesen(); - if (figur_.ist_schlicht()) - { - let figur : mod_vtm_aufbau.klasse_figur = figur_.lesen(); - let manifestation_figur : klasse_manifestation = (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 = ( new mod_vtm_helfer.klasse_xmlknoten_normal ( @@ -98,6 +83,21 @@ module mod_vtm_manifestation ); kinder_partie.push(knoten_welt); } + // Figur + { + let figur_ : schnittstelle_fehlermonade = this.aufbau.figur_lesen(); + if (figur_.ist_schlicht()) + { + let figur : mod_vtm_aufbau.klasse_figur = figur_.lesen(); + let manifestation_figur : klasse_manifestation = (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 = ( new mod_vtm_helfer.klasse_xmlknoten_normal ( diff --git a/quelldatein/manifestation/svg.ts b/quelldatein/manifestation/svg/svg.ts similarity index 100% rename from quelldatein/manifestation/svg.ts rename to quelldatein/manifestation/svg/svg.ts diff --git a/quelldatein/manifestation/web/partie.ts b/quelldatein/manifestation/web/partie.ts index 6fb2f5e..2557079 100644 --- a/quelldatein/manifestation/web/partie.ts +++ b/quelldatein/manifestation/web/partie.ts @@ -25,7 +25,7 @@ module mod_vtm_manifestation function text_nachbearbeiten(text : string) : string { let regexp : RegExp = (new RegExp("\\$\{s(\\d*)\}", "g")); - return text.replace(regexp, " "); + return text.replace(regexp, "  "); } @@ -146,6 +146,8 @@ module mod_vtm_manifestation */ private erneuern_figur() : void { + /* + */ let knoten_svg : mod_vtm_helfer.schnittstelle_xmlknoten = mod_vtm_manifestation.svg_wurzel ( -4, -4, @@ -183,7 +185,7 @@ module mod_vtm_manifestation } case mod_vtm_aufbau.modus_korrekt: { - status = "scheinbar korrekt :)"; + status = "anscheinend korrekt :)"; break; } default: @@ -268,7 +270,7 @@ module mod_vtm_manifestation let stelle_ : schnittstelle_fehlermonade = stelle_ermitteln(event.target); if (stelle_.ist_schlicht()) { - this.aufbau.welt_feld_wechseln(stelle_.lesen(), true); + this.aufbau.welt_feld_wechseln(stelle_.lesen(), false); } else { @@ -287,7 +289,7 @@ module mod_vtm_manifestation let stelle_ : schnittstelle_fehlermonade = stelle_ermitteln(event.target); if (stelle_.ist_schlicht()) { - this.aufbau.welt_feld_wechseln(stelle_.lesen(), false); + this.aufbau.welt_feld_wechseln(stelle_.lesen(), true); } else { diff --git a/quelldatein/manifestation/web/vtm.css b/quelldatein/manifestation/web/vtm.css index 322146a..f249449 100644 --- a/quelldatein/manifestation/web/vtm.css +++ b/quelldatein/manifestation/web/vtm.css @@ -7,6 +7,7 @@ html color: hsl(120, 0%, 100%); font-family: monospace; + line-height: 200%; } body @@ -107,3 +108,8 @@ body > header #knoepfe.testen_stehend > #knopf_anhalten {display: none;} #knoepfe.testen_stehend > #knopf_bearbeiten {} +#aufgabe_status + { + margin-bottom: 8px; + } + diff --git a/quelldatein/manifestation/web/vtm.html b/quelldatein/manifestation/web/vtm.html index c21c6f4..01c6df6 100644 --- a/quelldatein/manifestation/web/vtm.html +++ b/quelldatein/manifestation/web/vtm.html @@ -21,7 +21,7 @@
- +
@@ -84,7 +84,7 @@
  • Transduktor
    -

    Bei einer Transdukor-Aufgabe soll eine Ausgabe erzeugt werden, die in einer bestimmten Beziehung zur vorgefundenen Eingabe steht, also sozusagen eine Funktion angewendet werden.

    +

    Bei einer Transduktor-Aufgabe soll eine Ausgabe erzeugt werden, die in einer bestimmten Beziehung zur vorgefundenen Eingabe steht, also sozusagen eine Funktion angewendet werden.

    Beispiel: Die Eingabe zwei mal wiederholt.

  • diff --git a/werkzeuge/ausrollen.sh b/werkzeuge/ausrollen.sh new file mode 100755 index 0000000..77645b6 --- /dev/null +++ b/werkzeuge/ausrollen.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env sh + +rsync \ + --verbose \ + --archive \ + --compress \ + --recursive \ + --rsh=ssh \ + erzeugnis/* \ + mehl:~/websites/folksprak.org/htdocs/vtm/ +