0

私は宿題をしていて、実用的なハングマン アプリケーションを作成する必要があります。私はそれのほとんどを機能させましたが、何かをしたいのですが、それを行う方法がよくわかりません。

やりたいこと: という名前の文字列があり$string、単語リストからのランダムな単語が含まれています。ハングマンを開始する"*"と、ランダムな単語のすべての文字を表示したいと思います。"*"次に、プレイヤーが推測したときに、真の文字値と連結したいと考えています。

したがって、表示したい単語が「Hello」の"*****"場合、誰かが文字を推測すると"l"、 が表示されます"**ll*"

私が試したこと:

部分文字列の置換 - http://tldp.org/LDP/abs/html/string-manipulation.html

tr (いくつかの形式では、それを正しく使用する方法を本当に理解していませんでした[CHAR*REPEAT].ストリング。

理解を助けていただけますか?

4

2 に答える 2

4

bash のパラメーター展開パターン マッチングは次のようになります。

$ string="hello world"
$ guess=""
$ echo "${string//[^[:space:]$guess]/*}"
***** *****

$ guess+="l"
$ echo "${string//[^[:space:]$guess]/*}"
**ll* ***l*

$ guess+="o"
$ echo "${string//[^[:space:]$guess]/*}"
**llo *o*l*
于 2013-01-11T22:23:21.330 に答える
2

推測された文字と文字列のリストがある場合は、tr推測された文字、スペース、改行以外のすべてを「*」で置き換えるように指示することでマスクできます。

guessed="etaonris"
string="doing a homework assignment"
masked=$(tr -c "\n $guessed" "*" <<< "$string")
echo "$masked"

これにより、 が得られます*oin* a *o*e*or* assi*n*ent

于 2013-01-11T19:02:09.277 に答える