Scratch スライドパズル課題1

Scratch だい

課題内容

空白に隣接するブロックをクリックすると移動する

解答

解答を表示する

背景に追加

[入れ替え v]を受け取ったとき
[入替元値 v]を([状態 v]の(入替元場所)番目)にする
[入替先値 v]を([状態 v]の(入替先場所)番目)にする
[状態 v]の(入替元場所)番目を(入替先値)で置き換える
[状態 v]の(入替先場所)番目を(入替元値)で置き換える
[移動方向 v]を受け取ったとき
もし<((((クリック)-(1))/(4))の[切り下げ v]::operators)=((((空白)-(1))/(4))の[切り下げ v]::operators)>なら
もし<(クリック)<(空白)>なら
[間隔 v]を(-1)にする
でなければ
[間隔 v]を(1)にする
end
(空白移動 v)を送って待つ
でなければ
もし<(((クリック)-(1))を(4)で割った余り)=(((空白)-(1))を(4)で割った余り)>なら
もし<(クリック)<(空白)>なら
[間隔 v]を(-4)にする
でなければ
[間隔 v]を(4)にする
end
(空白移動 v)を送って待つ
end
end
[空白移動 v]を受け取ったとき
<(クリック)=(空白)>まで繰り返す
[入替元場所 v]を((空白)+(間隔))にする
[入替先場所 v]を(空白)にする
(入れ替え v)を送って待つ
[空白 v]を((空白)+(間隔))にする
end

ブロックに追加

クローンされたとき
ずっと
<<(マウスのポインター v)に触れた>かつ<マウスが押された>>まで待つ
[クリック v]を(識別番号)にする
[空白 v]を([状態 v]中の(16)の場所)にする
(移動方向 v)を送って待つ
(盤面更新 v)を送って待つ
<<<(マウスのポインター v)に触れた>かつ<マウスが押された>>ではない>まで待つ
end

サンプル

sb3ダウンロード