# Dragon Realm Game
# Calling a Function
# When you define a function, you specify the instructions for it to run in the following block. When you call a function, the code inside the def block executes. Unless you call the function, the instructions in the def block will not execute.
# In other words, when the execution reaches a def statement, it skips down to the first line after the def block. But when a function is called, the execution moves inside of the function to the first line of the def block.
# For example, look at the call to the displayIntro() function on line 37:
import random
import time

def displayIntro():
    print('You are in a land full of dragons. In front of you,')
    print('you see two caves. In one cave, the dragon is friendly')
    print('and will share his treasure with you. The other dragon')
    print('is greedy and hungry, and will eat you on sight.')
    print()

def chooseCave():
    cave = ''
    while cave !='1' and cave !='2':
        print('Which cave will you go into? (1 or 2)')
        cave = input()


    return cave

def checkCave(chosenCave):
    print('You approach the cave...')
    time.sleep(2)
    print('It is dark and spooky...')
    time.sleep(2)
    print('A large dragon jumps out in front of you! He opens his jaws and...')
    print()
    time.sleep(2)

    friendlyCave = random.randint(1, 2)

    if chosenCave == str(friendlyCave):
        print('Gives you his treasure!')
    else:
        print('Gobbles you down in one bite!')

playAgain = 'yes'
while playAgain == 'yes' or playAgain == 'y':

    displayIntro()

    caveNumber = chooseCave()

    checkCave(caveNumber)

    print('Do you want to play again? (yes or no)')
    playAgain = input()
