提供: Japanese Scratch-Wiki

(調べるブロック)
(デフォルトソートの整備(Botによる自動編集)代用ブロック一覧 --> たいようふろつくいちらん)
 
(8人の利用者による、間の48版が非表示)
1行目: 1行目:
この記事は、[[ブロック]]を使わずにその機能を再現する[[スクリプト]]の'''代用ブロック一覧'''である。 彼らは、どのようにブロックが動作するかを理解し、別のプログラミング言語でブロックを再作成するために使用することができる。
+
{{ひらがなヘッダ}}この記事は、[[ブロック]]を使わずにその機能を再現する[[スクリプト]]の'''代用ブロック一覧'''である。 これらは、どのようにブロックが動作するかを理解し、別のプログラミング言語でブロックを再作成するために使用することができる。
  
  
==[[イベントブロック]]==
+
== 目次 ==
{| border="1" width="100%"
+
{{注意|ページによっては重いものがあります。スマートフォンなどの一部のブラウザでは読み込みきれない可能性があります。}}
! align="center" | ブロック
+
=== 現行バージョンに含まれるブロックの代用ブロック ===
! align="center" | 回避策
 
|-
 
||[[緑の旗がクリックされたとき (ブロック)|<sb>@ がクリックされたとき</sb>]]
 
| <scratchblocks>
 
[Scratch-StartClicked v] を受け取ったとき
 
. . .
 
</scratchblocks>
 
{{メモ|[[Scratch 1.x]]のオフラインでしか動作しません}}
 
<scratchblocks>
 
[タイマー v] > (-1) のとき //これは停止できないブロックなので、緑の旗をクリックする必要はありません
 
もし <<((マウスのy座標) = [180]) かつ <マウスが押された>> または <(clicked) = [0]>> なら
 
[clicked v] を [1] にする
 
. . .
 
</scratchblocks>
 
|-
 
||[[() キーが押されたとき (ブロック)|<sb>[スペース v] キーが押されたとき</sb>]]
 
|<scratchblocks>[タイマー v] > (-1) のとき //これは停止できないブロックなので、緑の旗をクリックする必要はありません
 
ずっと
 
<[スペース v] キーが押された>まで待つ
 
. . .</scratchblocks>
 
|-
 
||[[このスプライトがクリックされたとき (ブロック)|<sb>このスプライトがクリックされたとき</sb>]]
 
|<scratchblocks>
 
[タイマー v] > (-1) のとき //これは停止できないブロックなので、緑の旗をクリックする必要はありません
 
ずっと
 
  <<[マウスのポインター v] に触れた> かつ <マウスが押された>> まで待つ//これは正確な回避策ではありません。まず、スプライトに触れずにマウスを押したまま、マウスを押したままスプライトに移動させることができるからです。 真のブロックはアクティブになりませんが、これでは有効になります。
 
  . . .
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[タイマー v] > (-1) のとき //これは停止できないブロックなので、緑の旗をクリックする必要はありません
 
ずっと
 
もし <<マウスが押された> かつ <<[マウスのポインター v] に触れた>ではない>> なら
 
[down? v] を [1] にする
 
<<マウスが押された>ではない> まで待つ
 
[down? v] を [0] にする
 
end
 
end//これにより、マウスを押したままスプライトに移動すると、スクリプトがアクティブにならないようになります。
 
  
[タイマー v] > (-1) のとき //これは停止できないブロックなので、緑の旗をクリックする必要はありません
+
*[[イベントブロックの代用ブロック]]
ずっと
+
*[[制御ブロックの代用ブロック]]
もし <<[マウスのポインター v] に触れた> かつ <<マウスが押された> かつ <(down) = [0]>>> なら
+
*[[動きブロックの代用ブロック]]
. . .
+
*[[モーターブロックの代用ブロック]]
end
+
*[[見た目ブロックの代用ブロック]]
</scratchblocks>
+
*[[音ブロックの代用ブロック]]
 +
*[[演算ブロックの代用ブロック]]
 +
*[[ペンブロックの代用ブロック]]
 +
*[[調べるブロックの代用ブロック]]
 +
*[[PicoBoardブロックの代用ブロック]]
 +
*[[データブロックの代用ブロック]]
  
|-
+
=== 現行バージョンに無いブロックの代用ブロック===
||[[() > () のとき (ブロック)|<sb>[音量 v] > (10) のとき</sb>]]
+
「廃止されたブロック」などからこちらに来られた方は以下リンクからお選びください。
|<scratchblocks>
+
*[[削除されたブロックの代用ブロック]]
@ がクリックされたとき //() > () のときブロックが回避したいブロックであるため、() > () のときブロックを使用して緑のフラグを回避することはできません
+
*[[実験ブロックの代用ブロック]]
ずっと
+
*[[存在しないブロックの代用ブロック]]
  <(音量) > [10]> まで待つ
 
  . . .
 
</scratchblocks>
 
|-
 
||[[() を送る (ブロック)|<sb>[message v] を送る</sb>]]
 
|<scratchblocks>
 
@ がクリックされたとき
 
[broadcasted? v] を [0] にする
 
. . .
 
[broadcasted? v] を [1] にする
 
  
@ がクリックされたとき
+
[[Category:ブロック]]
ずっと
+
[[Category:一覧]]
<(broadcasted?) = [1]> まで待つ
+
[[Category:代用ブロック]]
. . .
+
[[en:List of Block Workarounds]]{{デフォルトソート:たいようふろつくいちらん}}
[broadcasted? v] を [0] にする
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[broadcast v] を送って待つ
 
[broadcast v] を受け取ったとき
 
. . . // 受信ブロックに加えて、メッセージの後に来るものは何でも
 
</scratchblocks>
 
|-
 
||[[() を送って待つ (ブロック)|<sb>[メッセージ v] を送って待つ</sb>]]
 
|<scratchblocks>
 
@ がクリックされたとき
 
[broadcasted? v] を [0] にする
 
[wait v] を [0] にする
 
. . .
 
[broadcasted? v] を [1] にする
 
[wait v] を [1] にする
 
<(wait) = [0]> まで待つ
 
. . .
 
 
 
@ がクリックされたとき
 
ずっと
 
<(broadcasted?) = [1]> まで待つ
 
. . .
 
[broadcasted? v] を [0] にする
 
[wait v] を [0] にする
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[wait v] を [3] にする //特定のメッセージを受け取るブロックの数
 
[broadcast v] を送る
 
[broadcast v] を受け取ったとき
 
. . .
 
[wait v] を (-1) ずつ変える //"スクリプトを止める"ブロックの前に必ずこのブロックを置いてください!
 
</scratchblocks>
 
|}
 
 
 
==[[制御ブロック]]==
 
