最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

賽爾號(hào):哀目黑子日記本破譯密碼小游戲的程序分享

2020-03-21 21:21 作者:摸魚的橙汁  | 我要投稿

賽爾號(hào)“哀目黑子的日記本】破譯密碼”小游戲的程序分享

作者:橙汁


游戲背景

本周(2020.03.20)賽爾號(hào)更新了一個(gè)非常有意思的解密小游戲,“【哀目黑子的日記本】破譯密碼”。

游戲要求我們完成四位數(shù)字(顏色)解密小游戲,以便了解異世界的秘密,獲得養(yǎng)成道具。

“破譯密碼”小游戲的游戲規(guī)則如下所示。簡(jiǎn)單來說就是選四個(gè)顏色,猜密碼。

單機(jī)程序

我覺得這個(gè)小游戲挺好玩的,所以就把它做成單機(jī)版的小游戲了,無聊的時(shí)候可以隨時(shí)隨地玩。

這是電腦Windows的版本。(界面只是用了登錄器的外觀,核心只是小游戲,不是游戲網(wǎng)頁。)

這是手機(jī)Android的版本。(安卓手機(jī)安裝程序不需要上架應(yīng)用商店,比較方便;但是蘋果手機(jī)我就愛莫能助了,即使做出來也無法安裝。)

這兩個(gè)單機(jī)版小游戲的程序文件我已經(jīng)分享到QQ群與百度網(wǎng)盤了,下載途徑待會(huì)兒請(qǐng)見置頂評(píng)論吧。


解密程序

“密碼破譯”這種事情,交給計(jì)算機(jī)才是最方便的,所以我又寫了一個(gè)解密程序,幫助玩家“解密”小游戲。

?玩家只需要根據(jù)提示,輸入鎖孔角數(shù)與每次提示的綠燈個(gè)數(shù),程序就可以幫忙給出答案。

這小游戲的解密程序文件我已經(jīng)分享到QQ群與百度網(wǎng)盤了,下載途徑待會(huì)兒請(qǐng)見置頂評(píng)論吧。


程序代碼

解密程序是使用Python寫的,在這里我就獻(xiàn)丑,分享一下源碼吧。

大體的設(shè)計(jì)思路是這樣的:

  1. 找出每個(gè)顏色的數(shù)量。

  2. 將顏色的數(shù)量組合進(jìn)行分類。

  3. 選取數(shù)量最少的顏色,進(jìn)行逐位排查,這里為了縮短步數(shù),依次使用兩種顏色,最少的顏色選1個(gè),另一種顏色選多個(gè)。

  4. 整理分析情況,得出最終結(jié)果。

程序代碼如下所示。


def reLoad():

? ? global colorNum

? ? colorNum = [0,0,0,0,0]

? ? global colorName

? ? colorName = ['黃','藍(lán)','綠','紅','紫']

? ? print('')


def str2num(s:str):

? ? s = s.replace(' ','')

? ? try:

? ? ? ?num = float(s)

? ? except:

? ? ? ? try:

? ? ? ? ? ? num = float(eval(s))

? ? ? ? except:

? ? ? ? ? ? num = 0.0

? ? return num


def getListSum(li):

? ? sum = 0

? ? for i in li:

? ? ? ? sum += i

? ? return sum

? ??

def getNumType():

? ? if 4 in colorNum:

? ? ? ? return 0

? ? if 3 in colorNum:

? ? ? ? return 1

? ? if colorNum.count(2) == 2:

? ? ? ? return 2

? ? if 1 in colorNum and 2 in colorNum:

? ? ? ?return 3

? ? return 4


def Do():

? ? NumType = getNumType()

? ? finish = False

? ? if NumType == 0:

? ? ? ? for i in range(5):

? ? ? ? ? ? if colorNum[i] == 4:

? ? ? ? ? ? ? ? print('【答案】' + colorName[i] + ' ' + colorName[i] + ' ' + colorName[i] + ' ' + colorName[i])

