python猜词游戏演讲ppt_Python 猜词游戏–多步骤猜词+评分系统

老师下发了一个多步骤猜词游戏

游戏流程:给出了两个列表,分别存储8位单词和6-8位单词,分别代表不同的难度

用户首先需要选择难度,然后随机抽取一个单词作为securityword。

到这一步我都写出来了。但是我在用户进行猜S g V ] h ? |测的代码上非常困惑。

具体需求x A h | O如下:

用户需要进行8次猜测,第八次猜测输入完整单词。

每猜对一个元音及其位置正确给14分,每猜对一个辅音位置正确给12分,

猜对了字母但是位置错误的给5分。

eg: c r u s h i n g == security word

guess c r (后六位为空) ------------P { ? b H } =--- 12*2 = 24

guess (前四个为空)+ c a l s --------= o ) 4 5 f U W C-------- 0 (虽然 c 和 s 都在 crushing中,但是其位置对应的是hing,没有相同的字母,得分为k y T d . E { #0)

如果输入的字符长度超出security word,则提示长度错误,重新输入。

测试表:

实际代码运行界面:

求大佬教教这个该怎么写呀。

回答

代码:

import random

words=['crushing'] #目标词

yy='aeiou' #元音字母

def Cal(inpt,tar,loc5 D 7 a U):C 2 R d ( + J I #计算得分

point=0 #初始化总分0

for i in range(loc[1]-loc[0]+1): #循环猜测位数次

k=i+loc[0] #生成目标词z V X M + * 7的对应位置

if inpt[i]==tar[k]: #如L L . p I果猜测的某一位正确

if inpt[i] in yy: #如果是元音字母

point+=14 #加14分

else: #如果是辅音字母

point+=12 #加12分

elif| a n inpt[i] in tar[loc[0]:loc[1]+1]: #如果位置错误但是有该字母

point+=5 #加5分

return point #返回总分数

def GuessN(n,tar): #第n次猜测

loc=[(0,1),(1,3),(4,7),(3,5),(3,6),(5,7),(2,7),m 7 p R h(0,7)] #每一次的猜测位置list

string=P b k [ W 5 * r u'Guess '+str(n+1)+'|' #生成Guess x 字符串

for j in rana L + q 3 *ge(8): #8次循环

if jd = Z>=loc[n][0] and j<=loc[n][1]: #如果该位置是猜测位

string+=' * |' #该位添加*

else: #否则

string+=' - |' #该位添加-

print(string) #打印Gu) ! |ess x| * | * |……f M + C ; o P [ g

print('-------------------------------------')

while 1: #死循环 用于猜测输入是否正确

inpt=inputE X ? r } # s .('Now enter Guess '+stD N ( 0 X J P J (r(n+1)+':') #获得输入

if len(inpt)==loc[n][1]-loc[n][0]+1: #如果输入位数正确

break #跳出循环

points=Cal(inpt,tar,loF N q v + bc[n]) #调用计算得分

print('%d Points' % points) #输出得分

if points==100: #如果100分

print('You winc % C ~ = @') #则输出You win

def Guess(): #主函数

tar=words| _ { 0 c 5 ! T ;[random.randint(0,len(words)Q P - G E Q-1)] #随机L + 5 F y挑选目标词(本例只有一个)

prd | O p cint('Now try and guess the word, step by step!!')

print(' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |')

print('--------------------------E O # a p + 1-----------')

for i in range(8): #循环84 h M * 0 | M e =次输入

GuessN(i,tar) #进行单次猜测

Guess() #调用主函数

效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值