1
我正在製作RPG遊戲,指的是每場戰鬥中的fightmode()。 因此,對於我的第一個scenerio,我做了它「def game1()」,然後從那裏,它導致fightmode()。一旦fightmode()中的戰鬥結束,我希望它去game2()或game3()等等。有沒有辦法讓我做到這一點?這是我的代碼到目前爲止。Python使用一個函數循環到其他函數。
雖然我沒有game2()編碼,但我希望我說的是可以理解的。
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()
謝謝!我正在推翻它,甚至沒有看到 – user1692517