スクラッチでオンラインゲームを作る④ マイナスに対応する

スクラッチでオンラインゲームを作る④ マイナスに対応する
グリフパッチ(動画)
ok-scratch(解説記事)

和訳解説は動画作者のグリフパッチさんご本人から許可をいただいて掲載しております。
チャンネルはYOUTUBE ( by griffpatch )からどうぞ。

マイナスの値に対応しつつ、さらにクラウド変数に割り当てて同期をテストするところまで一気に行くぞ!
スターター
プロジェクト
なし
難しさ

任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。

LOADING...

※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。

スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。

前回(ぜんかい)はデコードを実装(じっそう)したぞ!エンコードされて意味(いみ)のあるカタマリになった文字列(もじれつ)分解(ぶんかい)して、(もと)のデータに(なお)処理(しょり)ができたわけだ。これをX座標(ざひょう)とY座標(ざひょう)反映(はんえい)すれば同期(どうき)処理(しょり)完成(かんせい)するんだけど、ちょっと()って。スクラッチの座標(ざひょう)はマイナスも普通(ふつう)(はい)ってくるよね。マイナスって「-10」とかなんだけど、ここでクラウド変数(へんすう)のルールの1つを(おも)()してほしい。そう、クラウド変数(へんすう)には数字(すうじ)しか(はい)らなくて、文字(もじ)記号(きごう)(はい)らないんだったね。つまり「-10」の「-」マイナス部分(ぶぶん)はクラウド変数(へんすう)には(はい)らないんだよ!そこで、今回(こんかい)作戦(さくせん)発表(はっぴょう)する!マイナスはゼロに置換(ちかん)して無理(むり)やりエンコード・デコードする大作(たいさく)(せん)だ!つまり、「-10」じゃ「010」にして送信(そうしん)する、そして「010」を「-10」として受信(じゅしん)するってことだ。
スクラッチでオンラインゲームを作る④ マイナスに対応するを語るok-scratch ok-scratch

\u003cp\u003e1文字(もじ)()が0から(はじ)まっていたらマイナスを意味(いみ)するというルールってことだね。こういうプロジェクト(ない)のルールを「仕様(しよう)《しよう》」って()ぶよ。\u003c/p\u003e

エンコードを改修(かいしゅう)する

まずはエンコードから(なお)そう。ゼロより(ちい)さいときはマイナスをゼロに置換(ちかん)する処理(しょり)追加(ついか)するよ。

マイナスかどうかを調(しら)べる

ブロック定義(ていぎ)「エンコードする」に処理(しょり)追加(ついか)していくぞい。

条件(じょうけん)分岐(ぶんき)ブロックを追加(ついか)する

調(しら)べるといえば「もし~なら」という条件(じょうけん)分岐(ぶんき)ブロックだね!

条件(じょうけん)(しき)追加(ついか)する

0より(ちい)さければマイナスだね。
引数(ひきすう)も「()」って名前(なまえ)だから()かりづらいけど、条件(じょうけん)(しき)使(つか)っているのはオレンジ(しょく)変数(へんすう)()」だよ。

マイナスを0で置換(ちかん)する

どうやって実現(じつげん)しようか?(かんが)(かた)としてはマイナスを除去(じょきょ)してから0をくっつけるという手順(てじゅん)だよ。

絶対値(ぜったいち)(もと)める

マイナスを除去(じょきょ)するには絶対値(ぜったいち)演算(えんざん)ブロックを使(つか)うと便利(べんり)だよ。
絶対値(ぜったいち)だから、「-10」なら「10」ってなるよ。

0とくっつける

「りんごとバナナ」ブロックで0を(まえ)にくっつけよう!
で、こうなる↓
これで「-10」が「10」になって、先頭(せんとう)に「0」をくっつけて「010」になるね!イェイ。

変数(へんすう)()」にセットする

これでエンコード(がわ)はいいね。

テスト

エンコードに(わた)()を-10にしてからクリックでテストしよう。
よっしゃ!いい(かん)じだね。エンコード文字列(もじれつ)()ると3010になってるね。3の(うし)ろに(つづ)く3つの数字(すうじ)意味(いみ)のあるカタマリって()かるね。ナイスぅ!

デコードを改修(かいしゅう)する

(つぎ)はデコード(がわ)(なお)していこう。このままだと010は010として()()ってしまうので、-10に(なお)して()()るようにしていくぞ。

マイナスかどうかを調(しら)べる

ブロック定義(ていぎ)順番(じゅんばん)にデコードする」を(なお)していこう。

条件(じょうけん)分岐(ぶんき)ブロックを追加(ついか)する

処理(しょり)最後(さいご)追加(ついか)するよ。

条件(じょうけん)(しき)追加(ついか)する

