Name: Anonymous 2007-02-27 21:40 ID:gtys9iUO
Has anyone ever made the Kyoto'99 Die Game?
import java.io.*;
import java.util.ArrayList;
public class KyotoDie {
private static final int[] dieData = { 107, 105, 108, 108, 32, 121, 111, 117, 114, 115, 101, 108, 102, 10 };
private static final int NORTH = dieData[4] - 32;
private static final int SOUTH = dieData[11] - 108;
private static final int EAST = dieData[dieData.length - 1] - 10;
private static final int WEST = dieData[1] - 2 * 105 + 21 * 5;
public static void main(String[] args) throws IOException {
ArrayList result;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num, pos;
while (( num = Integer.valueOf(br.readLine()) ) > 0) {
result = new ArrayList();
pos = 0;
for (int i = 0; i < num; ++i) {
char dir = br.readLine().charAt(0);
switch (dir) {
case 'n':
result.add(result.size() - NORTH, new Character((char) dieData[pos++]));
break;
case 's':
result.add(result.size() - SOUTH, new Character((char) dieData[pos++]));
break;
case 'e':
result.add(result.size() - EAST, new Character((char) dieData[pos++]));
break;
case 'w':
result.add(result.size() - WEST, new Character((char) dieData[pos++]));
break;
}
}
for (int i = pos; i < dieData.length; ++i)
result.add(new Character((char) dieData[i]));
for (int i = 0; i < result.size(); ++i)
System.out.print(((Character) result.get(i)).charValue());
}
br.close();
}
private static int max(int a, int b) {
return (a < b) ? b : a;
}
}