2015FALL 40423245 CPB 作業

2015 計算機程式 作業十二

以下為作業十二內容

利用 iframe 嵌入投影片:

作業十二投影片

Jupyter notebook 檔案內容:

猜顏色遊戲

In [ ]:
import random
# 產生標準答案
# 利用list數列資料型別建立顏色選項
# Red 紅色, White 白色, Yellow 黃色, Green 綠色, Blue 藍色, Purple 紫色, 假設顏色值不會重複
print('''遊戲規則說明: 可選顏色值, \nRed 紅色 , White 白色, Yellow 黃色, Green 綠色, Blue 藍色, Purple 紫色,  \nRWYGBP, \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 猜測次數 < 幾次決勝 and 位置顏色都正確 != "XXXX":
        print("剩下", 幾次決勝 - 猜測次數, "次機會, 可以再猜: ")
    elif 猜測次數 >= 幾次決勝:
        print("沒有猜對! 答案顏色值為: " +str(標準答案))
        遊戲進行中 = False

    # 詢問要不要再玩
    while 遊戲進行中 == False:
        遊戲結束詢問 = input("\n要不要再玩 (Y/N)?").upper()
        # 猜測次數歸零
        猜測次數 = 0
        if 遊戲結束詢問 == "N":
            print("歡迎再回來玩!")
        elif 遊戲結束詢問 == "Y":
            遊戲進行中 = True
            # 重新產生標準答案
            標準答案 = random.sample(顏色選項, 4)
            # print (標準答案)
            print("好, 在玩一次!")
            print("總共有 ", 幾次決勝-猜測次數, "次機會, 可以猜!")
遊戲規則說明: 可選顏色值, 
Red 紅色 , White 白色, Yellow 黃色, Green 綠色, Blue 藍色, Purple 紫色,  
RWYGBP, 
X  表示顏色與位置都對, O 表示顏色對, 但是位置不對.

['B', 'R', 'G', 'W']
總共有 9 次機會,可以猜!
請從下列顏色值中選四個, RWYGBP: RWYG
OOO

剩下 8 次機會, 可以再猜: 
請從下列顏色值中選四個, RWYGBP: RWYB
OOO

剩下 7 次機會, 可以再猜: 
請從下列顏色值中選四個, RWYGBP: RWYP
OO

剩下 6 次機會, 可以再猜: 
請從下列顏色值中選四個, RWYGBP: WYGB
XOO

剩下 5 次機會, 可以再猜: 
請從下列顏色值中選四個, RWYGBP: YGBR
OOO

剩下 4 次機會, 可以再猜: 
請從下列顏色值中選四個, RWYGBP: WGBR
OOOO

剩下 3 次機會, 可以再猜: 
請從下列顏色值中選四個, RWYGBP: BRGW
XXXX

還不錯...總共猜了 7次, 終於猜對!
In [ ]:
 

Vimeo 影片嵌入(直接從 Vimeo 影片上的 Share 複製 html 碼):

40423245 hw12 from 40423245-1 on Vimeo.

Comments