{| border="1" width="100%"
 
! align="center" | ブロック
 
! align="center" | 回避策
 
|-
 
||[[()_秒待つ_(ブロック)|<sb>(1)秒待つ</sb>]]
 
|<scratchblocks>
 
(((テンポ) / (60)) * (1))拍休む
 
</scratchblocks>
 
または
 
<scratchblocks>
 
タイマーをリセット
 
<<(タイマー) \< [1]> ではない> まで待つ
 
// もし他のスクリプトでタイマーを使っている場合、それらがおかしくなるかもしれません。</scratchblocks>
 
|-
 
||[[ずっと (ブロック)|<sb>ずっと</sb>]]
 
|<scratchblocks><. . .>まで繰り返す //ここにはブロックを入れないか、あるいは絶対falseになるブロックを入れる。.
 
. . .
 
end</scratchblocks>
 
または
 
<scratchblocks>
 
([10 ^ v] \( (309) \) )回繰り返す
 
. . .
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
((1)/(0))回繰り返す // オフラインエディターではエラーになります。
 
...
 
</scratchblocks>
 
|-
 
||[[()_回繰り返す_(ブロック)|<sb>(10)回繰り返す</sb>]]
 
|<scratchblocks>
 
[カウンター v] を [0] にする
 
<(カウンター) = [10]> まで繰り返す
 
[カウンター v] を (1) ずつ変える
 
. . .
 
end
 
</scratchblocks>
 
|-
 
||[[()_まで繰り返す_(ブロック)|<scratchblocks><...>まで繰り返す</scratchblocks>]]
 
|<scratchblocks>
 
定義 ループ
 
もし <<. . .> ではない> なら
 
. . .
 
ループ ::custom
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[ループ v] を送る
 
 
 
[ループ v] を受け取ったとき
 
もし <<. . .> ではない> なら
 
. . .
 
[ループ v] を送る
 
end
 
</scratchblocks>
 
|-
 
||[[もし () なら (ブロック)|<sb>もし <> なら</sb>]]
 
|<scratchblocks>
 
もし <. . .> なら
 
. . .
 
でなければ
 
// ここにブロックは入れません
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
<. . .> を送って待つ
 
 
 
[true v] を受け取ったとき
 
. . .
 
</scratchblocks>
 
または
 
<scratchblocks>
 
@ がクリックされたとき
 
ずっと
 
<. . .>まで待つ
 
. . .
 
// これは、「もし」がループします。
 
</scratchblocks>
 
|-
 
||[[もし () なら、でなければ (ブロック)|<sb>もし <> なら
 
でなければ</sb>]]
 
|<scratchblocks>
 
もし <> なら
 
. . .
 
end
 
もし <<> ではない> なら
 
. . .
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
定義 もし <boolean>
 
もし <boolean> なら
 
. . . // もしの間に入れたいもの
 
[このスクリプト v] を止める
 
end
 
@ がクリックされたとき
 
. . .
 
もし <. . .> なら
 
. . .//でなければの間に入れたいもの
 
//もし・でなければが最後のブロックのときに使えます
 
</scratchblocks>
 
|-
 
|-
 
||[[()_まで待つ_(ブロック)|<sb><> まで待つ</sb>]]
 
|<scratchblocks>< . . . > まで繰り返す
 
// ここにブロックは入れません
 
end
 
</scratchblocks>
 
|-
 
||[[()_を止める_(ブロック)|<sb>[このスクリプト v] を止める</sb>]]
 
|<scratchblocks>
 
<> まで待つ // ここには何も入れません
 
</scratchblocks>
 
または
 
<scratchblocks>([10 ^ v] \( (309) \)) 秒待つ // これらは実際にスクリプトは止めません。しかし、その後の動作はとまります。
 
</scratchblocks>
 
または
 
<scratchblocks>
 
((1) / (0)) 秒待つ // 上のコメントと同じことが起こります。なお、オフラインエディターではエラーになります。
 
</scratchblocks>
 
または
 
<scratchblocks>
 
ずっと
 
// ここにブロックは入れません
 
</scratchblocks>
 
|-
 
||[[()_を止める_(ブロック)|<sb>[すべて v]を止める</sb>]]
 
|<scratchblocks>
 
[すべてを止める v] を受け取ったとき
 
[スプライトの他のスクリプト v]を止める
 
// このスクリプトはすべてのスプライトとステージに配置してください。
 
</scratchblocks>
 
|}
 
 
 
==[[動きブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[向き (値)|<sb>(向き)</sb>]]
 
|<scratchblocks>([向き v] \( [任意のスプライト v] \))</scratchblocks>
 
|-
 
||[[x座標 (ブロック)|<sb>(x座標)</sb>]]
 
|<scratchblocks>([x座標 v] \( [任意のスプライト v] \))</scratchblocks>
 
|-
 
||[[y座標 (ブロック)|<sb>(y座標)</sb>]]
 
|<scratchblocks>([y座標 v] \( [任意のスプライト v] \))</scratchblocks>
 
|-
 
||[[() へ行く (ブロック)|<sb>[マウスのポインター v] へ行く</sb>]]
 
|<scratchblocks>x座標を (マウスのx座標) 、y座標を (マウスのy座標) にする</scratchblocks>
 
|-
 
||[[() へ行く (ブロック)|<sb>[任意のスプライト v] へ行く</sb>]]
 
|<scratchblocks>x座標を ([x座標 v] \( [任意のスプライト v] \)) 、y座標を ([y座標 v] \( [任意のスプライト v] \)) にする</scratchblocks>
 
または
 
<scratchblocks>x座標を ([x座標 v] \( [任意のスプライト v] \)) にする
 
y座標を ([y座標 v] \( [任意のスプライト v] \)) にする
 
</scratchblocks>
 
|-
 
||[[x座標を () 、y座標を () にする (ブロック)|<sb>x座標を (0) 、y座標を (0) にする</sb>]]
 
| <scratchblocks>x座標を (任意のx座標) にする
 
y座標を (任意のy座標) にする</scratchblocks>
 
または
 
<scratchblocks>(0) 秒でx座標を (任意のx座標) に、y座標を (任意のy座標) に変える</scratchblocks>
 
|-
 
||[[() へ向ける (ブロック)|<sb>[ v] へ向ける</sb>]]
 
|<scratchblocks>
 
[delta_x v] を (([x座標 v] \( [任意のスプライト v] \)) - (x座標)) にする
 
[delta_y v] を (([y座標 v] \( [任意のスプライト v] \)) - (y座標)) にする
 
もし<(delta_y) = [0]> なら
 
もし<(delta_x) < [0]> なら
 
(-90 v) 度に向ける
 
でなければ
 
(90 v) 度に向ける
 
end
 
でなければ
 
もし<(delta_y) < [0]> なら
 
((180) + ([atan v] \( ((delta_x) / (delta_y)) \))) 度に向ける
 
でなければ
 
([atan v] \( ((delta_x) / (delta_y)) \)) 度に向ける
 
end
 
end
 
</scratchblocks>
 
|-
 
||[[() 度に向ける (ブロック)|<sb>(90 v) 度に向ける</sb>]]
 
|<scratchblocks>
 
@turnRight ((90) - (向き)) 度回す
 
</scratchblocks>
 
または
 
<scratchblocks>
 
@turnLeft ((-1) * ((90) - (向き))) 度回す
 
</scratchblocks>
 
|-
 
||[[() 度回す (ブロック)|<sb>@turnRight (15) 度回す</sb>]]
 
|<scratchblocks>
 
((向き) + (15)) 度に向ける
 
</scratchblocks>
 
|-
 
||[[() 度回す (ブロック)|<sb>@turnLeft (15) 度回す</sb>]]
 
|<scratchblocks>
 
((向き) - (15)) 度に向ける
 
</scratchblocks>
 
|-
 
||[[() 歩動かす (ブロック)|<sb>(10) 歩動かす</sb>]]
 
|<scratchblocks>
 
x座標を ((x座標) + (([sin v] \( (向き) \)) * (10))) 、y座標を ((y座標) + (([cos v] \( (向き) \)) * (10))) にする
 
</scratchblocks>
 
または
 
<scratchblocks>
 
x座標を (([sin v] \( (向き) \)) * (10)) ずつ変える
 
y座標を (([cos v] \( (向き) \)) * (10)) ずつ変える
 
</scratchblocks>
 
<!-- |-
 
||[[もし端に着いたら、跳ね返る (ブロック)|<sb>もし端に着いたら、跳ね返る</sb>]]
 
|<scratchblocks>
 
もし <[端 v] に触れた> なら
 
x座標を (([sin v] \( (向き) \)) * ((0) - (スピード))) ずつ変える
 
もし <[端 v] に触れた> なら
 
((180) - (向き)) 度に向ける
 
でなければ
 
((0) - (向き)) 度に向ける
 
end
 
x座標を (([sin v] \( (向き) \)) * (スピード)) ずつ変える
 
end</scratchblocks>-->
 
|-
 
||[[x座標を () ずつ変える (ブロック)|<sb>x座標を (10) ずつ変える</sb>]]
 
|<scratchblocks>x座標を ((x座標) + (10)) にする</scratchblocks>
 
|-
 
||[[y座標を () ずつ変える (ブロック)|<sb>y座標を (10) ずつ変える</sb>]]
 
|<scratchblocks>y座標を ((y座標) + (10)) にする</scratchblocks>
 
|-
 
||[[x座標を () にする (ブロック)|<sb>x座標を (0) にする</sb>]]
 
|<scratchblocks>x座標を ((任意のx座標) - (x座標)) ずつ変える</scratchblocks>
 
<scratchblocks>x座標を (((x座標) * (-1)) + (任意のx座標)) ずつ変える</scratchblocks>
 
<scratchblocks>x座標を (任意のx座標) 、y座標を (y座標) にする</scratchblocks>
 
|-
 
||[[y座標を () にする (ブロック)|<sb>y座標を (0) にする</sb>]]
 
|<scratchblocks>y座標を ((任意のy座標) - (y座標)) にする</scratchblocks>
 
<scratchblocks>y座標を (((y座標) * (-1)) + (任意のy座標)) にする</scratchblocks>
 
<scratchblocks>x座標を (x座標) 、y座標を (任意のy座標) にする</scratchblocks>
 
|}
 
 
 
