所以我做了一段代码,应该用另一个字符串中的字符替换下划线。如果你想知道目的的话,我打算做一个刽子手游戏。
x=0
while [ $x -lt $LengthOfAnswer ]; do
if [ $Answer:$x:1 == $GuessedChar ]; then
Underscores=$( echo $Underscores | sed s/_/${Answer:$x:1}/$((x+1)) )
fi
done
由此产生的结果是,第一次进行猜测时,因此这个循环停止,一切都按预期工作。
然而,在那之后,结果开始呈现出奇怪的模式。
例子:
答案是“abcdef”
开始:“\uu”
猜猜“a”:“a”
猜猜“b”:“a”b
猜猜“c”:“abc”
当然,在那一点上应该是“ABC”
如果有人对这项工作需要做些什么有什么建议,我很乐意听到。如果除了改变我的结构之外别无选择,请告诉我。
最佳答案
这件事要归功于希古罗,还有他的联系;
Hangman Example
额外的一点上下文帮助我解决了这个问题,得到了以下解决方案:
x=0
while [ $x -lt $LengthOfAnswer ]; do
if [ $Answer:$x:1 == $GuessedChar ]; then
Underscores="${Underscores:0:$x}$GuessedChar${Underscores:$((x+1))}"
fi
let "x++"
done