我想了解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可能会以不同的方式处理。 –