vtm/quelldatein/aufbau/leser.ts
Christian Fraß 8dd4d54f94 sicherung
2017-11-08 18:41:56 +01:00

91 lines
1.7 KiB
TypeScript

module mod_vtm_aufbau
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
export class klasse_leser
implements schnittstelle_aktor
{
/**
* @author kcf <vidofnir@folksprak.org>
*/
private richtung : typ_richtung;
/**
* @author kcf <vidofnir@folksprak.org>
*/
public constructor(richtung : typ_richtung = 0)
{
this.richtung = richtung;
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
public richtung_lesen() : typ_richtung
{
return this.richtung;
}
/**
* @author kcf <vidofnir@folksprak.org>
* @implementation
*/
public drehen() : void
{
this.richtung = richtung_addieren(this.richtung, +1);
}
/**
* @author kcf <vidofnir@folksprak.org>
* @implementation
*/
public verwenden(figur : klasse_figur) : void
{
let symbol_ : schnittstelle_fehlermonade<typ_symbol> = figur.lesen();
let summand : typ_richtung;
if (symbol_.ist_schlicht())
{
let symbol : typ_symbol = symbol_.lesen();
figur.schieben();
switch (symbol)
{
case 0:
{
summand = +1;
break;
}
case 1:
{
summand = -1;
break;
}
default:
{
let meldung : string = ("ungültiges Symbol '" + String(symbol) + "'");
throw (new Error(meldung));
break;
}
}
}
else
{
summand = 0;
}
let richtung : typ_richtung = richtung_addieren(this.richtung, summand);
figur.bewegen(richtung);
}
}
}