40423135 陳冠錡
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 ("總共有", 幾次決勝 - 猜測次數, "次機會,可以猜!")
這個遊戲非常的有趣,一開始會隨機抽一個數字,如果你猜得太小或太大就會跟你提示,直到你猜中為止