40123227猜顏色遊戲 from 40123227 on Vimeo.

import random

產生標準答案

利用 list 數列資料型別建立顏色選項

Red 紅色, White 白色, Yellow 黃色, Green 綠色, Blue 藍色, Purple 紫色, 假設顏色值不會重複

print('''遊戲規則說明: 可選顏色值, \nRed 紅色, White 白色, Yellow 黃色, Green 綠色, \nBlue 藍色, Purple 紫色, \nRBYGBP, \nX 表示位置與顏色都對, O 表示顏色對, 但是位置不對. ''')

顏色選項 = ["R", "W", "Y", "G", "B", "P"] 標準答案 = random.sample(顏色選項, 4)
print (標準答案)

顏色字串 = "" 幾次決勝 = 9 猜測次數 = 0 遊戲進行中 = True

print ("總共有", 幾次決勝 - 猜測次數, "次機會,可以猜!")

for i in range(len(顏色選項)): 顏色字串 += 顏色選項[i]

print (顏色字串)

while 遊戲進行中: 位置顏色都正確 = "" 顏色對位置錯 = "" # 將使用者的輸入轉為大寫英文字母 使用者猜測輸入 = input("請從下列顏色值中選四個, "+顏色字串+": ").upper() 猜測次數 += 1

# 檢驗是否輸入四個顏色字母
if len(使用者猜測輸入) != len(標準答案):
    print ("\n只能猜四個顏色, 請重猜!")
    print ("\n剩下", 幾次決勝 - 猜測次數, "次機會,可以猜: ")
    continue
# 判斷是否重複選擇相同顏色
if len(使用者猜測輸入) > len(set(使用者猜測輸入)):
    print ("\n顏色值不能重複!")
    print ("\n剩下", 幾次決勝 - 猜測次數, "次機會,可以猜: ")
    continue
for i in range(4):
    # 判斷是否從顏色選項輸入
    if 使用者猜測輸入[i] not in 顏色選項:
        print ("\n只能從下列顏色選項中輸入!", 顏色選項)
        print ("\n剩下", 幾次決勝 - 猜測次數, "次機會,可以猜: ")
        continue

if 位置顏色都正確 != "XXXX":
    for i in range(4):
        if 使用者猜測輸入[i] == 標準答案[i]:
            位置顏色都正確 += "X"
        if  使用者猜測輸入[i] != 標準答案[i] and 使用者猜測輸入[i] in 標準答案:
            顏色對位置錯 += "O"
    print (位置顏色都正確 +  顏色對位置錯 + "\n")

if 位置顏色都正確 == "XXXX":
    if 猜測次數 == 1:
        print ("太神奇了, 1 次就猜對!")
    else:
        print ("還不錯... 總共猜了 " + str(猜測次數) + " 次, 終於猜對!")
    遊戲進行中 = False

if 猜測次數>= 1 and 猜測次數 = 幾次決勝:
    print ("沒有猜對! 願賭服輸, 答案顏色值為: " + str(標準答案))  
    遊戲進行中 = False

# 詢問要不要再玩
while 遊戲進行中 == False:
    遊戲結束詢問 = input("\n要不要再玩 (Y/N)?").upper()  
    # 猜測次數歸零
    猜測次數 = 0
    if 遊戲結束詢問 =="N":
        print ("歡迎再回來玩!")
    elif 遊戲結束詢問 == "Y":
        遊戲進行中 = True
        # 重新產生標準答案
        標準答案 = random.sample(顏色選項, 4)     
        #print (標準答案)
        print ("好, 再玩一次...")
        print ("總共有", 幾次決勝 - 猜測次數, "次機會,可以猜!")

Comments

comments powered by Disqus