Seit Version 2.4 des Hamster-Simulators ist der Hamster-Simulator in die englisch-sprachige Welt integriert worden. Das betrifft zunächst die Benutzungsoberfläche. Durch Einstellen der Property language auf den Wert en erscheinen alle Ausgaben in englischer Sprache.
Aber nicht nur die Oberfläche auch das Hamster-Modell selbst wurde angepasst. Bswp. versteht der Hamster ab sofort nicht mehr nur den Befehl vor();, sondern auch den Befehl move();, der dasselbe bewirkt: Der Hamster springt eine Kachel in Blickrichtung nach vorne.
Im Folgenden wird ein Überblick über die entsprechenden englischen Befehle bzw. Klassen des Hamster-Modells gegeben:
deutsch | englisch |
vor | move |
linksUm | turnLeft |
nimm | pickGrain |
gib | putGrain |
vornFrei | frontIsClear |
kornDa | grainAvailable |
maulLeer | mouthEmpty |
liesZahl | readNumber |
liesZeichenkette | readString |
schreib | write |
init | init |
getReihe | getRow |
getSpalte | getColumn |
getBlickrichtung | getDirection |
getStandardHamster | getDefaultHamster |
getAnzahlKoerner | getNumberOfGrains |
getAnzahlHamster | getNumberOfHamsters |
Territorium | Territory |
HamsterInitialisierungsException | HamsterInitializationException |
HamsterNichtInitialisiertException | HamsterNotInitializedException |
KachelLeerException | TileEmptyException |
MauerDaException | WallInFrontException |
MaulLeerException | MouthEmptyException |
Ein imperatives englisches Hamster-Programm, bei dem der Hamster alle vor ihm liegenden Körner einsammeln soll, sieht damit folgendermaßen aus:
void main() { pickAll(); while (frontIsClear()) { move(); pickAll(); } } void pickAll() { while (grainAvailable()) pickGrain(); }
Das folgende Programm skizziert ein objektorientiertes englisches Hamster-Programm:
class MyHamster extends Hamster { MyHamster(Hamster h) { super(h.getRow(), h.getColumn(), h.getDirection(), h.getNumberOfGrains()); } void turnRight() { this.turnLeft(); this.turnLeft(); this.turnLeft(); } } void main() { MyHamster paul = new MyHamster(Hamster.getDefaultHamster()); try { while (true) { paul.move(); } } catch (WallInFrontException exc) { } paul.turnRight(); paul.write("Number of Hamsters: " + Territory.getNumberOfHamsters()); }
Prinzipiell kann man übrigens auch die deutschen und englischen Befehle mischen.