我想了解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"
...
}
我也不理解涉及的語法:here。
在clear_next中,爲什麼需要draw_next ${filled_cell//?/ }
而不是${filled_cell}
? //
意味着什麼?
謝謝!您能否解釋涉及以下內容的語句的語法:在哪裏嘗試分配座標?這似乎是程序中的一個常見元素,我無法用if-else – Enne
@enne和'$ {::}'來解釋它。子。編輯。 Bash手冊的同一頁面。 – ilkkachu
在單獨的進程中運行定時器沒有多大用處,因爲陷阱處理程序在'read'返回之前未被執行。但我承認除了'bash'以外的其他shell可能會以不同的方式處理。 –