2016-04-12 25 views
0

Oyun oynuyorum ve python için bir kodlama dili olarak çok yeniyim ve şu anda bir ders almıyorum Kendi kendime öğreniyorum. Başlamak için metin tabanlı bir oyun yapıyorum. HP'yi bir faktör olarak uygulamak ve oyun bittiğinde oyunu yeniden başlatmak için bir seçenek sunmak istiyorum. Şimdiye kadar sahip olduğum kod.HP Nasıl Kullanılır ve otomatik olarak oyunu yeniden başlattıktan sonra oyunu yeniden başlatın

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") 

Sana HP kaybetmek isterler ve siz gibi üzerine bir oyun olsun çok düşük alırsanız eğer HP> 0: baskı ("Oyun Bitti") Ben rahatsız için üzgünüm senin Bu basit sorularla zaman geçirdim ama python için çok yeni olduğumu söylediğim gibi bu kodlamayı denediğim ilk şey. Sonunda sadece bir seçim tabanlı akış şeması tarzı metin macera olmasını istiyorum. Ayrıca oyun bittikten sonra özelliğin yeniden başlatılmasını istiyorum.

cevap

0

Hoşgeldin ben fark ilk şey değişken adlarının uzunluğu

siteye :) vb, herhangi bir yardım için şimdiden teşekkür ederiz ve ben sadece gelecekte yığılmayı önlemek için biliyorum bu yüzden sormak . StickitunderyourshirtEhkeepitsheathed gerçekten okunması zor ve uzun; kısa ancak açıklayıcı bir şekilde yeniden adlandırın, belki weapon_action ve kelimeleri ayırmak için bir alt çizgi kullanın.

hp10'u uygulamak için, hp adlı betiğin başlangıcında bir değişken ekleyin ve ona bir varsayılan değer verin; Örneğin. hp = 100. Daha sonra print("\nYou have lost 10HP")'dan sonra hp -= 10 veya hp = hp - 10 yazarak (aynı şeyi) hp 10'dan çıkartın.

Oyunun kolayca yeniden çalıştırılması için ihtiyaç duyacağınız şeyden dolayı, işlevlerin nasıl yazılacağı konusunda bazı eğiticilere göz atmalısınız. Şu anda, komut dosyanız yukarıdan aşağıya doğru yürütülecek ve başa dönmenin kolay bir yolu yok. Her şeyi bir işleve koyarsanız, örn. def main():, def game(): veya ne demek istiyorsanız onu yeniden çalıştırmak istediğiniz her seferinde bu işlevi çağırmanız yeterlidir.

+1

Ok Yanıtınız için teşekkür ederiz. Bir noktada def oyununu() yaptım: bir noktada başlangıçta ama ilk baskı komutumla garip bir hata yaratıyordum ama yine de bunu denemeliyim. Ben kendimi kod öğretmeye çalışırken Highschool tüm onur sınıfta olduğu gibi cevabı takdir, hızlı cevaplar yardımcı olur :) –

+0

@ZacharyArthur Cool, rica ederim. Ben de kendi kendime öğrenen biriyim ve SO üzerinde yapacağım tüm ücretsiz ödevlerin tadını çıkarın - asla şunu söyleyemedim: O Neyse, kodunuzu fonksiyonlara sokmak yoldur. Oyununuz boyut ve karmaşıklıkta büyüdükçe, bir çeşit kapsülleme olmadan kafa karıştırıcı hale gelecektir. Proje daha da büyüdüğünde, muhtemelen fonksiyonları sınıflara koymak isteyeceksiniz ve sonra nesne yönelimli programlama yapıyorsunuz :) – jDo