init
This commit is contained in:
41
Bomb.java
Normal file
41
Bomb.java
Normal file
@@ -0,0 +1,41 @@
|
||||
import java.io.*;
|
||||
|
||||
public class Bomb {
|
||||
public static final int START = 124;
|
||||
public static final int CODE_LENGTH = 6;
|
||||
|
||||
public static void defuse(String code) throws Exception {
|
||||
if (code.length() != CODE_LENGTH) {
|
||||
throw new Bomb.Explosion();
|
||||
}
|
||||
|
||||
String curr = Integer.toHexString(CODE_LENGTH);
|
||||
for (int i = 1; i < CODE_LENGTH; i++) {
|
||||
curr = scramble(curr);
|
||||
if (curr.charAt(1) != code.charAt(i)) {
|
||||
throw new Bomb.Explosion();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static String scramble(String secret) {
|
||||
return Integer.toHexString(Integer.parseInt(secret, 16) * 0xA9 / 0b010011);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
System.out.println();
|
||||
System.out.println("Bomb armed and ready for defusal.");
|
||||
System.setOut(new PrintStream(new OutputStream() { public void write(int b) {} }));
|
||||
|
||||
// defuse("21d74"); // TODO: Find the code, hurry!
|
||||
defuse("000000");
|
||||
System.setOut(SYSTEM_OUT);
|
||||
System.out.println("Bomb defused! You saved the day!");
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
public static final PrintStream SYSTEM_OUT = System.out;
|
||||
private static class Explosion extends RuntimeException {
|
||||
public Explosion() { super("BOOM"); }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user