Hangman--遊戲簡介--> 百度百科
打印Hangman
def printHangman(N):
# 第一行
print("\t____")
# 第二行
print("\t| |")
# 第三行
print("\t| ", end="")
if N > 0:
# 第三行 第一筆
print("O")
else:
# 第三行 換行
print()
# 第四行
print("\t| ", end="")
if N > 2:
# 第四行 第三筆
print("/", end="")
else:
# 第四行 換行
print(" ", end="")
if N > 1:
# 第四行 第二筆
print("|", end="")
else:
# 第四行 換行
print(" ", end="")
if N > 3:
# 第四行 第四筆
print("\\")
else:
# 第四行 換行
print(" ")
# 第五行
print("\t| ", end="")
if N > 4:
# 第五行 第五筆
print("/ ", end="")
else:
# 第五行 換行
print(" ", end="")
if N > 5:
# 第五行 第六筆(畫完結束)
print("\\")
else:
# 第五行 換行
print(" ")
# 第六行
print("\t|")
# 第七行
print("-------------")
# printHangman(0)
# printHangman(1)
# printHangman(2)
# printHangman(3)
# printHangman(4)
# printHangman(5)
# printHangman(6)
其它
# 生成一個僅包含星號的長度相同的字符串
def hide(s):
return '*' * len(s)
# 計算星號
def hide_num(secret):
num = 0
for i in secret:
if i == "*":
num += 1
return num
# 記錄猜想錯誤的詞
def record_wrong(wrong, wrong_in):
wrong = wrong + wrong_in
return wrong
# 打印已經猜錯的詞
def print_wrong(wrong):
print("You've entered (wrong):", end=' ')
for i in wrong:
if i != wrong[-1]:
print(i, end=',')
else:
print(i)
# 將猜對的詞在對應位置顯示出來
def show_correct(word, secret, correct_in):
index = 0
temp = ''
for i in word:
# 將每一個詞和輸入的進行匹配
if i == correct_in:
temp = temp + correct_in
# 將已經猜對的詞繼續顯示
elif secret[index] != '*':
temp = temp + secret[index]
# 沒猜中的繼續以 * 表示
else:
temp = temp + '*'
index += 1
return temp
開始遊戲
# 給定一個須要猜想的單詞開始遊戲
def start_game(word):
# 已經猜錯的詞
wrong = ''
# 將未猜出的以 * 顯示
secret = hide(word)
# 記錄還剩多少個 * ,若是爲0,則爲所有猜中
secret_num = hide_num(secret)
# 猜錯的步數,6步畫完小人,表示失敗
hang = 0
# 6步以內並且還有 * 未猜出
while secret_num > 0 and hang < 7:
print('You word looks like this:')
print(secret)
printHangman(hang)
if hang < 6:
print('Choose a letter:', end='')
char_in = input()
# 判斷猜的詞是否在單詞中
if char_in in word:
secret = show_correct(word,secret, char_in)
else:
wrong = record_wrong(wrong, char_in)
hang = hang + 1
secret_num = hide_num(secret)
# 表明得分,假如abbc,猜b,得兩分
score = len(word) - secret_num
print('Your points so far:', score)
if wrong != '':
print_wrong(wrong)
print()
else:
# 小人畫完
break
# 勝利
if secret_num == 0:
print('WIN')
print('Word:', word)
# 失敗
else:
print('Defeat')
print('Word:', word)
結果