KarelListProgram (KarelOOP2)
Retired DISLab
package cp.java.week10; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import hufs.dislab.karel.IKarel; import hufs.dislab.karel.IKarelProgram; import hufs.dislab.karel.SimpleKarel; @SuppressWarnings("serial") public class KarelListProgram extends IKarelProgram { List<IKarel> list = new LinkedList<IKarel>(); // list = new Vector<IKarel>(); // list = new ArrayList<IKarel>(); @Override protected void onInit() { int width = getWorldWidth(); int height = getWorldHeight(); IKarel karel = getIKarel(); list.add(karel); karel = new SimpleKarel("K2", 1, height, EAST); addIKarel(karel); list.add(karel); karel = new SimpleKarel("K3", width, height, WEST); addIKarel(karel); list.add(karel); karel = new SimpleKarel("K4", width, 1, WEST); addIKarel(karel); list.add(karel); list.add(karel); } @Override protected void onStart() { for (int i = 0; i < list.size(); i++) { IKarel karel = list.get(i); karel.move(); } Iterator<IKarel> it = list.iterator(); while (it.hasNext()) { IKarel karel = it.next(); karel.turnAround(); } ListIterator<IKarel> it2 = list.listIterator(); while (it2.hasNext()) { IKarel karel = it2.next(); karel.move(); } while (it2.hasPrevious()) { IKarel karel = it2.previous(); karel.turnAround(); } } public static void main(String[] args) { IKarelProgram.main(args, new SimpleKarel("K1")); } }