テトリスのthisの実装を理解しようとしています。テトリスのこの実装を理解する助けが必要
私にはいくつか質問があります。 update_score機能で
、
if ((score > LEVEL_UP * level)) ; then # if level should be increased
((level++)) # increment level
pkill -SIGUSR1 -f "/bin/bash $0"
遅延を調整するために、すべての独立したプロセスを持つの使用は何ですか?なぜSIGUSR1
とSIGUSR2
を使用するのですか?
draw_piece関数では、なぜ8を掛けますか?私は変換がどのように行われているのか、ここでは「回転」の概念がどのように実装されているのか理解していません。
for ((i = 0; i < 8; i += 2)) {
# relative coordinates are retrieved based on orientation and added to absolute coordinates
((x = $1 + ${piece[$3]:$((i + $4 * 8 + 1)):1} * 2))
((y = $2 + ${piece[$3]:$((i + $4 * 8)):1}))
xyprint $x $y "$5"
...
}
ここでは、以下の構文について理解していません。
clear_nextでは、${filled_cell}
の代わりにdraw_next ${filled_cell//?/ }
が必要なのはなぜですか? //
は何を表していますか?
ありがとう!あなたは文章の文法を説明することができますか?それはどこに座標を割り当てようとしていますか?これはプログラムの共通要素であると思われ、if-elseの点で解釈することはできません – Enne
@Enne、 '$ {::}'?部分文字列。編集されました。 Bashマニュアルの同じページ。 – ilkkachu
別のプロセスでタイマーを実行することはあまり役に立ちません。なぜなら、トラップハンドラは 'read'が返る前に実行されないからです。しかし、私は 'bash'以外のシェルがそれを別々に扱うかもしれないと認めます。 –