From 81ba9eb66f8284d8760012973f84cdbe617ceb94 Mon Sep 17 00:00:00 2001 From: pants Date: Mon, 21 Sep 2026 14:16:34 -0700 Subject: init --- Bomb.java | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Bomb.java (limited to 'Bomb.java') diff --git a/Bomb.java b/Bomb.java new file mode 100644 index 0000000..955a43f --- /dev/null +++ b/Bomb.java @@ -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"); } + } +} -- cgit v1.2.3