#python
#python
Вопрос:
Моя проблема в том, что если вы посмотрите на переменную ‘support’. (В списке переменных) это не относится к текущему потреблению. например Если я нажимаю «S» и «enter», чтобы начать игру, затем нажимаю «M», чтобы отобразить миссии, затем нажимаю «S», чтобы выбрать миссию выживших. И я получаю 2 выживших. По какой-то причине это количество не будет добавляться к поддержке и отображать «Вы потребляете 0,5 бла-бла-бла», а не «Вы потребляете 0,7 бла-бла-бла», как должно быть добавлено 0,1 на человека? Извините, если это трудно понять, я только 11 пытаюсь программировать! импортируйте случайное изображение из PIL import Image
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"
Комментарии:
1. вывод «Вы потребляете » str (поддержка) «еда и » str (поддержка) » вода в день» — это оператор печати, который не обновляется.
Ответ №1:
Вы никогда не обновляете свою support
переменную после того, как установили ее в первый раз, поэтому каждый раз, когда вы ее распечатываете, она одинакова. Поскольку support
зависит от human
, вы должны либо пересчитывать support
каждый раз human
при обновлении, либо иметь подобную функцию calculate_support()
, которая вычисляет ее, когда вам это нужно.
Ответ №2:
Насколько я могу судить с первого взгляда, вы присваиваете значение переменной ‘support’ только один раз в коде:
support = 0.1 * human
и я не думаю, что этот код будет запущен снова. Как только служба поддержки получит значение с помощью этого оператора присваивания, оно не будет обновляться, даже если вы обновите значение переменной ‘human’.