added turtle program
This commit is contained in:
parent
f9aadbcbe9
commit
17be4149db
@ -153,6 +153,8 @@ class Terminal extends UIApp {
|
||||
return new Disk();
|
||||
case "gps":
|
||||
return new GPS();
|
||||
case "turtle":
|
||||
return new Turtle();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
44
src/bin/Turtle.hx
Normal file
44
src/bin/Turtle.hx
Normal file
@ -0,0 +1,44 @@
|
||||
package bin;
|
||||
|
||||
import lib.CLIAppBase;
|
||||
|
||||
using tink.CoreApi;
|
||||
|
||||
class Turtle extends CLIAppBase {
|
||||
public function new() {
|
||||
registerSyncSubcommand("forward", (args)->{
|
||||
return perform(kernel.turtle.Turtle.instance.forward());
|
||||
});
|
||||
|
||||
registerSyncSubcommand("back", (args)->{
|
||||
return perform(kernel.turtle.Turtle.instance.back());
|
||||
});
|
||||
|
||||
registerSyncSubcommand("left", (args)->{
|
||||
return perform(kernel.turtle.Turtle.instance.turnLeft());
|
||||
});
|
||||
|
||||
registerSyncSubcommand("right", (args)->{
|
||||
return perform(kernel.turtle.Turtle.instance.turnRight());
|
||||
});
|
||||
|
||||
registerSyncSubcommand("up", (args)->{
|
||||
return perform(kernel.turtle.Turtle.instance.up());
|
||||
});
|
||||
|
||||
registerSyncSubcommand("down", (args)->{
|
||||
return perform(kernel.turtle.Turtle.instance.down());
|
||||
});
|
||||
}
|
||||
|
||||
private function perform(outcome: Outcome<Noise,String>): Bool {
|
||||
switch outcome {
|
||||
case Success(_):
|
||||
return true;
|
||||
case Failure(error):
|
||||
handle.write(error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user