根据玩家的尝试次数更新分数

时间:2019-01-07 15:27:49

标签: bash shell

早上好,当我早些时候从事这个项目时,我有点面对这个难题,它像这样: 我需要更改此游戏中玩家的得分,这取决于该玩家做出的尝试,如果他猜想在第一次尝试中写的话,他会得到3分,第二次获得2分,而睫毛练习则获得1分,这样就可以清楚地看到这一点。我的代码是这样的:

#!/bin/bash

tentative=3
cpt=0
score=0

echo "Votre nombre de tentative est 3"
cut -d: -f3 Facile.txt       
MotCorrect=$(cut -d: -f2 Facile.txt )        
while [ $cpt -lt 3 ] 
                do         
                        echo "QuiSuisJe?"
                        read QuiSuisJe
                    `enter code here`cpt=`expr $cpt + 1`

                    if [ $QuiSuisJe == $MotCorrect ]                       
                        then
                        echo "Correct"
                        cptScore=`expr $cptScore+3`
                         score=$((score+3))
                        echo "$score"
                break                 
                    else
                     tentative=`expr $tentative - $cpt`
                    echo "Votre reponse n'est pas Correct."
                    fi


            done 

1 个答案:

答案 0 :(得分:0)

您描述的函数“尝试次数”->“得分”是score(tries) = 4 - tries

tries    score    4 - tries
  1        3          3  
  2        2          2
  3        1          1

您当前的代码保持$cpt变量中的尝试次数,因此我将从该变量中得出分数:

score=$(( 4 - cpt ))

作为旁注,似乎您在滥用$tentative变量。据我所知,它应该描述最大尝试次数,在这种情况下:

  • 不应在您的else块中对其进行更新;不管您是否失败,最大尝试次数都将保持不变(这是当前尝试次数的变化,但是您已经使用$cpt在if / else之外进行了处理)
  • 它应在两个地方使用:第一个echo输出用户尝试了多少次,以及在while的条件下测试用户是否已达到最大尝试次数。尝试。