1 #-*- coding: UTF-8 -*- 2 from sys import exit 3 #作出判断选择进森林还是出海冒险 4 def start(): 5 print "Now you are on an island," 6 print "you got a lot of things,but you're lonely and bored at your surroundings," 7 print "you gonna do something." 8 do_sth = raw_input(">") 9 if "yes" in do_sth: 10 print "OK,now let's make a choice for what to do next." 11 print "You can go inside the forest or you can take a ship to the sea." 12 choice = raw_input(">") 13 if "forest" in choice: 14 forest() 15 elif "sea" in choice: 16 sea() 17 else: 18 dead("you've just made the wrong choice,and you died.please restart the game.") 19 else: 20 print "Come on man ,don't be a sluggard ,say yes and let'move." 21 start() 22 23 24 25 26 #定义死亡:打印死亡原因,并退出游戏 27 def dead(why): 28 print why,"What a pity." 29 exit(0) 30 31 #定义 兔子 事件,选择“shoot"之后,包里有枪就打死兔子并带走 32 def rabbit(): 33 print "Now there is a rabbit in front of you.Propably you can shoot it and take it as your prey." 34 print "shoot or not?" 35 choice_of_rabit = raw_input(">") 36 if "sho" in choice_of_rabit :#为什么这里用 if choice_of_rabit = "shoot"就不行? 37 if "gun" in package: 38 print "Bang,you got it!awesome."#如果我想要任何时候输入一个指令都能够查看我包裹里的东西,该怎么做? 39 package.append("dead rabbit") 40 print "Check your package.",package#这么写行么? 41 else: 42 print "Stupid! You forgot to take a gun." 43 else: 44 print "God bless you.Go ahead." 45 46 #定义“熊”事件,包含“run"和”fight"两种应对模式 47 def bear(): 48 print "Hey,watch out man." 49 cotinue = raw_input(">") 50 print "There is a bear in front of you ,and it's staring at you ." 51 cotinue = raw_input(">") 52 print "So what would do? run? or fight?" 53 while True: 54 choice_of_bear1 = raw_input(">") 55 if "run" in choice_of_bear1: 56 run() 57 break 58 elif "fight" in choice_of_bear1: 59 fight() 60 break 61 else: 62 print"illeagal input,please try again." 63 64 65 #逃跑 函数,需要判断包裹内物品然后决定生死 66 def run (): 67 if "dead rabbit" in package: 68 print "Oh,I got an idea,maybe you can throw your rabbit so the bear would be distracted." 69 cotinue = raw_input(">") 70 print"Do you wanna throw your rabbit?" 71 while True: 72 choice_of_run = raw_input(">") 73 if "yes" in choice_of_run: 74 print"Excellent,the bear is eating the rabbit,and you made it to run." 75 break 76 elif "no" in choice_of_run: 77 dead("You died because of your mean") 78 break 79 else: 80 "Illeagal input ,say yes or no." 81 else: 82 dead("The bear catch you and eats you.") 83 84 #战斗 函数,同样判断包裹内物品决定生死,但我觉得其实应该可以在使用axe后者dagger哪里不设置死亡,而是造成不同伤害值。 85 def fight(): 86 print "Now my hero,pick up something from your bag,and start fighting." 87 print "What do you want?" 88 while True: 89 choice_of_fight = raw_input(">") 90 if choice_of_fight in package: 91 if "gun" in choice_of_fight: 92 print"BANG!BANG BANG BANG!You shoot it,and the bear died." 93 break 94 else: 95 dead("You fight with %s,you're so brave,but still killed by the bear." %choice_of_fight) 96 else: 97 print "You don't have a %s,please make sure it's in your package." %choice_of_fight 98 99 100 101 102 103 104 105 106 107 108 109 #整个森林冒险函数 110 111 def forest(): 112 ware_house = ["water","axe","dagger","bread","gun","boots","electric torch","compass","life jacket","beer","dog"] 113 print "You need to make a package before you leave.You can only choose five stuffs.Now go and get what you want." 114 print ware_house 115 stuff_number = len (package) 116 while stuff_number < 5: 117 stuffs = raw_input(">") 118 if stuffs in ware_house : 119 package.append(stuffs) 120 ware_house.remove(stuffs) 121 print "Now that what you have:",package 122 print "You can also take something from ware_house.",ware_house#这里想不明白:第五次输入之后,按理说应该直接到“You've taken enough things "那里,但是现在的情况是还会多打印两行 123 else: 124 print "Wrong input,please try again." 125 stuff_number = len (package) 126 else: 127 print "You've taken enough things ,or it will be to heavy." 128 cotinue = raw_input(">") 129 print"--------------------------------------------------------" 130 print"Now let's start the journey." 131 print"There is a mushroom on the roadside,you wanna take it?" 132 133 while True: 134 choice_mshrom = raw_input(">") 135 if "yes" in choice_mshrom: 136 package.append("mushroom") 137 print "OK,you have mushroom in your package now." 138 break 139 elif "no" in choice_mshrom: 140 print "Well,a good choice,Ah~" 141 break 142 else: 143 print"illeagal input,say yes or no."#这里如果出现非法输入,应当是回到前面的,怎么实现该?解决方案:While True 来实现。 144 print"--------------------------------------------------------" 145 rabbit() 146 print"--------------------------------------------------------" 147 bear() 148 149 #要想正常运行那些函数,首先要定义一个package,否则会出错。 150 package = [] 151 start() 152 153 154 155 156