2016-10-10 133 views
0

我的問題是,如果你看'支持'變量。 (在變量列表中)它不適用於當前消耗。對於EX。如果我按'S'進入開始遊戲,然後按'M'顯示任務,然後按'S'選擇倖存者任務。我收到2名倖存者。這個數字不會因爲某種原因而增加支持,並顯示「你正在消費0.5等等等等等等」而不是「你正在消費0.7等等等等等等」,因爲它應該是每個人增加0.1。對不起,如果這很難理解,我只有11試圖編程! 進口隨機 從PIL進口圖片數學公式錯誤

print('\x1b[6;30;42m' + 'Zombie Survival Simulator' + '\x1b[0m') 
print "Press [S] to start!" 
resp = raw_input() 
if 's' in resp or 'S' in resp: 
    foodmission = ['Convience Store','Grocery Store','Restraunt','Food Storage Area'] 
    watermission = ['Convience Store', 'Old Gas Station', 'Water Tower','Toppled Coca-Cola truck.'] 
    survivormission = ['Abandoned Refugee Camp','Bus','Army Camp','Train Station'] 
    "FOOD" 
    #Pick Area 
    def pickfoodMission(): 
     foodmis = random.choice(foodmission) 
     return foodmis 
    #Chance to get food 
    def chanceFood(): 
     foodcha = random.randint(1,20) 
     return foodcha 
    #How much food you gain a mission 
    def foodPickup(): 
     foodpick = random.randint(1,2) 
     return foodpick 
    "WATER" 
    #Pick the area 
    def pickwaterMission(): 
     watermis = random.choice(watermission) 
     return watermis 
    #Chance for getting water 
    def chancewater(): 
     watercha = random.randint(1,20) 
     return watercha 
    #Number of water you gain a mission 
    def waterPickup(): 
     waterpick = random.randint(1,2) 
     return waterpick 
    "SURVIVORS" 
    #Pick the area 
    def picksurvivorMission(): 
     survivormis = random.choice(survivormission) 
     return survivormis 
    #Chance for getting water 
    def chancehuman(): 
     humancha = random.randint(1,20) 
     return humancha 
    #Number of water you gain a mission 
    def humanPickup(): 
     humanpick = random.randint(1,2) 
     return humanpick 


    food = 3 
    water = 3 
    human = 5 
    healthy = 0 
    con = 0.1 
    level = 1 
    game = 1 
    new = 1 
    foodcon = 0 
    watercon = 0 
    support = 0.1 * human 
    newhuman = (human + (1 + (human/5)) + healthy) 
    newwater = (water + (1 + (human/5)) + healthy) 
    newfood = (water + (1 + (human/5)) + healthy) 
    while game == 1: 
     if food <= 0 or water <= 0: 
      print('\x1b[7;30;41m' + 'You and your friends are dead.' + '\33[3m') 
      break 
     if food >= 3 or water >= 3: 
      healthy = healthy + 1 
     if food <= 2 or water <= 2: 
      healthy = healthy - 1 
     print "Current Resources: Food: " +str(food) + " Day(s) Water: " + str(water) + " Day(s)" 
     print "Current Survivors " + str(human) 
     if healthy <= -3 and healthy >= -1: 
      print "Current Survivors are " + ('\x1b[7;30;41m' + 'Nearly Dead' + '\33[3m') 
     if healthy == 0: 
      print "Current survivors " + ('\x1b[7;30;41m' + 'Are not healthy' + '\33[3m') 
     if healthy >= 1 and healthy <= 3: 
      print "Current Survivors are " + ('\x1b[7;32;43m' + 'Ok' + '\x1b[0m') 
     if healthy >= 3 and healthy <= 5: 
      print "Current Survivors are " + ('\x1b[7;32;43m' + 'Great' + '\x1b[0m') 
     if healthy >= 5 and healthy <= 7: 
      print "Current Survivors are " + ('\x1b[7;32;43m' + 'Excellent' + '\x1b[0m') 
     foodcon = support 
     watercon = support 
     food = food - support 
     water = water - support 
     print human 
     print support 
     print "You are consuming " + str(support) + " food and " + str(support) + " water per day" 
     if food - support <= 0 or water - support <= 0: 
      print('\x1b[7;30;41m' + 'You will not survive the next day.' + '\33[3m') 
     print "[M]issions [B]uilding [H]oard [E]nd Day" 
     resp = raw_input() 
     if 'M' in resp or 'm' in resp: 
      print "[F]ood [W]ater [S]urvivor" 
      resp = raw_input() 
      if 'F' in resp or 'f' in resp: 
       foodmis = pickfoodMission() 
       print "You go to a " + foodmis 
       foodcha = chanceFood() 
       if foodcha >= 14: 
        foodpick = foodPickup() 
        food = newfood 
        img = Image.open('food.png') 
        img.show() 
        print('\x1b[7;32;43m' + 'You are now at ' + str(newfood) + ' day(s) of food' + '\x1b[0m') 
       elif foodcha < 14: 
        print('\x1b[7;30;41m' + 'You come back empty handed.' + '\x1b[0m') 
      elif 'w' in resp or 'W' in resp: 
       watermis = pickwaterMission() 
       print "You go to a " + watermis 
       watercha = chancewater() 
       if watercha >= 14: 
        waterpick = waterPickup() 
        water = newwater 
        img = Image.open('water.png') 
        img.show() 
        print('\x1b[7;32;43m' + 'You are now at ' + str(newwater) + ' day(s) of water' + '\x1b[0m') 
       elif watercha <= 14: 
        print('\x1b[7;30;41m' + 'You come back empty handed.' + '\x1b[0m') 
      elif 's' in resp or 'S' in resp: 
       humanmis = picksurvivorMission() 
       print "You go to a " + humanmis 
       humancha = chancehuman() 
       if humancha >= 14: 
        humanpick = humanPickup() 
        human = newhuman 
        print('\x1b[7;32;43m' + 'You are now at ' + str(human) + ' survivor(s)' + '\x1b[0m') 
        img = Image.open('cats.jpg') 
        img.show() 
       elif humancha <= 14: 
        print('\x1b[7;30;41m' + 'You come back with no one else new.' + '\x1b[0m') 
     if 'B' in resp or 'b' in resp: 
      print "[F]ood" 
+0

print「您正在消費」+ str(支持)+「food and」+ str(支持)+「每天喝水」是否未更新的打印語句。 – CatsInSpace

回答

1

你永遠更新support變量後,將其設置在每次打印出來它的同時,第一次如此。由於support依賴於human,因此您應該每次重新計算supporthuman已更新或具有類似calculate_support()的函數,可在需要時計算它。

+1

謝謝!它現在有效! – CatsInSpace

0

據我可以快速瀏覽你只在碼附加價值的「支持」變量一次看到:

support = 0.1 * human 

,我不認爲這個代碼得到再次運行。一旦支持通過此賦值語句獲取值,即使更新'人類'變量的值,它也不會更新。

+0

此問題已經回答,但謝謝! – CatsInSpace