根据我之前写的程序修改
修改您以前的程序。在此阶段,添加额外的需求,并更新以前的需求。您的程序必须确定用户是否正确地猜到了隐藏的代码。如果猜对了代码,程序应该通过显示棋盘完成这一回合,然后显示消息“你赢了!”然后终止。如果用户玩了全部10回合,但没有猜对,那么程序将显示“You lose!”,然后终止。此外,应该删除目标的显示,因为游戏的所有功能都已完成。
新需求
当猜对时,游戏结束。系统显示“You Win!”
移除10圈后的“Done”字样。
移除目标的显示。
显示格式
下面的例子显示了正在进行的游戏中的一个回合,说明了猜对后的显示。
all_guess=[]
hidden_code="rroy"
kvChrCount={}
for i in hidden_code:
kvChrCount[i]=kvChrCount.get(i,0)+1
def main():
display_board()
guess_loop()
def guess_loop():
character=['r','o','y','g','b','v']
turn=1
while turn<=10:
guess=input(f'{turn}(roygbv):')
if len(guess)==4 :
all_guess.append(guess+'||'+getMask(guess))
turn+=1
display_board()
if guess==hidden_code:
print('You win!')
break
if turn>10:
print('You lose!')
def getMask(s) :
num=0
kv={}
for i in s:
kv[i]=kv.get(i,0)+1
if i in hidden_code and kv[i]<=kvChrCount[i]:
num+=1
mask=""
for i in range(0,4):
if i<num:
if hidden_code[i]==s[i]:
mask+="B"
else:
mask+="W"
else:
mask+="."
return mask
def display_board():
print('----------')
print('Code||Mark')
l=len(all_guess)
for i in range(0,10):
if i<l:
print(f'{all_guess[i]}')
else:
print('....||....')
print('----------')
main()
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!