2016-04-12 5 views
0

Итак, я делаю игру, и я очень новичок в python как язык кодирования, и в настоящее время я не занимаюсь классом. Я сам изучаю. Я начинаю с текстовой игры. Я хочу реализовать HP как фактор и дать возможность перезапустить игру, когда вы играете. Вот код, который у меня есть.Как реализовать HP и автоматически перезапустить игру после игры за

print("Welcome to the journey to Camelot. This game is case sensitive, type the answers exactly as shown!") 
print("\nYou wake up and decide today you are going to become a knight of the round table. You are a skinny average joe" 
    " but, that does not bother you. You hunker up, get dressed, and decide what to bring with you. Do you bring a" 
    " 'Bow' or a 'Sword?'") 
SwordBow = input('>') 
if SwordBow == "Bow": 
    print("\nYou pick up your trusty bow and get ready to leave. You walk outside and notice it is raining. " 
     "This makes you lose some of your determination for this trip. Do you 'Go Home' or 'Continue Onward'") 
    GoHomeContinueOnward = input('>') 
    if GoHomeContinueOnward == "Go Home": 
      print("\nYou go home and go to the sleep, game over.") 
      ##Instance of a game over 
    elif GoHomeContinueOnward == "Continue Onward": 
      print("\nFiller") 
elif SwordBow == "Sword": 
    print("\nYou pick up your sturdy sword and prepare to leave. You notice it is raining. This makes you realize your" 
     " sword could rust. Do you 'Stick it under your shirt' or 'Eh keep it sheathed'?") 
    StickitunderyourshirtEhkeepitsheathed = input('>') 
    if StickitunderyourshirtEhkeepitsheathed == "Stick it under your shirt": 
      print("\nFiller") 
      print("\nYou have lost 10HP") 
      ##Here is one of the reasons I want to implement HP 
    elif StickitunderyourshirtEhkeepitsheathed == "Eh keep it sheathed": 
    print("\nFiller") 

Я хочу, чтобы вы могли потерять HP и если вы слишком низко получить игру на таких, как, если HP> 0: печати («Game Over») Я извиняюсь за беспокойство ваше время с этими простыми вопросами, но, как я уже сказал, я очень новичок в python, и это первая полная вещь, которую я пытался кодировать. В конце концов, я хочу, чтобы это было просто приключение, основанное на методе блок-схемы. Я также хочу, чтобы функция перезапустилась после игры. Заранее спасибо за любую помощь, и я только спросить, так что я знаю, как в будущем, чтобы избежать путаницы и т.д.

ответ

0

Добро пожаловать на сайт :)

Первое, что я замечаю это длина ваших имен переменных , StickitunderyourshirtEhkeepitsheathed действительно долго и трудно читать; переименуйте его в нечто короткое, но описательное, возможно, weapon_action и используйте знак подчеркивания для разделения слов.

Чтобы реализовать hp, просто добавьте переменную в начале скрипта с именем hp и присвойте ей значение по умолчанию; например hp = 100. Затем после print("\nYou have lost 10HP") напишите hp -= 10 или hp = hp - 10 (они означают то же самое), чтобы вычесть 10 из hp.

Вы должны ознакомиться с некоторыми учебными пособиями о том, как писать функции, поскольку это то, что вам нужно, чтобы легко перезапустить свою игру. На данный момент ваш скрипт будет выполнен сверху вниз, и нет простого способа вернуться к началу. Если вы поместите все в функцию, например. def main():, def game(): или все, что вы хотите назвать, вы можете просто вызвать эту функцию каждый раз, когда хотите ее повторно запустить.

+1

Благодарим вас за ответ. В какой-то момент я сделал def game(): в начале в какой-то момент, но это создавало странную ошибку с моей первой командой печати, но мне придется попробовать это снова. Я ценю ответ, поскольку я нахожусь в Highschool, все почетные классы, пытаясь научить себя коду, быстрые ответы помогают :) –

+0

@ ZacharyArthur Cool, добро пожаловать. Я также участвую в самообучении и наслаждаюсь всеми бесплатными домашними заданиями, которые я делаю на SO - никогда не думал, что я скажу это: O В любом случае, ввод кода в функции - это путь. Как только ваша игра будет расти по размеру и сложности, она станет запутанной без какой-либо инкапсуляции. Когда проект будет расти еще больше, вы, вероятно, захотите поместить функции в классы, а затем будете делать объектно-ориентированное программирование :) – jDo

Смежные вопросы