? ? ? ? ? ? ? ? finish =?True

? ? ? ? ? ? ? ? break

? ? elif NumType == 1:

? ? ? ? big = -1

? ? ? ? small = -1

? ? ? ? for i in range(5):

? ? ? ? ? ? if colorNum[i] == 3:

? ? ? ? ? ? ? ? big = i

? ? ? ? ? ? elif colorNum[i] == 1:

? ? ? ? ? ? ? ? small = i

? ? ? ? for i in range(3):

? ? ? ? ? ? check =?False

? ? ? ? ? ? guess = [colorName[big],colorName[big],colorName[big],colorName[big]]

? ? ? ? ? ? guess[i] = colorName[small]

? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? while not(check):

? ? ? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? ? ? if green == 2:

? ? ? ? ? ? ? ? ? ? finish = False

? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? elif green == 4:

? ? ? ? ? ? ? ? ? ? finish = True

? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? ? ? print('【答案】' + guess)

? ? ? ? ? ? ? ? ? ? break

? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? if finish == False:

? ? ? ? ? ? guess = [colorName[big],colorName[big],colorName[big],colorName[big]]

? ? ? ? ? ? guess[3] = colorName[small]

? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? print('【答案】' + guess)

? ? elif NumType == 2:

? ? ? ? A = -1

? ? ? ? B = -1

? ? ? ? for i in range(5):

? ? ? ? ? ? if colorNum[i] == 2:

? ? ? ? ? ? ? ? if A < 0:

? ? ? ? ? ? ? ? ? ? A = i

? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? B = i

? ? ? ? check0 = False

? ? ? ? while not check0:

? ? ? ? ? ? isB = [0,0,0,0]

? ? ? ? ? ? for i in range(3):

? ? ? ? ? ? ? ? check = False

? ? ? ? ? ? ? ? guess = [colorName[A],colorName[A],colorName[A],colorName[A]]

? ? ? ? ? ? ? ? guess[i] = colorName[B]

? ? ? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? ? ? while not(check):

? ? ? ? ? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? ? ? ? ? if green == 3:

? ? ? ? ? ? ? ? ? ? ? ? isB[i] = 1

? ? ? ? ? ? ? ? ? ? ? ? finish = False

? ? ? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? ? ? elif green == 1:

? ? ? ? ? ? ? ? ? ? ? ? isB[i] = 0

? ? ? ? ? ? ? ? ? ? ? ? finish = False

? ? ? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? ? ? sum = getListSum(isB)

? ? ? ? ? ? if sum == 1:

? ? ? ? ? ? ? ? isB[3] = 1

? ? ? ? ? ? ? ? check0 = True

? ? ? ? ? ? elif sum == 2:

? ? ? ? ? ? ? ? check0 =?True

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? guess = ''

? ? ? ? for i in range(4):

? ? ? ? ? ? if isB[i] == 1:

? ? ? ? ? ? ? ? guess += colorName[B] + ' '

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? guess += colorName[A] + ' '

? ? ? ? finish = True

? ? ? ? print('【答案】' + guess)

? ? elif NumType == 3:

? ? ? ? big = -1

? ? ? ? sml1 = -1

? ? ? ? sml2 = -1

? ? ? ? for i in range(5):

? ? ? ? ? ? if colorNum[i] == 2:

? ? ? ? ? ? ? ? big = i

? ? ? ? ? ? elif colorNum[i] == 1:

? ? ? ? ? ? ? ? if sml1 < 0:

? ? ? ? ? ? ? ? ? ? sml1 = i

? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? sml2 = i

? ? ? ? check0 = False

? ? ? ? while not check0:

? ? ? ? ? ? arr = []

? ? ? ? ? ? greens = []

? ? ? ? ? ? for i in range(3):

? ? ? ? ? ? ? ? check = False

? ? ? ? ? ? ? ? guess = [colorName[big],colorName[big],colorName[big],colorName[big]]

