def depth_charge(g):
from random import randint, seed
from math import log
print "DEPTH CHARGE GAME"; print
n = int(log(g)/log(2))+1; seed()
play_again = "Y"
print "YOU ARE CAPTAIN OF THE DESTROYER USS DIGITAL."
print "AN ENEMY SUB HAS BEEN CAUSING YOU TROUBLE. YOUR"
print "MISSION IS TO DESTROY IT. YOU HAVE", n, "SHOTS."
print "SPECIFY DEPTH CHARGE EXPLOSION POINT WITH A"
print "TRIO OF NUMBERS -- THE FIRST TWO ARE THE"
print "SURFACE COORDINATES; THE THIRD IS THE DEPTH."
while play_again == "Y":
print; print "GOOD LUCK !"; print
a, b, c = randint(1,g), randint(1,g), randint(1,g)
found_it = False
for d in range(1,n+1):
if not found_it:
x, y, z = input("TRIAL # " + str(d) + " ? ")
if a == int(x) and b == int(y) and c == int(z):
print "B O O M ! ! YOU FOUND IT IN", d, "TRIES!"
found_it = True
else:
print "SONAR REPORTS SHOT WAS",
if b < y: print "NORTH",
if y < b: print "SOUTH",
if a < x: print "EAST",
if x < a: print "WEST",
if y <> b or x <> a: print "AND",
if c < z: print "TOO LOW."
if z < c: print "TOO HIGH."
if c == z: print "DEPTH OK."
if not found_it:
print "YOU HAVE BEEN TORPEDOED! ABANDON SHIP!"
print "THE SUBMARINE WAS AT", a, b, c
print; print; play_again = raw_input("ANOTHER GAME (Y OR N) ? ")
print "OK. HOPE YOU ENJOYED YOURSELF."
ZGVmIGRlcHRoX2NoYXJnZShnKToKICAgIGZyb20gcmFuZG9tIGltcG9ydCByYW5kaW50LCBzZWVkCiAgICBmcm9tIG1hdGggaW1wb3J0IGxvZwogICAgcHJpbnQgIkRFUFRIIENIQVJHRSBHQU1FIjsgcHJpbnQKICAgIG4gPSBpbnQobG9nKGcpL2xvZygyKSkrMTsgc2VlZCgpCiAgICBwbGF5X2FnYWluID0gIlkiCiAgICBwcmludCAiWU9VIEFSRSBDQVBUQUlOIE9GIFRIRSBERVNUUk9ZRVIgVVNTIERJR0lUQUwuIgogICAgcHJpbnQgIkFOIEVORU1ZIFNVQiBIQVMgQkVFTiBDQVVTSU5HIFlPVSBUUk9VQkxFLiBZT1VSIgogICAgcHJpbnQgIk1JU1NJT04gSVMgVE8gREVTVFJPWSBJVC4gIFlPVSBIQVZFIiwgbiwgIlNIT1RTLiIKICAgIHByaW50ICJTUEVDSUZZIERFUFRIIENIQVJHRSBFWFBMT1NJT04gUE9JTlQgV0lUSCBBIgogICAgcHJpbnQgIlRSSU8gT0YgTlVNQkVSUyAtLSBUSEUgRklSU1QgVFdPIEFSRSBUSEUiCiAgICBwcmludCAiU1VSRkFDRSBDT09SRElOQVRFUzsgVEhFIFRISVJEIElTIFRIRSBERVBUSC4iCiAgICB3aGlsZSBwbGF5X2FnYWluID09ICJZIjoKICAgICAgICBwcmludDsgcHJpbnQgIkdPT0QgTFVDSyAhIjsgcHJpbnQKICAgICAgICBhLCBiLCBjID0gcmFuZGludCgxLGcpLCByYW5kaW50KDEsZyksIHJhbmRpbnQoMSxnKQogICAgICAgIGZvdW5kX2l0ID0gRmFsc2UKICAgICAgICBmb3IgZCBpbiByYW5nZSgxLG4rMSk6CiAgICAgICAgICAgIGlmIG5vdCBmb3VuZF9pdDoKICAgICAgICAgICAgICAgIHgsIHksIHogPSBpbnB1dCgiVFJJQUwgIyAiICsgc3RyKGQpICsgIiA/ICIpCiAgICAgICAgICAgICAgICBpZiBhID09IGludCh4KSBhbmQgYiA9PSBpbnQoeSkgYW5kIGMgPT0gaW50KHopOgogICAgICAgICAgICAgICAgICAgIHByaW50ICJCIE8gTyBNICEgISAgWU9VIEZPVU5EIElUIElOIiwgZCwgIlRSSUVTISIKICAgICAgICAgICAgICAgICAgICBmb3VuZF9pdCA9IFRydWUKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgcHJpbnQgIlNPTkFSIFJFUE9SVFMgU0hPVCBXQVMiLAogICAgICAgICAgICAgICAgICAgIGlmIGIgPCB5OiBwcmludCAiTk9SVEgiLAogICAgICAgICAgICAgICAgICAgIGlmIHkgPCBiOiBwcmludCAiU09VVEgiLAogICAgICAgICAgICAgICAgICAgIGlmIGEgPCB4OiBwcmludCAiRUFTVCIsCiAgICAgICAgICAgICAgICAgICAgaWYgeCA8IGE6IHByaW50ICJXRVNUIiwKICAgICAgICAgICAgICAgICAgICBpZiB5IDw+IGIgb3IgeCA8PiBhOiBwcmludCAiQU5EIiwKICAgICAgICAgICAgICAgICAgICBpZiBjIDwgejogcHJpbnQgIlRPTyBMT1cuIgogICAgICAgICAgICAgICAgICAgIGlmIHogPCBjOiBwcmludCAiVE9PIEhJR0guIgogICAgICAgICAgICAgICAgICAgIGlmIGMgPT0gejogcHJpbnQgIkRFUFRIIE9LLiIKICAgICAgICBpZiBub3QgZm91bmRfaXQ6CiAgICAgICAgICAgIHByaW50ICJZT1UgSEFWRSBCRUVOIFRPUlBFRE9FRCEgQUJBTkRPTiBTSElQISIKICAgICAgICAgICAgcHJpbnQgIlRIRSBTVUJNQVJJTkUgV0FTIEFUIiwgYSwgYiwgYwogICAgICAgIHByaW50OyBwcmludDsgcGxheV9hZ2FpbiA9IHJhd19pbnB1dCgiQU5PVEhFUiBHQU1FIChZIE9SIE4pID8gIikKICAgIHByaW50ICJPSy4gIEhPUEUgWU9VIEVOSk9ZRUQgWU9VUlNFTEYuIg==