added turtle program
This commit is contained in:
		
							parent
							
								
									f9aadbcbe9
								
							
						
					
					
						commit
						17be4149db
					
				@ -153,6 +153,8 @@ class Terminal extends UIApp {
 | 
				
			|||||||
				return new Disk();
 | 
									return new Disk();
 | 
				
			||||||
			case "gps":
 | 
								case "gps":
 | 
				
			||||||
				return new GPS();
 | 
									return new GPS();
 | 
				
			||||||
 | 
								case "turtle":
 | 
				
			||||||
 | 
									return new Turtle();
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				return null;
 | 
									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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user