我正在使用課程制作劊子手游戲。我想知道如何洗掉該類并將所有內容都運行到主函式中。我把代碼留在這里。每一個反饋都很感激,它真的可以幫助我學習。謝謝你。
class game:
def __init__(user):
user.guesses = 0
user.letters_guessed = ""
user.secret_word = user.secret_word()
user.progress = list("?" * len(user.secret_word))
user.start_game()
def secret_word(user):
while True:
word = input("Please enter word to be guessed\nthat does not contain ? or white space: ")
if " " in word or '?' in word:
continue
else:
return word
def get_guess(user):
while True:
character = input("Please enter your next guess : ")
if len(character) > 1:
print("you can only guess a single character")
continue
else:
return character
def display_guess(user):
return "".join(user.progress) # user_letter_guess
def is_game_over(user):
if (user.guesses >= 7) or (user.secret_word == ''.join(user.progress)):
if user.secret_word == ''.join(user.progress):
print("\nCongratulations you cracked it...")
else:
print("\nSorry game over...")
return True
else:
return False
def update_progress(user, guess):
i = 0
while i < len(user.secret_word):
if guess == user.secret_word[i]:
user.progress[i] = guess
i = 1
else:
i = 1
def start_game(user):
while not user.is_game_over():
user.display_hangman()
print("\n" user.display_guess())
print("So far you have guessed : " user.letters_guessed)
guess = user.get_guess()
if guess in user.secret_word and guess not in user.letters_guessed:
user.letters_guessed = "," guess
user.update_progress(guess)
elif guess not in user.secret_word and guess not in user.letters_guessed:
user.guesses = 1
user.letters_guessed = "," guess
else:
print("you already guessed the character :" guess)
# display hang man graphic
def display_hangman(user):
if user.guesses == 0: #
print(" ")
elif user.guesses == 1:
print(" | ")
print(" 0 ")
print(" ")
print(" ")
print(" ")
elif user.guesses == 2:
print(" | ")
print(" 0 ")
print(" / ")
print(" ")
print(" ")
elif user.guesses == 3:
print(" | ")
print(" 0 ")
print(" /| ")
print(" ")
print(" ")
elif user.guesses == 4:
print(" | ")
print(" 0 ")
print(" /|\ ")
print(" ")
print(" ")
elif user.guesses == 5:
print(" | ")
print(" 0 ")
print(" /|\ ")
print(" / ")
print(" ")
else:
print(" | ")
print(" 0 ")
print(" /|\ ")
print(" / \ ")
print(" ")
print("You failed to guess the secret word: " user.secret_word)
run = game()
我想我必須創建一個 main 函式,并且對于類中的方法,我必須創建獨立的函式。
uj5u.com熱心網友回復:
不知道為什么要在完成所有當前作業之后執行此操作,但類的作業方式是在使用 game() 實體化它們時__init__呼叫它們的函式。這些方法中的變數名“user”應遵循標準做法并稱為“self”。要將成員函式轉換為基本函式,只需洗掉第 1 行 ( class game:),然后從類中的所有代碼中洗掉 4 個空格。然后將成員變數(如guesses)設為全域變數或函式引數(因此更改您的def function(...'s):)。并將代碼 from__init__放入您的 main() 函式中。在代碼底部創建一個新行,如下所示:
def main():
# Insert your variables and function calls here...
if __name__ == "__main__":
main()
然后將您的代碼作為腳本運行,例如$ python your_filename.py.
但是,如果情況是您無法弄清楚課程,那么您已經接近了。您對user變數的使用可能令人困惑,應該再次使用self. 也許您所缺少的只是在創建之后run,您需要開始在主回圈中呼叫成員函式,例如run.start_game()或其他。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528288.html
標籤:Python功能班级
上一篇:R中兩個串列的迭代乘法