? ? ? ? ? ? ? ? guess[i] = colorName[sml1]

? ? ? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? ? ? while not check:

? ? ? ? ? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? ? ? ? ? if green == 1:

? ? ? ? ? ? ? ? ? ? ? ? arr.append(big)

? ? ? ? ? ? ? ? ? ? ? ? greens.append(green)

? ? ? ? ? ? ? ? ? ? ? ? finish = False

? ? ? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? ? ? elif green == 2:

? ? ? ? ? ? ? ? ? ? ? ? arr.append(sml2)

? ? ? ? ? ? ? ? ? ? ? ? greens.append(green)

? ? ? ? ? ? ? ? ? ? ? ? finish = False

? ? ? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? ? ? elif green == 3:

? ? ? ? ? ? ? ? ? ? ? ? arr.append(sml1)

? ? ? ? ? ? ? ? ? ? ? ? greens.append(green)

? ? ? ? ? ? ? ? ? ? ? ? finish = False

? ? ? ? ? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? ? ? if getListSum(greens) >?3:

? ? ? ? ? ? ? ? check0 = True

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? if?(sml1?in?arr?or?sml2?in?arr) and arr.count(big) < 2:

? ? ? ? ? ? arr.append(big)

? ? ? ? else:

? ? ? ? ? ? if sml1 in arr:

? ? ? ? ? ? ? ? arr.append(sml2)

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? arr.append(sml1)

? ? ? ? guess = colorName[arr[0]] + ' ' + colorName[arr[1]] + ' ' + colorName[arr[2]] + ' ' + colorName[arr[3]]

? ? ? ? finish = True

? ? ? ? print('【答案】'+guess)

? ? else:

? ? ? ? A = -1

? ? ? ? B = -1

? ? ? ? C = -1

? ? ? ? D = -1

? ? ? ? for i in range(5):

? ? ? ? ? ? if colorNum[i] == 1:

? ? ? ? ? ? ? ? if A < 0:

? ? ? ? ? ? ? ? ? ? A = i

? ? ? ? ? ? ? ? elif B < 0:

? ? ? ? ? ? ? ? ? ? B = i

? ? ? ? ? ? ? ? elif C < 0:

? ? ? ? ? ? ? ? ? ? C = i

? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? D = i

? ? ? ? greens = []

? ? ? ? arr = []

? ? ? ? check = False

? ? ? ? while not check:

? ? ? ? ? ? guess = [colorName[B],colorName[A],colorName[A],colorName[A]]

? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? if green < 3:

? ? ? ? ? ? ? ? greens.append(green)

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? check = False

? ? ? ? while not check:

? ? ? ? ? ? guess = [colorName[C],colorName[A],colorName[A],colorName[A]]

? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? if green < 3 and greens[0] + green < 4:

? ? ? ? ? ? ? ? greens.append(green)

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? temp = []

? ? ? ? if greens[0] == 0 and greens[1] == 0:

? ? ? ? ? ? arr.append(A)

? ? ? ? ? ? temp = [A,C,B,B]

? ? ? ? ? ? tmp = D

? ? ? ? elif greens[0] ==?2:

? ? ? ? ? ? arr.append(B)

? ? ? ? ? ? temp = [B,C,A,A]

? ? ? ? ? ? tmp = D

? ? ? ? elif greens[1] == 2:

? ? ? ? ? ? arr.append(C)

? ? ? ? ? ? temp = [C,B,A,A]

? ? ? ? ? ? tmp = D

? ? ? ? else:

? ? ? ? ? ? arr.append(D)

? ? ? ? ? ? temp = [D,B,A,A]

? ? ? ? ? ? tmp = C

? ? ? ? check = False

? ? ? ? while not check:

? ? ? ? ? ? guess = [colorName[temp[0]],colorName[temp[1]],colorName[temp[2]],colorName[temp[3]]]

? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? if green == 2:

? ? ? ? ? ? ? ? arr.append(tmp)

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? elif green == 3:

? ? ? ? ? ? ? ? arr.append(temp[1])

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? elif green == 1:

? ? ? ? ? ? ? ? arr.append(temp[2])

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? temp = [arr[0],arr[1]]

? ? ? ? for i in range(5):

? ? ? ? ? ? if i not in temp?and colorNum[i] == 1:

? ? ? ? ? ? ? ? temp.append(i)

? ? ? ? check = False

? ? ? ? while not check:

? ? ? ? ? ? guess = [colorName[temp[0]],colorName[temp[1]],colorName[temp[2]],colorName[temp[3]]]

? ? ? ? ? ? guess = ' '.join(guess)

? ? ? ? ? ? print('猜:' + guess)

? ? ? ? ? ? green = int(str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):')))

? ? ? ? ? ? if green == 2:

? ? ? ? ? ? ? ? arr.append(temp[3])

? ? ? ? ? ? ? ? arr.append(temp[2])

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? elif green == 4:

? ? ? ? ? ? ? ? arr.append(temp[2])

? ? ? ? ? ? ? ? arr.append(temp[3])

? ? ? ? ? ? ? ? check = True

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新輸入。')

? ? ? ? guess = colorName[arr[0]] + ' ' + colorName[arr[1]] + ' ' + colorName[arr[2]] + ' ' + colorName[arr[3]]

? ? ? ? finish = True

? ? ? ? print('【答案】'+guess)


print('本程序?yàn)橘悹柼?hào)《【哀目黑子日記本】破譯密碼》小游戲的解密程序。')

print('作者:橙汁')

print('使用方法:根據(jù)程序的提示進(jìn)行選取猜測(cè),并輸入綠燈個(gè)數(shù)。')

print('\n')

while True:

? ? reLoad()

? ??check = False

? ? while not check:

? ? ? ? n = int(str2num(input('請(qǐng)輸入鎖孔角的個(gè)數(shù):')))

? ? ? ? if n > 2 and n < 6:

? ? ? ? ? ? check = True

? ? ? ? else:

? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新開始!')

? ? i = 0

? ? while?i <?5:

? ? ? ? print('猜:' + colorName[i] + ' ' + colorName[i] + ' ' + colorName[i] + ' ' + colorName[i])

? ? ? ? colorNum[i] = str2num(input('請(qǐng)輸入綠燈個(gè)數(shù):'))

? ? ? ? colorNum[i] = int(colorNum[i])

? ? ? ? sum = getListSum(colorNum)

? ? ? ? if sum > 4:

? ? ? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新開始!')

? ? ? ? ? ? i = -1

? ? ? ? elif sum == 4:

? ? ? ? ? ? break

? ? ? ? elif i == n - 2:

? ? ? ? ? ? colorNum[i + 1] = 4 - sum

? ? ? ? ? ? break

? ?? ? ?i += 1

? ? sum = getListSum(colorNum)

? ? if sum < 4:

? ? ? ? print('輸入錯(cuò)誤,請(qǐng)重新開始!')

? ? else:

? ? ? ?Do()



(作者橙汁,文章書寫不易,轉(zhuǎn)載或引用請(qǐng)注明出處,謝謝。)


賽爾號(hào):哀目黑子日記本破譯密碼小游戲的程序分享的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
荆州市| 新竹市| 沂水县| 永善县| 工布江达县| 镇坪县| 潼关县| 鹤庆县| 乌兰浩特市| 宜都市| 丹寨县| 莆田市| 渝北区| 随州市| 鄂托克旗| 广昌县| 双鸭山市| 封丘县| 屯昌县| 凌云县| 枣阳市| 垫江县| 奈曼旗| 哈巴河县| 温泉县| 普兰县| 瑞安市| 宁德市| 陈巴尔虎旗| 益阳市| 连云港市| 化德县| 堆龙德庆县| 荔浦县| 莲花县| 紫云| 宜州市| 东宁县| 桐梓县| 新营市| 松滋市|