==[[モーターブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[() を () 秒オンにする (ブロック)|<sb>[motor v] を (1) 秒オンにする</sb>]]
 
|<scratchblocks>[motor v] をオンにする
 
(数) 秒待つ
 
[motor v] をオフにする</scratchblocks>
 
|-
 
||[[() をオフにする (ブロック)|<sb>[motor v] をオフにする</sb>]]
 
|<scratchblocks>[motor v] を (0) 秒オンにする</scratchblocks>
 
または
 
<scratchblocks>[motor v] のパワーを (0) にする</scratchblocks>
 
|}
 
 
 
==[[見た目ブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[コスチュームを () にする (ブロック)|<sb>コスチュームを [ v] にする</sb>]]
 
|
 
<scratchblocks>
 
<(任意のコスチューム #) = (コスチューム #)> まで繰り返す
 
次のコスチュームにする
 
end
 
</scratchblocks>
 
|-
 
||[[次のコスチュームにする (ブロック)|<sb>次のコスチュームにする</sb>]]
 
|<scratchblocks>コスチュームを ((コスチューム #) + (1)) にする</scratchblocks>
 
|-
 
||[[背景を () にする (ブロック)|<sb>背景を [ v] にする</sb>]]
 
|
 
<scratchblocks>
 
<(任意の背景 #) = (背景 #)> まで繰り返す
 
次の背景
 
end
 
</scratchblocks>
 
|-
 
||[[次の背景 (ブロック)|<sb>次の背景</sb>]]
 
|<scratchblocks>背景を ((背景 #) + (1)) にする</scratchblocks>
 
または
 
<scratchblocks>背景を [次の背景 v] にする</scratchblocks>
 
|-
 
||[[コスチューム番号 (ブロック)|<sb>(コスチューム #)</sb>]]
 
|<scratchblocks>([コスチューム # v] \( [任意のスプライト v] \))</scratchblocks>
 
|-
 
||[[背景の番号 (ブロック)|<sb>(背景 #)</sb>]]
 
|<scratchblocks>([背景 # v] \( [ステージ v] \))</scratchblocks>
 
|-
 
||[[背景の名前 (ブロック)|<sb>(背景の名前)</sb>]]
 
|<scratchblocks>([背景の名前 v] \( [ステージ v] \))</scratchblocks>
 
|-
 
||[[() と () 秒言う (ブロック)|<sb>[] と () 秒言う</sb>]]
 
|<scratchblocks>
 
(文字列) と言う
 
(量) 秒待つ
 
[] と言う
 
</scratchblocks>
 
|-
 
||[[() と () 秒考える (ブロック)|<sb>[] と () 秒考える</sb>]]
 
|<scratchblocks>
 
(文字列) と考える
 
(量) 秒待つ
 
[] と考える
 
</scratchblocks>
 
|-
 
||[[画像効果をなくす (ブロック)|<sb>画像効果をなくす</sb>]]
 
|<scratchblocks>
 
[色 v] の効果を (0) にする
 
[魚眼レンズ v] の効果を (0) にする
 
[渦巻き v] の効果を (0) にする
 
[ピクセル化 v] の効果を (0) にする
 
[モザイク v] の効果を (0) にする
 
[明るさ v] の効果を (0) にする
 
[幽霊 v] の効果を (0) にする
 
</scratchblocks>
 
|-
 
||[[大きさ (ブロック)|<sb>(大きさ)</sb>]]
 
|<scratchblocks>
 
([大きさ v] \( [任意のスプライト v] \))
 
</scratchblocks>
 
|-
 
||[[大きさを () ずつ変える (ブロック)|<sb>大きさを () ずつ変える</sb>]]
 
|<scratchblocks>
 
大きさを ((大きさ) + (量))% にする
 
</scratchblocks>
 
|-
 
||[[大きさを () % にする (ブロック)|<sb>大きさを () % にする</sb>]]
 
|<scratchblocks>
 
大きさを ((任意の大きさ) - (大きさ)) ずつ変える
 
</scratchblocks>
 
|-
 
||[[前に出す (ブロック)|<sb>前に出す</sb>]]
 
|<scratchblocks>
 
((-1) * ([10 ^ v] \( (309) \))) 層下げる
 
</scratchblocks>
 
|-
 
||[[隠す (ブロック)|<sb>隠す</sb>]]
 
| <scratchblocks>[幽霊 v] の効果を (100) にする</scratchblocks>
 
または
 
<scratchblocks>コスチュームを [目に見えないコスチューム v]  にする</scratchblocks>
 
|}
 
 
 
==[[音ブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[() の音を鳴らす (ブロック)|<sb>[ v] の音を鳴らす</sb>]]
 
|<scratchblocks>
 
. . .
 
[スクリプトを続行 v] を送る
 
終わるまで [任意の音 v] の音を鳴らす
 
 
 
[スクリプトを続行 v] を受け取ったとき
 
. . .
 
</scratchblocks>
 
 
 
|-
 
||[[終わるまで () の音を鳴らす (ブロック)|<sb>終わるまで [ v] の音を鳴らす</sb>]]
 
|<scratchblocks>[任意の音 v] の音を鳴らす
 
(音の長さ) 秒待つ</scratchblocks>
 
|-
 
||[[() 拍休む (ブロック)|<sb>() 拍休む</sb>]]
 
|<scratchblocks> (((60) / (テンポ)) * (拍数)) 秒待つ</scratchblocks>
 
|-
 
||[[音量を () ずつ変える (ブロック)|<sb>音量を () ずつ変える</sb>]]
 
|<scratchblocks>音量を ((音量) + (量)) % にする::sound</scratchblocks>
 
|-
 
||[[音量を () % にする (ブロック)|<sb>音量を () % にする::sound</sb>]]
 
|<scratchblocks>音量を ((量) - (音量)) % にする::sound</scratchblocks>
 
|-
 
||[[音量 (音ブロック)|<sb>(音量)</sb>]]
 
|<scratchblocks>([音量 v] \( [任意のスプライト v] \))</scratchblocks>
 
|-
 
||[[テンポを () ずつ変える (ブロック)|<sb>テンポを () ずつ変える</sb>]]
 
|<scratchblocks>テンポを ((テンポ) + (量)) BPMにする</scratchblocks>
 
|-
 
||[[テンポを () BPMにする (ブロック)|<sb>テンポを () BPMにする</sb>]]
 
|<scratchblocks>テンポを ((量) - (テンポ)) ずつ変える</scratchblocks>
 
|}
 
 
 
==[[演算ブロック]]==
 
{| border="1" style="text-align:center">
 
|-
 
! width="100px"|ブロック
 
! 回避策
 
|-
 
||[[() + () (ブロック)|<sb>(() + ())</sb>]]
 
|<scratchblocks>((a) - ((b) * (-1)))</scratchblocks>
 
または
 
<scratchblocks>((a) - ((0) - (b)))</scratchblocks>
 
または
 
<scratchblocks>
 
[答え v] を (a) にする
 
[答え v] を (b) ずつ変える
 
</scratchblocks>
 
|-
 
||[[() - () (ブロック)|<sb>(() - ())</sb>]]
 
|<scratchblocks>((a) + ((b) * (-1)))</scratchblocks>
 
または
 
<scratchblocks>((a) + ((b) / (-1)))</scratchblocks>
 
または
 
<scratchblocks>((a) + ([-] と (b)))</scratchblocks>
 
または
 
<scratchblocks>
 
[答え v] を () にする
 
[答え v] を ((-1) * ()) ずつ変える
 
</scratchblocks>
 
3番目の回避策はbの値が正の場合のみ機能します。たとえば、 「--3」はScratchによって0と評価されます。
 
|-
 
||[[() * () (ブロック)|<sb>(() * ())</sb>]]
 
|<div style="width:570px"><scratchblocks>(すべて v) 番目を [num1 numbers v] から削除する //セットアップ
 
(すべて v) 番目を [num2 numbers v] から削除する
 
(すべて v) 番目を [積数字 v] から削除する
 
[積 v] を [0] にする
 
[dec pos 1 v] を [0] にする
 
[dec pos 2 v] を [0] にする
 
もし <(答え) < [0]> なら
 
[カウント v] を [1] にする
 
[no 1 negative v] を [y] にする
 
でなければ
 
[カウント v] を [0] にする
 
[no 1 negative v] を [n] にする
 
end
 
([] の長さ) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
もし <<((カウント) 番目\( [] \)の文字) = [.]> ではない> なら
 
((カウント) 番目\( [] \)の文字) を [num1 numbers v] に追加する
 
でなければ
 
[dec pos 1 v] を (((答え) - (カウント)) の長さ) にする
 
end
 
end
 
もし <[] < [0]> なら
 
[カウント v] を [1] にする
 
[no 2 negative v] を [y] にする
 
でなければ
 
[カウント v] を [0] にする
 
[no 2 negative v] を [n] にする
 
end
 
([] の長さ) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
もし <<((カウント) 番目\( [] \)の文字) = [.]> ではない> なら
 
((カウント) 番目\( [] \)の文字) を [num2 numbers v] に追加する
 
でなければ
 
[dec pos 2 v] を (((答え) - (カウント)) の長さ) にする
 
end
 
end
 
[num1 v] を (num1 numbers) にする
 
[num2 v] を (num2 numbers) にする
 
(num1) 回繰り返す //スタート
 
[積 v] を (num2) ずつ変える
 
end
 
[小数点位置 v] を ((dec pos 1) + (dec pos 2)) にする
 
[カウント v] を [0] にする
 
((積) の長さ) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
((カウント) 番目\( (積) \)の文字) を [積数字 v] に追加する
 
end
 
もし <<(小数点位置) = [0]> ではない> なら
 
[.] を (([積数字 v] の長さ) - ((小数点位置) - (1))) 番目に挿入する( [積数字 v] )
 
end
 
もし <<<(no 1 negative) = [y]> または <(no 2 negative) = [y]>> かつ <<<(no 1 negative) = [y]> かつ <(no 2 negative) = [y]>> ではない>> なら
 
[-] を (1 v) 番目に挿入する( [積数字 v] )
 
end
 
[積 v] を (積数字) にする</scratchblocks></div>
 
または
 
<scratchblocks>((a) / ((1) / (b))) //"a"と"b"の積</scratchblocks>
 
または
 
<scratchblocks>
 
もし <(a) < [0]> なら
 
([絶対値 v] \( (a) \) ::operators) 回繰り返す
 
[積 v] を ((0) - (b)) ずつ変える
 
end
 
でなければ
 
[積 v] を [0] にする
 
(a) 回繰り返す
 
[積 v] を (b) ずつ変える
 
end
 
end
 
</scratchblocks>
 
|-
 
||[[() / () (ブロック)|<sb>(() / ())</sb>]]
 
|<div style="width:570px"><scratchblocks>
 
(すべて v) 番目を [被除数数字 v] から削除する
 
(すべて v) 番目を [商 v] から削除する
 
[被除数 v] を [] にする
 
[除数 v] を ([絶対値 v] \( () \) ::operators) にする
 
[no2 neg v] を <[] < [0] > にする
 
もし <(被除数) < [0] > なら
 
[カウント v] を [1] にする
 
でなければ
 
[カウント v] を [0] にする
 
end
 
[no1 neg v] を <(被除数) < [0] > にする
 
((被除数) の長さ) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
もし <((カウント) 番目\( (被除数) \)の文字) = [.]> なら
 
[被除数 dec v] を (((被除数) - (カウント)) の長さ) にする
 
でなければ
 
((カウント) 番目\( (被除数) \)の文字) を [被除数数字 v] に追加する
 
end
 
end
 
((10) - (被除数 dec)) 回繰り返す
 
[0] を [被除数数字 v] に追加する
 
end
 
もし <((除数) を四捨五入) = (除数)> なら
 
[dec pos v] を [0] にする
 
でなければ
 
[カウント v] を [0] にする
 
<((カウント) 番目\( (被除数) \)の文字) = [.]> まで繰り返す
 
[カウント v] を (1) ずつ変える
 
end
 
[dec pos v] を (((除数) - (カウント)) の長さ) にする
 
[被除数 v] を ((被除数) * ([10 ^ v]((dec pos)))) にする
 
[除数 v] を (((除数) * ([10 ^ v]((dec pos)))) を四捨五入) にする
 
end
 
[カウント v] を [0] にする
 
[現在処理中 v] を [] にする //これはスペースではなく、空です。
 
([被除数数字 v] の長さ) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
[現在処理中 v] を ((現在処理中) と ((カウント) 番目( [被除数数字 v] ))) にする
 
[回 v] を [9] にする
 
<((除数) * (回)) < ((現在処理中) + (1))> まで繰り返す
 
[回 v] を (-1) ずつ変える
 
(回) を [商 v] に追加する
 
[現在処理中 v] を ((現在処理中) - ((除数) * (回))) にする
 
end
 
[.] を (([商 v] の長さ) - (8)) 番目に挿入する( [商 v] )
 
<<<((最後 v) 番目(  [商 v] )) = [.]> または <<<((最後 v) 番目( [商 v] )) = [0]> かつ <((商) を四捨五入) = (商)>> かつ <[商 v] に [.] が含まれる>>> ではない> まで繰り返す
 
(最後 v) 番目を [商 v] から削除する
 
<<<((1 v) 番目( [商 v] )) = [0]> ではない> または <((2 v) 番目( [商 v] )) = [.]>> まで繰り返す
 
(1 v) 番目を [商 v] から削除する
 
end
 
end
 
end
 
</scratchblocks></div>
 
または
 
<scratchblocks>
 
もし <(b) < [0]> なら
 
  [商 v] を (((a) * ([e ^ v](((-1) * ([ln v](((-1) * (b)))))))) * (-1)) にする
 
でなければ
 
  [商 v] を ((a) * ([e ^ v](((-1) * ([ln v]((b))))))) にする
 
end
 
</scratchblocks>
 
|-
 
||[[() < () (ブロック)|<sb>([] < [])</sb>]]
 
|<scratchblocks>
 
<<<(a) > (b)> または <(a) = (b)>> ではない>
 
</scratchblocks>
 
|-
 
||[[() = () (ブロック)|<sb>([] = [])</sb>]]
 
|<scratchblocks>
 
<<<(a) < (b)> または <(a) > (b)>> ではない>
 
</scratchblocks>
 
または
 
<scratchblocks>
 
(すべて v) 番目を [リスト v] から削除する //大文字と小文字を区別
 
(a) を [リスト v] に追加する
 
もし <[リスト v] に (b) が含まれる> なら
 
...
 
end
 
</scratchblocks>
 
|-
 
||[[() > () (ブロック)|<sb>([] > [])</sb>]]
 
|<scratchblocks>
 
<<<(a) < (b)> または <(a) = (b)>> ではない>
 
</scratchblocks>
 
 
 
|-
 
||[[() かつ () (ブロック)|<sb><<> かつ <>></sb>]]
 
|<scratchblocks>
 
もし <. . .> なら
 
もし <. . .> なら
 
. . .
 
end
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
<<<<. . .> ではない> または <<. . .> ではない>> ではない>
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[var v] を [0] にする
 
<(var) = [1]> まで繰り返す
 
. . . //ブロックは、c型ブロックの中に入れてください。
 
もし <> なら
 
[var v] を [1] にする
 
end //this works for all current boolean-accepting block
 
</scratchblocks>
 
または
 
<scratchblocks>
 
もし <> なら
 
もし <> なら
 
[return v] を [true] にする
 
でなければ
 
[return v] を [false] にする
 
end
 
でなければ
 
[return v] を [false] にする
 
</scratchblocks>
 
|-
 
||[[() または () (ブロック)|<sb><<> または <>></sb>]]
 
|<scratchblocks>
 
もし <. . .> なら
 
. . .
 
でなければ
 
もし <. . .> なら
 
. . .
 
end
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
<<<<. . .> ではない> かつ <<. . .> ではない>> ではない>
 
</scratchblocks>
 
または
 
<scratchblocks>
 
もし <> なら
 
[return v] を [true] にする
 
でなければ
 
もし <> なら
 
[return v] を [true] にする
 
でなければ
 
[return v] を [false] にする
 
</scratchblocks>
 
|-
 
||[[() ではない (ブロック)|<sb><<> ではない></sb>]]
 
|<scratchblocks><(. . .) = [false]></scratchblocks>
 
または
 
<scratchblocks>
 
もし <> なら
 
//ここにブロックを入れないでください。
 
でなければ
 
. . .
 
</scratchblocks>
 
|-
 
||[[() と () (ブロック)|<sb>([] と [])</sb>]]
 
| <scratchblocks>[カウント v] を [0] にする
 
[final v] を [] にする
 
((a) の長さ) 回繰り返す // aは最初の入力です
 
[カウント v] を (1) ずつ変える
 
add ((カウント) 番目\( [a] \)の文字) to [final v]
 
end
 
[カウント v] を (0) にする
 
((b) の長さ) 回繰り返す // bは2番目の入力です
 
[カウント v] を (1) ずつ変える
 
((カウント) 番目\( [b] \)の文字) を [final v] に追加する
 
end
 
[final v] を (final)  にする //これが最終的な文字列です
 
</scratchblocks>
 
または
 
<scratchblocks>
 
//これは両方が整数でbが正の場合にのみ動作します。
 
[return v] を [] にする
 
([] の長さ) 回繰り返す
 
[return v] を ((return) * (10)) にする
 
end
 
[return v] を () ずつ変える
 
</scratchblocks>
 
|-
 
||[[() 番目( () )の文字 (ブロック)|<sb>((1) 番目\( [] \)の文字)</sb>]]
 
|<scratchblocks>//Only works for whole numbers and the letter you're looking for must be 1.
 
もし <[] > [0]> なら
 
[return v] を [] にする
 
((() - (1)) の長さ) 回繰り返す
 
[return v] を ([切り下げ v] \( ((return) / (10)) \) ::operators) にする
 
end
 
でなければ
 
[return v] を [-] にする
 
end
 
//
 
</scratchblocks>
 
|-
 
||[[() の長さ (演算ブロック)|<sb>[] の長さ</sb>]]
 
|<scratchblocks>[return v] を [1] にする
 
<(((return) + (1)) 番目\( [] \)の文字) = []> まで繰り返す
 
[return v] を (1) ずつ変える
 
end</scratchblocks>
 
|-
 
||[[() を () で割った余り (ブロック)|<sb>(() を () で割った余り)</sb>]]
 
|<scratchblocks>
 
もし <(((a) / (b)) を四捨五入) > ((a) / (b))> なら
 
[余り v] を ((a) - (((((a) / (b)) - (0.5))を四捨五入) * (b))) にする
 
でなければ
 
[余り v] を ((a) - ((((a) / (b)) を四捨五入) * (b))) にする
 
end
 
</scratchblocks>
 
|-
 
||[[() を四捨五入 (ブロック)|<sb>(() を四捨五入)</sb>]]
 
| <scratchblocks>
 
[report v] を [] にする
 
[カウント v] を [1] にする
 
<<((カウント) 番目\( (num) \)の文字) = [.]> または <(カウント) = ((num) の長さ)>> まで繰り返す
 
[report v] を ((report) と ((カウント) 番目\( (num) \)の文字)) にする
 
[カウント v] を (1) ずつ変える
 
end
 
もし <<((カウント)番目\( (num) \)の文字) = [.]> かつ <(((カウント) + (1)) 番目\( (num) \)の文字) > [4]>> なら
 
[report v] を (1) ずつ変える
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[return v] を [0] にする
 
[b v] を [] にする
 
<([絶対値 v] \( (b) \) ::operators)<[1]>まで繰り返す{
 
もし <[] < [0]> なら
 
[return v] を (1) ずつ変える
 
[b v] を (-1) ずつ変える
 
でなければ
 
[return v] を (-1) ずつ変える
 
[b v] を (1) ずつ変える
 
}::control
 
</scratchblocks>
 
または
 
<scratchblocks>
 
定義 (#) を四捨五入
 
[カウント v] を [1] にする
 
<((カウント) 番目\( (#) \)の文字) = [.] > まで繰り返す
 
[カウント v] を[1] ずつ変える
 
end
 
[カウント v] を [1] ずつ変える
 
もし <((カウント) 番目\( (#) \)の文字) = [5]> なら
 
[round v] を ([切り上げ v] \( (#) \) ::operators) にする
 
でなければ
 
もし <((カウント) 番目\( (#) \)の文字) > [5]> なら
 
[round v] を ([切り上げ v] \( (#) \) ::operators) にする
 
でなければ
 
もし <((カウント) 番目\( (#) \)の文字) < [5]> なら
 
[round v] を ([切り下げ v] \( (#) \) ::operators) にする
 
end
 
end
 
end
 
</scratchblocks>
 
|-
 
||[[数学関数_(演算ブロック)|<sb>([10 ^ v] of ())</sb>]]
 
|
 
絶対値:
 
<scratchblocks>
 
[出力 v] を (number) にする
 
もし<(出力) < [0]> なら
 
[出力 v] を ((-1) * (出力)) にする
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[出力 v] を (([平方根 v] \( ((入力) * (入力)) \) ::operators) + (0)) にする
 
</scratchblocks>
 
平方根:
 
<scratchblocks>
 
[出力 v] を (入力) にする
 
<(出力) = (入力)> まで繰り返す
 
[出力 v] を ((((出力) * (出力)) + (入力)) / ((2) * (出力))) にする
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[出力 v] を ([e ^ v] \( ((0.5) * ([ln v] \( (入力) \))) \)) にする
 
</scratchblocks>
 
ln (自然対数):
 
<scratchblocks>
 
[出力 v] を (([log v] \( (入力) \)) / ([log v] \( ([e ^ v] \( (1) \)) \))) にする
 
</scratchblocks>
 
e ^:
 
<scratchblocks>
 
[出力 v] を ([10 ^ v] \( ((入力) * (2.718281828459)) \)) にする
 
</scratchblocks>
 
log (base 10):
 
<scratchblocks>
 
[出力 v] を (([ln v] \( (入力) \)) / ([ln v] \( (10) \))) にする
 
</scratchblocks>
 
10 ^:
 
<scratchblocks>
 
[出力 v] を ([e ^ v] \( ((入力) * ([ln v] \( (10) \))) \)) にする
 
</scratchblocks>
 
切り下げ:
 
<scratchblocks>
 
[出力 v] を (((入力) - (.5)) を四捨五入) にする
 
</scratchblocks>
 
ceil:
 
<scratchblocks>
 
[出力 v] を (((入力) + (.49999999)) を四捨五入) にする
 
</scratchblocks>
 
sin:
 
<scratchblocks>
 
[出力 v] を ([cos v]  \( ((90) - (入力)) \)) にする
 
</scratchblocks>
 
cos:
 
<scratchblocks>
 
[出力 v] を ([sin v]  \( ((90) - (入力)) \)) にする
 
</scratchblocks>
 
tan:
 
<scratchblocks>
 
[出力 v] を (([sin v] \( (入力) \)) / ([cos v] \( (入力) \))) にする
 
</scratchblocks>
 
|}
 
 
 
==[[ペンブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||
 
[[スタンプ (ブロック)|<sb>スタンプ</sb>]]
 
|
 
<scratchblocks>
 
[stamping? v] を [true] にする
 
[自分自身 v] のクローンを作る
 
[stamping? v] を [false] にする
 
 
 
クローンされたとき //and any other hat block
 
もし <(stamping?) = [true]> なら
 
[このスクリプト v] を止める
 
end
 
</scratchblocks>
 
{{メモ|300個のクローン数制限に達した場合、「このクローンを削除する」ブロックで削除されます。}}
 
|}
 
 
 
==[[調べるブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[() と聞いて待つ (ブロック)|<sb>[] と聞いて待つ</sb>]]
 
|<scratchblocks>(質問) と言う
 
(すべて v) 番目を [答え v] から削除する
 
[カウント v] を [0] にする
 
<<[マウスのポインター v] に触れた> かつ <マウスが押された>> まで繰り返す
 
もし <[a v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[A] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[b v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[B] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[c v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[C] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[d v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[D] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[e v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[E] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[f v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[F] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[g v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[G] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[h v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[H] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[i v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[I] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[j v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[J] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[k v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[K] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[l v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[L] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[m v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[M] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[n v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[N] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[o v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[O] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[p v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[P] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[q v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[Q] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[r v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[R] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[s v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[S] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[t v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[T] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[u v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[U] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[v v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[V] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[w v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[W] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[x v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[X] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[y v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[Y] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[z v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[Z] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[0 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[0] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[1 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[1] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[2 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[2] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[3 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[3] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[4 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[4] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[5 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[5] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[6 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[6] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[7 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[7] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[8 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[8] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[9 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[9] を (カウント) 番目に挿入する( [答え v] )
 
end
 
もし <[右向き矢印 v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
end
 
もし <[左向き矢印 v] キーが押された> なら
 
[カウント v] を (-1) ずつ変える
 
end
 
もし <[スペース v] キーが押された> なら
 
[カウント v] を (1) ずつ変える
 
[] を (カウント) 番目に挿入する( [答え v] )
 
end
 
(0.001) 秒待つ
 
end</scratchblocks>
 
|-
 
||[[() までの距離 (ブロック)|<sb>([スプライト v] までの距離)</sb>]]
 
|<div style="width:570px"><scratchblocks>([sqrt v] \( (((([x座標 v] \( [任意のスプライト v] \)) - (x座標)) * (([x座標 v] \( [任意のスプライト v] \)) - (x座標))) + ((([y座標 v] \( [任意のスプライト v] \)) - (y座標)) * (([y座標 v] \( [任意のスプライト v] \)) - (y座標))))  \)::operators)</scratchblocks></div>
 
|-
 
||[[マウスのx座標 (ブロック)|<sb>(マウスのx座標)</sb>]]
 
|<scratchblocks>
 
ずっと
 
[マウスのポインター v] へ行く
 
[マウスの位置 v] を (x座標) にする
 
</scratchblocks>
 
|-
 
||[[マウスのy座標 (ブロック)|<sb>(マウスのy座標)</sb>]]
 
|<scratchblocks>
 
ずっと
 
[マウスのポインター v] へ行く
 
[マウスの位置 v] を (y座標) にする
 
</scratchblocks>
 
|-
 
||[[2000年からの日数 (ブロック)|<sb>(2000年からの日数)</sb>]]
 
|<div style="width:570px">
 
ここでは、d = 2000年からの日数とする:
 
<scratchblocks>[d v] を ((((367) * (年)) - ([切り下げ v] \( (((7) * ((年) + ([切り下げ v] \( (((月) + (9)) / (12)) \)::operators))) / (4)) \)::operators)) + ((([切り下げ v] \( (((275) * (月)) / (9)) \)::operators) + (日)) - (730530))) にする
 
[d v] を ((<(d) < [-36435]> + <(d) < [-72990]>) - <(d) > [36585]>) ずつ変える
 
</scratchblocks>
 
1800年-2199年までは正しい。</div>
 
|}
 
 
 
==[[PicoBoardブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[() (PicoBoardブロック)|<sb><[Aがつながれた v]::extension></sb>]]
 
|<scratchblocks><([抵抗-A v] センサーの値) < [10]>//抵抗A〜D</scratchblocks>
 
|}
 
 
 
==[[データブロック]]==
 
===[[変数ブロック]]===
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[() (変数ブロック)|<sb>(変数)</sb>]]
 
|<scratchblocks>([全てのスプライトの変数 v] \( [ステージ v] \))</scratchblocks>
 
<scratchblocks>([このスプライトの変数 v] \( [スプライト1 v] \))</scratchblocks>
 
|-
 
||[[() を () にする (ブロック)|<sb>[ v] を [] にする</sb>]]
 
|<scratchblocks>[変数 v] を (((変数) * (-1)) + (量)) ずつ変える</scratchblocks>
 
{{メモ|数字以外では動作しません。}}
 
|-
 
||[[() を () ずつ変える (ブロック)|<sb>[ v] を () ずつ変える</sb>]]
 
|<scratchblocks>[変数 v] を ((変数) + (量)) にする</scratchblocks>
 
|}
 
 
 
===[[リストブロック]]===
 
{| border="1"
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[() (リストブロック)|<sb>(リスト::list)</sb>]]
 
|<scratchblocks>[カウント v] を [0] にする
 
[all are 1 v] を [true] にする
 
<<(all are 1) = [false]> または <(カウント) > ([リスト v] の長さ::list)>> まで繰り返す
 
[カウント v] を (1) ずつ変える
 
もし <(((カウント) 番目( [リスト v] )) の長さ) > [1]> なら
 
[all are 1 v] を [false] にする
 
end
 
end
 
もし <(all are 1) = [true]> なら
 
[report v] を [] にする
 
[カウント v] を [0] にする
 
([リスト v] の長さ::list) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
[report v] を ((report) と ((カウント) 番目( [リスト v] ))) にする
 
end
 
でなければ
 
[report v] を ((1 v) 番目( [リスト v] )) にする
 
[カウント v] を [1] にする
 
(([リスト v] の長さ::list) - (1)) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
[report v] を ((report) と ([] と ((カウント) 番目( [リスト v] )))) にする
 
end
 
end</scratchblocks>
 
|-
 
||[[() 番目( () )を () で置き換える (ブロック)|<sb>( v) 番目( [ v] )を [] で置き換える</sb>]]
 
|<scratchblocks>(position) 番目を [リスト v] から削除する
 
(item) を (position) 番目に挿入する( [リスト v] )</scratchblocks>
 
|-
 
||[[() に () が含まれる (ブロック)|<sb>[ v] に [] が含まれる</sb>]]
 
|<scratchblocks>[report v] を [false] にする
 
[カウント v] を [0] にする
 
([リスト v] の長さ::list) 回繰り返す
 
[カウント v] を (1) ずつ変える
 
もし <((カウント) 番目( [リスト v] )) = (thing)> なら
 
[report v] を [true] にする
 
[このスクリプト v] を止める
 
end
 
end</scratchblocks>
 
<!--誤った例と思われるためコメントアウト。
 
|-
 
||<sb>([リスト v] の長さ)</sb>
 
|<scratchblocks>((リスト::list) の長さ)</scratchblocks>
 
-->
 
|-
 
||[[() を () に追加する (ブロック)|<sb>[] を [ v] に追加する</sb>]]
 
|<scratchblocks>[thing] を (最後 v) 番目に挿入する( [リスト v] )</scratchblocks>
 
|}
 
 
 
==削除されたブロック==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[シーン () を開始 (ブロック)|<sb>シーン [シーン1 v] を開始 ::control</sb>]]
 
|<scratchblocks>
 
[シーン1 v] を送る
 
</scratchblocks>
 
|-
 
 
 
|-
 
||[[() が真のとき (ブロック)|<sb><> が真のとき ::control hat</sb>]]
 
|<scratchblocks>
 
@ がクリックされたとき
 
ずっと
 
  もし <. . .> なら
 
    . . .
 
  end
 
end
 
</scratchblocks>
 
|-
 
||[[もし () なら、ずっと (ブロック)|<sb>もし <> なら、ずっと{}::control</sb>]]
 
|<scratchblocks>
 
ずっと
 
もし <. . .> なら
 
. . .
 
end
 
</scratchblocks>
 
|-
 
||[[一斉に (ブロック)|<sb>一斉に {} ::control</sb>]]
 
|<scratchblocks>
 
定義 一斉に //画面を再描画しないで実行
 
. . .
 
</scratchblocks>
 
|-
 
||[[クローンを作る (ブロック)|<sb>クローンを作る ::control</sb>]]
 
|<scratchblocks>[自分自身 v] のクローンを作る</scratchblocks>
 
|-
 
||[[コスチュームを () ずつ変える (ブロック)|<sb>コスチュームを (1) ずつ変える ::looks</sb>]]
 
|<scratchblocks>コスチュームを ((コスチューム #) + (1)) にする</scratchblocks>
 
|-
 
||[[背景を () ずつ変える (ブロック)|<sb>背景を (1) ずつ変える ::looks</sb>]]
 
|<scratchblocks>背景を ((背景 #) + (1)) にする</scratchblocks>
 
|-
 
||[[何も言わない (ブロック)|<sb>何も言わない ::looks</sb>]]
 
|<scratchblocks>[] と言う</scratchblocks>
 
または
 
<scratchblocks>[] と考える</scratchblocks>
 
|-
 
||[[すべてのスプライトを隠す (ブロック)|<sb>すべてのスプライトを隠す ::looks</sb>]]
 
|<scratchblocks>[すべてのスプライトを隠す v] を送る
 
[すべてのスプライトを隠す v] を受け取ったとき //すべてのスプライトに置く
 
隠す
 
</scratchblocks>
 
|-
 
||[[透明スタンプ () (ブロック)|<sb>透明スタンプ (50)::pen</sb>]]
 
|<scratchblocks>
 
[幽霊 v] の効果を (...) にする
 
スタンプ
 
[幽霊 v] の効果を (0) にする
 
</scratchblocks>
 
|-
 
||[[() の絶対値 (ブロック)|<sb>(() の絶対値 ::operators)</sb>]]
 
|<scratchblocks>([絶対値 v] \( () \)::operators)</scratchblocks>
 
または<br>[[代用ブロック一覧#演算ブロック|演算ブロック]]を参照
 
|-
 
||[[Sqrt () (ブロック)|<sb>(sqrt ()::operators)</sb>]]
 
|<scratchblocks>([sqrt v] \( () \)::operators)</scratchblocks>
 
または<br>[[代用ブロック一覧#演算ブロック|演算ブロック]]を参照
 
|-
 
||[[うるさい (ブロック)|<sb><うるさい ::sensing></sb>]]
 
|<scratchblocks><(音量::sensing) > [30]></scratchblocks>
 
|-
 
||[[Scratch開始からの日数 (ブロック)|<sb>(Scratch開始からの日数::sensing)</sb>]]
 
|<scratchblocks>((2000年からの日数) - (2692))</scratchblocks>
 
|-
 
||[[ユーザーID (ブロック)|<sb>(ユーザーID::sensing)</sb>]]
 
|<scratchblocks>@ がクリックされたとき
 
もし <<[☁ ユーザー v] に (ユーザー名) が含まれる> ではない> なら
 
(ユーザー名) を [☁ ユーザー v] に追加する
 
end
 
<((check user id) 番目( [☁ ユーザー v] )) = (ユーザー名)> まで繰り返す
 
[check user id v] を (1) ずつ変える
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>([あなたのユーザーID:] と (check user id)) と言う</scratchblocks>
 
または
 
<scratchblocks>
 
もし <(check user id) = [ここに必要なユーザーID番号を挿入]> なら
 
. . .
 
end
 
</scratchblocks>
 
作りたいものに応じて使い分けてください。
 
{{メモ|これはクラウドリストが追加されるまで機能しませんが、他のユーザーからクラウドリストエンジンをバックパックすることもできます。}}
 
|-
 
||[[File:古いコメントブロック.png|link=Comment (programming feature)#History|Comment]]
 
|<scratchblocks>//スクリプト領域のどこかを右クリック→"コメントを追加"</scratchblocks>
 
|}
 
 
 
==[[実験ブロック]]==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||[[実験ブロック#調べるブロック|<sb>(カメラのモーション::sensing)</sb>]]
 
|<scratchblocks>(ビデオの [モーション v] \( [このスプライト v] \))</scratchblocks>
 
|-
 
||[[実験ブロック#調べるブロック|<sb>(カメラの向き::sensing)</sb>]]
 
|<scratchblocks>(ビデオの [向き v] \( [このスプライト v] \))</scratchblocks>
 
|-
 
||[[実験ブロック#2.0の実験制御ブロック|<sb>(カウンター::control)</sb>]]
 
|<scratchblocks>(カウンター) //変数を使用</scratchblocks>
 
|-
 
||[[実験ブロック#2.0の実験制御ブロック|<sb>カウンターを増加する::control</sb>]]
 
|<scratchblocks>[カウンター v] を (1) ずつ変える</scratchblocks>
 
|-
 
||[[実験ブロック#2.0の実験制御ブロック|<sb>カウンターをクリア::control</sb>]]
 
|<scratchblocks>[カウンター v] を [0] にする</scratchblocks>
 
|-
 
||[[実験ブロック#2.0の実験制御ブロック|<sb><> の間繰り返す {} :: control</sb>]]
 
|<scratchblocks>
 
<<. . .> ではない> まで繰り返す
 
. . .
 
end
 
</scratchblocks>
 
|-
 
||[[実験ブロック#2.0の実験制御ブロック|<sb>for each [v v] in (10) {} :: control</sb>]]
 
|<scratchblocks>
 
[i v] を [0] にする
 
(...) 回繰り返す
 
[i v] を (1) ずつ変える
 
. . .
 
end
 
</scratchblocks>
 
|}
 
 
 
==存在しないブロック==
 
{| border="1"
 
|-
 
! align="center" |ブロック
 
! align="center" |回避策
 
|-
 
||<sb><[ v]を受け取った?::events></sb>
 
| <scratchblocks>
 
[メッセージ v] を受け取ったとき
 
[メッセージを受け取った v] を [true] にする
 
. . .
 
[メッセージを受け取った v] を [false] にする
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[メッセージ v] を受け取ったとき
 
[メッセージを受け取った v] を [true] にする
 
(0.5)秒待つ
 
[メッセージを受け取った v] を [false] にする
 
</scratchblocks>
 
なら
 
<scratchblocks>
 
もし <(メッセージを受け取った) = [true]> なら
 
. . .
 
</scratchblocks>
 
これが存在しないのは、あまりにもあいまいだからです。上の二つは、メッセージが終了したときの回避策で、緑の旗がクリックされている状態でのみ動きます。
 
このスクリプトでは、「メッセージ」は、0.5秒間送られます。
 
<scratchblocks>
 
@ がクリックされたとき
 
[メッセージを受け取った v] を [false] にする
 
 
 
[メッセージ v] を受け取ったとき
 
[メッセージを受け取った v] を [true] にする
 
</scratchblocks>
 
そして単純に、
 
<scratchblocks>
 
<(メッセージを受け取った) = [true]>
 
</scratchblocks>
 
as the ブロック you want to work around. 下のものは、ほかのメッセージを受け取ったtき、falseを返します。
 
<scratchblocks>
 
[ほかのすべてのメッセージ (duplicate and replace) v] を受け取ったとき
 
[メッセージを受け取った v] を [false] にする
 
</scratchblocks>
 
and the variable is the same. There is one または thing you can do, since the project was created, but you'll need to be a Scratcher in またはder to use it. Delete the first ブロック on the second 回避策, and make the variable a cloud variable
 
|-
 
||<sb>[緑の旗を押す前にすべてv]を止める</sb>
 
| <scratchblocks>broadcast [Scratch-StartClicked v]</scratchblocks>
 
<i>メモ:[[Scratch 1.x]]のオフラインでのみ動作します。</i>
 
|-
 
||<sb>(1)秒繰り返す{} :: control</sb>
 
| <scratchblocks>
 
タイマーをリセット
 
<(タイマー) > [1]> まで繰り返す
 
. . .
 
end
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[タイマー offset v] を ((タイマー) + (1)) にする
 
<(タイマー) > (タイマー offset)> まで繰り返す
 
. . .
 
end
 
</scratchblocks>
 
|-
 
||<sb>spawn {} :: control cstart</sb>
 
| <scratchblocks>
 
[Spawn v] を受け取ったとき
 
. . .
 
 
 
[Spawn v]を送る
 
</scratchblocks>
 
|-
 
||<sb><クローン?::control></sb>
 
|<div style="width:490px"><scratchblocks>
 
クローンされたとき
 
[clone? v]を[true]にする //「このスプライトのみ」の変数を用意します。クローンでなければ、falseになります。
 
</scratchblocks>
 
または
 
<scratchblocks>
 
[クローン? v] を [true] にする
 
[自分自身 v] のクローンを作る
 
[クローン? v] を [false] にする
 
</scratchblocks></div>
 
|-
 
||<sb>x座標を()、y座標を()ずつ変える::motion</sb>
 
|<scratchblocks>go to x: ((x座標) + (X)) y: ((y座標) + (Y))</scratchblocks>
 
または
 
<scratchblocks>
 
x座標を (X) ずつ変える
 
y座標を(Y)ずつ変える
 
</scratchblocks>
 
|-
 
||<sb> ()秒で  x座標を()、 y座標を()にする::motion</sb>
 
|<scratchblocks> glide(seconds)secs x: ((x座標) + (X)) y: ((y座標) + (Y))</scratchblocks>
 
|-
 
||<sb>glide () secs () steps::motion</sb>
 
|<div style="width:490px"><scratchblocks>glide (seconds) secs to x: ((x座標) + (([sin v]((向き)) * (steps))) y: ((y座標) + (([cos v]  ((向き))) * (steps)))</scratchblocks></div>
 
|-
 
||<sb>point towards x: () y: ()::motion</sb>
 
|<div style="width:490px"><scratchblocks>point in 向き (([atan v] of (((X) - (x座標)) / ((Y) - (y座標)))) + (<(y座標) > (Y)> * (180)))</scratchblocks></div>
 
|-
 
||<sb>(distance to x: () y: ()::sensing)</sb>
 
|<div style="width:490px"><scratchblocks>([sqrt v] of ((((x座標) - (任意のx)) * ((x座標) - (任意のx))) + (((y座標) - (任意のy)) * ((y座標) - (任意のy)))))</scratchblocks></div>
 
|-
 
||<sb><ask in progress?::sensing></sb>
 
|<scratchblocks>
 
[ask in progress? v] を [true] にする
 
[...]と聞いて待つ
 
[ask in progress? v] を [false] にする
 
</scratchblocks>
 
|-
 
||<sb><スプライトがクリックされた::sensing></sb>
 
| <scratchblocks>
 
when this スプライト clicked
 
[スプライトがクリックされたv] を [true] にする
 
<<<マウスが押された> かつ <[マウスのポインター v]に触れた>> ではない>まで待つ
 
[スプライトがクリックされたv] を [false] にする
 
</scratchblocks>
 
|-
 
||<sb>すべてのスプライトを表示する::looks</sb>
 
|<scratchblocks>[すべてのスプライトを表示するv]を送る</scratchblocks>
 
and
 
<scratchblocks>
 
[すべてのスプライトを表示するv] を受け取ったとき //すべてのスプライトに入れること
 
表示する
 
</scratchblocks>
 
|-
 
||<sb>previous コスチューム::looks</sb>
 
|<scratchblocks>コスチュームを ((コスチューム #) - (1)) にする</scratchblocks>
 
|-
 
||<sb前の背景::looks</sb>
 
|<scratchblocks>背景を((背景 #) - (1))にする</scratchblocks>
 
または
 
<scratchblocks>背景を[(前の背景の名前)v]にする</scratchblocks>
 
|-
 
||<sb>(コスチューム名::looks)</sb>
 
|<scratchblocks>([コスチューム名 v]([任意のスプライト v]))</scratchblocks>
 
|-
 
||<sb>後ろに下がる::looks</sb>
 
|<scratchblocks>([10^ v]((309)))層下げる</scratchblocks>
 
または put
 
<scratchblocks>
 
@ がクリックされたとき
 
[スプライト v] を (1) ずつ変える
 
</scratchblocks>
 
in every スプライト and put
 
<scratchblocks>go back ((スプライト)- (1)) layers</scratchblocks>
 
|-
 
||<sb>(() ^ ():: operators)</sb>
 
|<scratchblocks>([10 ^ v] of ((power) * ([log v] of (base))))
 
</scratchblocks>
 
または
 
<scratchblocks>
 
([e ^ v] of ((power) * ([ln v] of (base))))
 
</scratchblocks>
 
{{メモ|These will not work for negative bases (such as trying to compute (-2)<sup>5</sup>.}}
 
|-
 
||<sb><true::operators></sb>
 
|<scratchblocks><<> ではない> // Put no boolean in the not ブロック.</scratchblocks>
 
または
 
<scratchblocks><[0] = [0]> // Same input on both slots.</scratchblocks>
 
|-
 
||<sb><false::operators></sb>
 
|<scratchblocks><<<> ではない> ではない> // Put no boolean in the second not ブロック.</scratchblocks>
 
または
 
<scratchblocks><<> かつ <>> // Put no booleans in the and ブロック.</scratchblocks>
 
または
 
<scratchblocks><<> または <>> // Put no booleans in the または ブロック.</scratchblocks>
 
または
 
<scratchblocks><[0] = [1]></scratchblocks>
 
|-
 
||<sb><[] ≠ []::operators></sb>
 
|<scratchblocks><<[] = []> ではない></scratchblocks>
 
|-
 
||<sb><[] ≥ []::operators></sb>
 
|<scratchblocks><<[] < []> ではない></scratchblocks>
 
または
 
<scratchblocks><<(input 1) > (input 2)> または <(input 1) = (input 2)>></scratchblocks>
 
|-
 
||<sb><[] ≤ []::operators></sb>
 
|<scratchblocks><<[] > []> ではない></scratchblocks>
 
または
 
<scratchblocks><<(input 1) < (input 2)> または <(input 1) = (input 2)>></scratchblocks>
 
|-
 
||<sb>(もし <> なら [] でなければ []::operators)</sb>
 
|<scratchblocks>
 
もし <condition::grey> なら
 
[report v] を [true] にする
 
でなければ
 
[report v] を [false] にする
 
</scratchblocks>
 
または
 
<scratchblocks>(((true) * <condition::grey>) + ((false) * <<condition::grey> ではない>))</scratchblocks>
 
{{メモ|Only works with numbers. if you want to use strings, use the first one above.}}
 
|-
 
||<sb>(letters () through () of []::operators)</sb>
 
|<scratchblocks>[report v] を [] にする
 
[count v] を (a) // a is the first letter にする
 
<(count) = ((b) + (1))> まで繰り返す // b is the last letter
 
[report v] を (join (report) (letter (count) of (text))) にする
 
[count v] を (1) ずつ変える
 
end
 
</scratchblocks>
 
|-
 
||<sb>(digit () of ()::operators)</sb>
 
|<scratchblocks>(([floor v] of ((number) / ([10 ^ v] of (([floor v] of (digit)) - (1))))) mod (10))</scratchblocks>
 
|-
 
||<sb>(round () to the nearest ()::operators)</sb>
 
|<div style="width:490px"><scratchblocks>((round ((round what) / (to the nearest))) * (to the nearest))</scratchblocks>
 
または
 
<scratchblocks>((round ((number) * ([10 ^ v] of (number of places)))) / ([10 ^ v] of (number of places)))</scratchblocks></div>
 
|-
 
||<sb>([ v] effect::looks)</sb>
 
|<scratchblocks>
 
ずっと
 
[色 v] の効果を (effect) にする
 
</scratchblocks>
 
|-
 
||<sb><音 [ v] playing?::音></sb>
 
|<scratchblocks>
 
[playing v] を [true] にする
 
終わるまで [任意の音 v] の音を鳴らす
 
[playing v] を [false] にする
 
</scratchblocks>
 
|-
 
||<sb>play 音 [ v] for (1) beats::音</sb>
 
|<scratchblocks>
 
[任意の音 v] の音を鳴らす
 
rest for (1) beats
 
stop all 音s
 
</scratchblocks>
 
|-
 
||<sb>(instrument::音)</sb>
 
|<scratchblocks>
 
ずっと
 
instrument を (instrument) にする
 
</scratchblocks>
 
|-
 
||<sb>change item (1 v) of [ v] by (1)::リスト</sb>
 
|<scratchblocks>replace item (1 v) of [任意のリスト v] with ((item (1 v) of [任意のリスト v]) + (1))</scratchblocks>
 
|-
 
||<sb>もし <> なら、ずっと {}::control</sb>
 
|<scratchblocks>
 
ずっと
 
もし <> なら
 
</scratchblocks>
 
|-
 
||<sb>(::obsolete) がクリックされたとき::hat events</sb>
 
|<scratchblocks>
 
ずっと
 
タイマーをリセット
 
end
 
[タイマー v] > (0.1) のとき
 
...
 
</scratchblocks>
 
|-
 
||<sb>When (10) + (10) = (10)::hat operators</sb>
 
|<scratchblocks>
 
もし <((10) + (10)) = [10]> なら
 
</scratchblocks>
 
|-
 
||<sb><<> xor <>::operators></sb>
 
|<scratchblocks>
 
<<<bool> = <other bool>> ではない>
 
</scratchblocks>
 
|}
 
[[カテゴリ:一覧|代用ブロック]]
 
[[カテゴリ:ブロック]]
 
 
 
[[en:List of Block Workarounds]]
 

2019年8月12日 (月) 17:23時点における最新版

このきじは ひらがなのページがありません。ごめんなさい。
この記事は、ブロックを使わずにその機能を再現するスクリプト代用ブロック一覧である。 これらは、どのようにブロックが動作するかを理解し、別のプログラミング言語でブロックを再作成するために使用することができる。


目次

Warning 警告: ページによっては重いものがあります。スマートフォンなどの一部のブラウザでは読み込みきれない可能性があります。

現行バージョンに含まれるブロックの代用ブロック

現行バージョンに無いブロックの代用ブロック

「廃止されたブロック」などからこちらに来られた方は以下リンクからお選びください。