KarelMapProgram (KarelOOP2)
Retired DISLab
package cp.java.week10; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import hufs.dislab.karel.IKarel; import hufs.dislab.karel.IKarelProgram; import hufs.dislab.karel.SimpleKarel; @SuppressWarnings("serial") public class KarelMapProgram extends IKarelProgram { Map<String, IKarel> map = new HashMap<String, IKarel>(); @Override protected void onInit() { IKarel karel = (IKarel) getKarel(); map.put("kim", karel); karel = new SimpleKarel(); addIKarel(karel, 1, 3, EAST, 0); map.put("hong", karel); karel = new SimpleKarel(); addIKarel(karel, 1, 5, EAST, 0); map.put("lee", karel); karel = new SimpleKarel(); addIKarel(karel, 1, 7, EAST, 0); map.put("park", karel); } @Override protected void onStart() { Scanner scan = new Scanner(System.in); IKarel karel; String name, cmd; while (true) { System.out.print(" Karel: "); name = scan.nextLine(); if (name != null && name.equals("exit")) break; System.out.print("Command: "); cmd = scan.nextLine(); karel = map.get(name); if (karel == null) continue; if (cmd.equals("turn")) karel.turnLeft(); else if (cmd.equals("move")) karel.move(); } } public static void main(String[] args) { IKarelProgram.main(args, new SimpleKarel()); } }