package icpc.challenge.view; import icpc.challenge.link.PipedPlayer; import icpc.challenge.world.AbstractView; import icpc.challenge.world.Move; import icpc.challenge.world.World; import java.awt.geom.Point2D; import java.io.IOException; import java.io.PrintStream; import java.util.ArrayList; public class TurnWriter implements AbstractView { private PrintStream output; public TurnWriter(String paramString) throws IOException { this.output = new PrintStream(paramString); } public void snapshot(double paramDouble, World paramWorld) { int i = (int)Math.round(paramDouble / 100.0D); if (Math.abs(i * 100 - paramDouble) < 0.0001D) { PipedPlayer.encodeState(this.output, 0, i, paramWorld); this.output.flush(); } } public void moveReport(double paramDouble, Move paramMove1, Move paramMove2) { this.output.printf("move0 %.3f %.3f %.3f %.3f %.3f\n", new Object[] { Double.valueOf(paramMove1.accel0.getX()), Double.valueOf(paramMove1.accel0.getY()), Double.valueOf(paramMove1.accel1.getX()), Double.valueOf(paramMove1.accel1.getY()), Double.valueOf(paramMove1.dangle) }); this.output.printf("move1 %.3f %.3f %.3f %.3f %.3f\n", new Object[] { Double.valueOf(paramMove2.accel0.getX()), Double.valueOf(paramMove2.accel0.getY()), Double.valueOf(paramMove2.accel1.getX()), Double.valueOf(paramMove2.accel1.getY()), Double.valueOf(paramMove2.dangle) }); this.output.printf("\n", new Object[0]); this.output.flush(); } public void hitWall(double paramDouble1, int paramInt1, int paramInt2, double paramDouble2, double paramDouble3) { } public void sledWrap(double paramDouble1, int paramInt1, int paramInt2, double paramDouble2) { } public void sledLoop(double paramDouble, int paramInt, ArrayList<ArrayList<Point2D>> paramArrayList) { } public void collision(double paramDouble, int paramInt1, int paramInt2) { } public void ready() { } public void shutdown() { this.output.printf("-1", new Object[0]); this.output.close(); } public void finished() { } }