def intro( ) :
print ( '''You are in a locked room.
You will need to OPEN DOOR to ecape this terrible trap.
What will you do?''' )
print ( '' )
def inputCode( ) :
global hasKey
global escaped
while escaped == False :
action = input ( )
if action == 'door' :
print ( 'You need to OPEN DOOR to escape this insufferable imprisonment.' )
print ( '' )
if action == 'key' :
if hasKey == True :
print ( 'You are currently holding a KEY, your mind is filled with all the possible uses you could have for such an item! But for now you ponder if it could fit in the DOOR?' )
print ( '' )
if hasKey == False :
print ( 'With a determined display of digit dexterity you picked up the KEY!' )
print ( '' )
hasKey = True
if action == 'open door' :
if hasKey == False :
print ( 'The DOOR is currently locked, perhaps you can find a KEY?' )
print ( '' )
if hasKey == True :
print ( 'The DOOR swings open and you make a grand escape, vowing to NEVER be outsmarted by a strong breeze and automatically locking door ever again!' )
print ( '' )
hasKey = False
escaped = True
elif action != 'key' and action != 'door' and action != 'open door' :
print ( 'Try to stay focused, you need to OPEN DOOR.' )
print ( '' )
playAgain = 'yes'
while playAgain == 'yes' :
global escaped
escaped = False
global hasKey
hasKey = False
intro( )
inputCode( )
playAgain = ''
print ( 'Do you want to play again?' )
playAgain = input ( )
ZGVmIGludHJvKCk6CiAgICBwcmludCgnJydZb3UgYXJlIGluIGEgbG9ja2VkIHJvb20uCllvdSB3aWxsIG5lZWQgdG8gT1BFTiBET09SIHRvIGVjYXBlIHRoaXMgdGVycmlibGUgdHJhcC4KV2hhdCB3aWxsIHlvdSBkbz8nJycpCiAgICBwcmludCgnJykKCmRlZiBpbnB1dENvZGUoKToKICAgIGdsb2JhbCBoYXNLZXkKICAgIGdsb2JhbCBlc2NhcGVkCiAgICB3aGlsZSBlc2NhcGVkID09IEZhbHNlOgogICAgICAgIGFjdGlvbiA9IGlucHV0KCkKICAgICAgICBpZiBhY3Rpb24gPT0gJ2Rvb3InOgogICAgICAgICAgICBwcmludCgnWW91IG5lZWQgdG8gT1BFTiBET09SIHRvIGVzY2FwZSB0aGlzIGluc3VmZmVyYWJsZSBpbXByaXNvbm1lbnQuJykKICAgICAgICAgICAgcHJpbnQoJycpCiAgICAgICAgICAgICAgICAKICAgICAgICBpZiBhY3Rpb24gPT0gJ2tleSc6CiAgICAgICAgICAgIGlmIGhhc0tleSA9PSBUcnVlOgogICAgICAgICAgICAgICAgcHJpbnQoJ1lvdSBhcmUgY3VycmVudGx5IGhvbGRpbmcgYSBLRVksIHlvdXIgbWluZCBpcyBmaWxsZWQgd2l0aCBhbGwgdGhlIHBvc3NpYmxlIHVzZXMgeW91IGNvdWxkIGhhdmUgZm9yIHN1Y2ggYW4gaXRlbSEgQnV0IGZvciBub3cgeW91IHBvbmRlciBpZiBpdCBjb3VsZCBmaXQgaW4gdGhlIERPT1I/JykKICAgICAgICAgICAgICAgIHByaW50KCcnKQogICAgICAgICAgICAKICAgICAgICAgICAgaWYgaGFzS2V5ID09IEZhbHNlOgogICAgICAgICAgICAgICAgcHJpbnQoJ1dpdGggYSBkZXRlcm1pbmVkIGRpc3BsYXkgb2YgZGlnaXQgZGV4dGVyaXR5IHlvdSBwaWNrZWQgdXAgdGhlIEtFWSEnKQogICAgICAgICAgICAgICAgcHJpbnQoJycpCiAgICAgICAgICAgICAgICBoYXNLZXkgPSBUcnVlCgogICAgICAgIGlmIGFjdGlvbiA9PSAnb3BlbiBkb29yJzoKICAgICAgICAgICAgaWYgaGFzS2V5ID09IEZhbHNlOgogICAgICAgICAgICAgICAgcHJpbnQoJ1RoZSBET09SIGlzIGN1cnJlbnRseSBsb2NrZWQsIHBlcmhhcHMgeW91IGNhbiBmaW5kIGEgS0VZPycpCiAgICAgICAgICAgICAgICBwcmludCgnJykKICAgICAgICAgIAogICAgICAgICAgICBpZiBoYXNLZXkgPT0gVHJ1ZToKICAgICAgICAgICAgICAgIHByaW50KCdUaGUgRE9PUiBzd2luZ3Mgb3BlbiBhbmQgeW91IG1ha2UgYSBncmFuZCBlc2NhcGUsIHZvd2luZyB0byBORVZFUiBiZSBvdXRzbWFydGVkIGJ5IGEgc3Ryb25nIGJyZWV6ZSBhbmQgYXV0b21hdGljYWxseSBsb2NraW5nIGRvb3IgZXZlciBhZ2FpbiEnKQogICAgICAgICAgICAgICAgcHJpbnQoJycpCiAgICAgICAgICAgICAgICBoYXNLZXkgPSBGYWxzZQogICAgICAgICAgICAgICAgZXNjYXBlZCA9IFRydWUKCiAgICAgICAgZWxpZiBhY3Rpb24gIT0gJ2tleScgYW5kIGFjdGlvbiAhPSAnZG9vcicgYW5kIGFjdGlvbiAhPSAnb3BlbiBkb29yJzoKICAgICAgICAgICAgcHJpbnQoJ1RyeSB0byBzdGF5IGZvY3VzZWQsIHlvdSBuZWVkIHRvIE9QRU4gRE9PUi4nKQogICAgICAgICAgICBwcmludCgnJykKCnBsYXlBZ2FpbiA9ICd5ZXMnCgp3aGlsZSBwbGF5QWdhaW4gPT0gJ3llcyc6CiAgICBnbG9iYWwgZXNjYXBlZAogICAgZXNjYXBlZCA9IEZhbHNlCiAgICBnbG9iYWwgaGFzS2V5CiAgICBoYXNLZXkgPSBGYWxzZQogICAgaW50cm8oKQogICAgaW5wdXRDb2RlKCkKICAgIHBsYXlBZ2FpbiA9ICcnCiAgICBwcmludCgnRG8geW91IHdhbnQgdG8gcGxheSBhZ2Fpbj8nKQogICAgcGxheUFnYWluID0gaW5wdXQoKQ==