做商城网站带宽,个人怎样申请网站,青岛网页设计学校,仿做网站的网站python推理小游戏bagels
bagels是一个推理小游戏#xff0c;你的朋友想到一个随机的、没有重复的3位数字#xff0c;你尝试去猜测它是什么。每次猜测之后#xff0c;朋友就会给出3中类型的线索#xff1a;
Bagels: 你猜测的3个数都不在神秘数字中#xff1b;Pico#x…python推理小游戏bagels
bagels是一个推理小游戏你的朋友想到一个随机的、没有重复的3位数字你尝试去猜测它是什么。每次猜测之后朋友就会给出3中类型的线索
Bagels: 你猜测的3个数都不在神秘数字中Pico你猜测的是神秘数字中的一个数但是位置不对Fermi你猜测的是正确位置上的一个正确的数。
程序流程首先生成一个随机数字然后判断玩家是否用完了猜测次数用完了则玩家失败询问是否再玩一局否则获取玩家的猜测回答正确玩家获胜询问是否再玩一局猜测失败告诉玩家线索增加已猜测的次数。
import random# 获取一个长度为numDigits的字符串该字符串由唯一的随机数字组成
def getSecretNum(numDigits):numbers list(range(10))# 随机修改列表元素的顺序random.shuffle(numbers)secretNum for i in range(numDigits):secretNum str(numbers[i])# 给用户提供关于pico, fermi, bagels的线索
def getClues(guess, secretNum):if guess secretNum:return You got it!clue []for i in range(len(guess)):if guess[i] secretNum[i]:clue.append(Fermi)elif guess[i] in secretNum:clue.append(Pico)if len(clue) 0:return Bagelsclue.sort()# 排序去除掉线索中和顺序相关的额外信息return .join(clue)# 如果num是仅由数字组成的字符串则返回True。否则返回False。
def isOnlyDigits(num):if num :return Falsefor i in num:if i not in 0 1 2 3 4 5 6 7 8 9.split():return Falsereturn True# 是否再玩一次
def playAgain():print(Do you want to play again?(yes or no))return input().lower().startswith(y)NUMDIGITS 3
MAXGUESS 10
print(I am thinking of a %s-digit number. Try to guess what it is.%(NUMDIGITS))
print(Here are some clues:)
print(When I say: That means:)
print( Pico One digit is correct but in the wrong position.)
print( Fermi One digit is correct and in the right position.)
print( Bagels No digit is correct.)
while True:secretNum getSecretNum(NUMDIGITS)print(I have thought up a number. You have %s guesses to get it.%(MAXGUESS))numGuesses 1while numGuesses MAXGUESS:guess while len(guess) ! NUMDIGITS or not isOnlyDigits(guess):print(Guess #%s: %(numGuesses))guess input()clue getClues(guess, secretNum)print(clue)numGuesses 1if guess secretNum:break if numGuesses MAXGUESS:print(You ran out of guesses. The answer was %s.%(secretNum))if not playAgain():break