文字(もじ)()が0から(はじ)まってたらマイナスっていう仕様(しよう)だったね。
で、こうなる↓

マイナスに変換(へんかん)する

先頭(せんとう)の0は(とく)意識(いしき)しなくても大丈夫(だいじょうぶ)強引(ごういん)()(ざん)しちゃおう!
スクラッチでオンラインゲームを作る④ マイナスに対応するを語るok-scratch ok-scratch

u003cpu003eスクラッチなら先頭(せんとう)の0は無視(むし)しても大丈夫(だいじょうぶ)だけど、Javascriptとかだとしっかり処理(しょり)をしないと計算(けいさん)できないこともあるよ。そのあたりは(かく)言語(げんご)(まな)ぶときに方法(ほうほう)(ろん)(まな)べば大丈夫(だいじょうぶ)。u003c/pu003e

テストする

おお!ちゃんとマイナスに(もど)ってるぅ!最高(さいこう)

クラウド変数(へんすう)にエンコード文字列(もじれつ)をセットする

この(いきお)いでクラウド変数(へんすう)()をセットする処理(しょり)(つく)って、(うご)きの同期(どうき)まで(ため)してみよう!

準備(じゅんび)する

まずテスト(よう)使(つか)ってたクラウド変数(へんすう)まわりのブロックを()そう。

エンコード文字列(もじれつ)初期(しょき)()する

座標(ざひょう)をエンコードする

X座標(ざひょう)とY座標(ざひょう)をエンコードしよう。

X座標(ざひょう)をエンコードする

Y座標(ざひょう)をエンコードする

クラウド変数(へんすう)をセットする

エンコード文字列(もじれつ)をクラウド変数(へんすう)にセットするぞ!

クラウド変数(へんすう)をデコードして同期(どうき)する

よしよしよし、この調子(ちょうし)()くぞ!つぎは数字(すうじ)キー「2」を()したときの処理(しょり)(なお)していくぞ。

準備(じゅんび)する

()かりにくいからいったんテスト(よう)のブロックは()す。
(はず)してどこかに()いといてもOK。

変数(へんすう)「エンコード文字列(もじれつ)」を更新(こうしん)する

(おく)られてくるクラウド変数(へんすう)1の()を、変数(へんすう)「エンコード文字列(もじれつ)」にセットする。
スクラッチでオンラインゲームを作る④ マイナスに対応するを語るok-scratch ok-scratch

u003cpu003e「え?さっきクラウド変数(へんすう)1をエンコード文字列(もじれつ)にしたのに、ここではエンコード文字列(もじれつ)をクラウド変数(へんすう)1にするの?」と(おも)うかもしれない。でも今回(こんかい)数字(すうじ)キー2を()した(がわ)作品(さくひん)だってことを(おも)()して。こっちではクラウド変数(へんすう)1をエンコード文字列(もじれつ)にする処理(しょり)()まってるから問題(もんだい)ないんだ。u003c/pu003e

変数(へんすう)「エンコード文字(もじ)順番(じゅんばん)」を初期(しょき)()する

デコードの準備(じゅんび)として変数(へんすう)「エンコード文字(もじ)順番(じゅんばん)」を1で初期(しょき)()しておこう。

デコードする(1(かい)()

デコードするぞ!
これで変数(へんすう)()」に1つ()のカタマリ、つまりX座標(ざひょう)のデータが(はい)った!

X座標(ざひょう)をセットする

この()をそのままX座標(ざひょう)()()てよう。

デコードする(2(かい)()

もういっちょ!(つぎ)はY座標(ざひょう)意味(いみ)するカタマリをデコードするぞ。そして変数(へんすう)()」をY座標(ざひょう)にセットするところまでやってみよう。

同期(どうき)をテストする

さあどうなるかな……。そうだ、BeforeとAfterが()かるようにクラウド変数(へんすう)を2つ使(つか)ってるときのテスト結果(けっか)()せておくね。

クラウド変数(へんすう)2つ使(つか)ったテスト結果(けっか)

エンコード・デコードを実装(じっそう)したテスト結果(けっか)

スクラーーーーーッチ、レボリューーーーーーーションっ!スーパー改善(かいぜん)したね!

次回(じかい)

え?(つぎ)があるの?もうけっこうスムーズな同期(どうき)実現(じつげん)できたんですけど?いやいやいや、(ぼく)たちが目指(めざ)(たか)みはこんなもんじゃあありません。もっと(うえ)()く。スクラッチオンラインゲームの最高峰(さいこうほう)まで()くぞ!トップクラスのスクラッチオンラインゲームの(つく)(かた)(とど)けるから、まだまだこれからだ。ブクマして()っててくれ!
ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!

スクラッチプログラミングのゲーム攻略

スクラッチプログラミングのゲーム

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品