2012-09-27 5 views
1

Je fais un jeu RPG qui fait référence à fightmode() pour chaque bataille. Donc pour mon premier scenerio, je l'ai fait "def game1()" et de là, il mène à fightmode(). Une fois que la bataille de fightmode() est terminée, j'aimerais que ça se passe sur game2() ou game3() etc ... Y a-t-il un moyen pour moi de faire ça? Ceci est mon code jusqu'à présent.Python en boucle vers d'autres fonctions en utilisant une fonction.

Je n'ai pas encore codé game2(), mais j'espère que ce que j'ai dit était compréhensible.

import time 
import random 
global myhp 
myhp = 20 
mydmg = random.randint(2,5) 
global mgold 
mgold = 0 

def start(): 
    print "Hello there."; time.sleep(.5) 
    myname = raw_input("What is your name? ") 
    print "Welcome %s, this is..." %myname; time.sleep(.5) 
    uname = myname.upper() 
    print "\t\t\tTHE ADVENTURES OF %s" %uname; time.sleep(.5) 
    choice0 = '' 
    allowed = ["y", "n"] 
    while choice0.lower() not in allowed: 
     choice0 = raw_input("\nWould you like to play the game? Y/N "); time.sleep(.5) 
     choice0 = choice0.lower() 
    if choice0 == "y": 
     game1() 
    if choice0 == "n": 
     print "Alright, bye!" 

def fightmode(name, hp, dmg_min, dmg_max, gold): 
    global myhp 
    print '\n\n\nYou are in a fight with %s' %name; time.sleep(.5) 
    print '%s has %sHP' %(name, hp); time.sleep(.5) 
    while myhp > 0 and hp > 0: 
     print '\n\t1. Attack \n\t2. Guard \n\t3. Run away.'; time.sleep(.2) 
     opt1= '' 
     allowed = ["1", "2", "3"] 
     while opt1 not in allowed: 
      mydmg = random.randint(2,5) 
      dmg = random.randint(dmg_min, dmg_max) 
      opt1 = raw_input("\nWhat will you do? ") 
      if opt1 == "1": 
       hp = hp - mydmg 
       myhp = myhp - dmg 
       print "\nYou have inflicted %d damage on %s. %s's HP is %s" %(mydmg, name, name, hp); time.sleep(.5) 
       if hp >= 1: 
        print "%s attacked you and did %d damage. Your HP fell down to %s" %(name, dmg, myhp); time.sleep(.5) 
        if myhp <= 0 : 
         print"\n\tYou have been defeated..."; time.sleep(.5) 
         restart = '' 
         allowed =["y", "n"] 
         restart = restart.lower() 
         restart = raw_input("\n\tWould you like to start over? "); time.sleep(.5) 
         if restart == "y": 
          myhp = 20 
          game1()  
      if opt1 == "2": 
       myhp = myhp + 5 
       print "You are now guarding yourself. Your HP is now %d" %myhp; time.sleep(.5) 
       myhp = myhp - dmg 
       print "%s attacked you and did %d damage. Your HP fell down to %s" %(name, dmg, myhp); time.sleep(.5) 
      if opt1 == "3": 
       chance = random.randint(0,11) 
       if chance == 1: 
        print "You have sucessfully run away"; time.sleep(.5) 
       else: 
        myhp = myhp - dmg 
        print "You failed to run away."; time.sleep(.5) 
        print "%s attacked you and did %d damage. Your HP fell down to %s" %(name, dmg, myhp); time.sleep(.5) 
    if myhp <= 0 : 
     print"\n\tYou have been defeated..."; time.sleep(.5) 
     restart = '' 
     allowed =["y", "n"] 
     restart = restart.lower() 
     restart = raw_input("\n\tWould you like to start over? "); time.sleep(.5) 
     if restart == "y": 
      myhp = 20 
      game1() 
    if hp <= 1 : 
     global mgold 
     print"You have defeated %s and earned %d gold." %(name, gold); time.sleep(.5) 
     mgold = mgold + gold 
     print"You have %d gold." %mgold; time.sleep(.5) 


def fightmode0(): 
    print """\n\nThis is your first fight. You have 3 seconds each turn 
if you fail to make a move in 3 seconds, you will lose your turn. 

By "Attacking", you inflict damage on the enemy\'s HP, get it down to 0 to defeat him. 
If your HP reaches 0, you will be defeated. 

By "Guarding", you will regain 10HP back, but that counts as your turn. 
By defeating enemies, you gain gold Use gold to purchase upgrades 
when you come across a shop. 

You can choose to "Run Away", but you will only have a 1/10 chance of it being sucessful 
""" 
    raw_input("\nPress any key to continue to battle"); time.sleep(.5) 
    fightmode("Scrawny Thug", 15, 1, 5, 4) 

def game1(): 
    print "\nYou wake up and find yourself locked in a room..."; time.sleep(.5) 
    print "You think you're kidnapped."; time.sleep(.5) 
    print "Yea, you're probably kidnapped."; time.sleep(.5) 
    print "You hear footsteps approaching the door..."; time.sleep(.5) 
    print "\n\t1. Remain in fetal position \n\t2. Attempt a sneak attack" ; time.sleep(.5) 
    choice1 = '' 
    allowed = ["1", "2"] 
    while choice1 not in allowed: 
     choice1 = raw_input("\nWhat will you do? "); time.sleep(.5) 
    print "\nThe doorknob rattles..."; time.sleep(.5) 
    print "..."; time.sleep(.5) 
    print "..."; time.sleep(.5) 
    if choice1 == "1": 
     print '"Hey!"'; time.sleep(.7) 
     print '"Get up maggot!"'; time.sleep(.7) 
     print 'You see that the thug is small and scrawny'; time.sleep(1) 
     print 'He grabs you by your hair and pulls you up'; time.sleep(1) 
     print "\n\t1. Punch him in the face. \n\t2. Do nothing" ; time.sleep(1) 
     choice1_1 = '' 
     allowed = ["1", "2",] 
     while choice1_1 not in allowed: 
      choice1_1= raw_input("\nWhat will you do?? "); time.sleep(.5) 
     if choice1_1 == "1": 
      print '\nYou punch the scrawny thug and he lets you go'; time.sleep(.5) 
      print '"You\'re going to pay for that."'; time.sleep(.5) 
      print '\n\t\t>>>>>>>>>>ENTERING FIGHT MODE'; time.sleep(.5) 
      print '\n\t\t>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'; time.sleep(.5) 
      print '\n\t\t>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'; time.sleep(.5) 
      print '\n\t\t>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'; time.sleep(.5) 
      print '\n\t\t>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'; time.sleep(.5) 
      fightmode0() 



game1() 

Répondre

4

Au fond où vous appelez game1(), ajouter des appels à game2(), etc .:

game1() 
game2() 
game3() 
+1

Merci! Je pensais trop et je n'ai même pas vu ça – user1692517

Questions connexes