スポンサーリンク
Scratch

スクラッチ(scratch)でトランプを配る part2(格好良く配ろう)

Scratch
楽天ブックス
¥2,948 (2022/05/30 00:11時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場

絵柄トランプのプログラム

絵柄のトランプのプログラムを作っていきます。
このスプライトのプログラムは大きく3つです。
一つは、
スプライトごとにカードのマークと数字が区別できるように変数を作っていきます。
二つ目は、
トランプを配るプログラムです。
三つめは、
不要になった絵柄トランプを消すプログラムです。

この解説では1つの絵柄トランプの説明だけします。
同じように、残り51枚の絵柄トランプのスプライトにプログラムを作ってください。

また、変数名に(ローカル)と付いているものは、必ずスプライトごとに手作業で作ってください(他スプライトからコピペしないでください)

コピーで作らないで!

52個のスプライトに同じようなプログラムを作っていくので、ちょっと大変です。
楽をするために、コピー&ペーストで作って行きたくなりますが、気を付けることがあります。
「マーク+数字(ローカル)」などの”このスプライトのみ”で作った変数をコピーするとおかしなことになります。
例えば、スペードの1スプライトで”このスプライトのみ”で作った変数を、ハートの1にコピーしたとします。
ハートの1の中で扱われる「マーク+数字(ローカル)」はスペードの1の変数を使っていることになってしまうのです。
面倒ですが、”このスプライトのみ”の変数はスプライトごとに手作業で作ってください。

初期処理

52個のスプライトがトランプとして識別できるように変数を作っていきます。

まずは、配る前の絵柄トランプは隠してしまいましょう。
初めは裏返した状態で見えていればいいので、絵柄トランプのスプライトは隠しておくのがかっこいいです。

スプライトの位置はどこでもいいのですが、x=0、y=0にまとめておきましょう。

変数「マーク+数字(ローカル)」は「このスプライトのみ」で作ってください。

この変数には、トランプのマークと数字が区別できるように変数を設定していきます。
マークはアルファベット1文字で表現します。
S→スペード
C→クラブ
D→ダイア
H→ハード
続けて、数字を付けてトランプを表現します。

例えば
スペードの1の場合「S1」
ハートの13の場合「H13」
と変数い入れていきます。

トランプを配る

絵柄トランプを配るプログラムを作っていきます。
同じプログラムを52枚の絵柄トランプに作ってください。
コピペで作ると、「このスプライトのみ」で作った変数が上手く動かなくなるので、面倒ですが一つずつ作ってください。

緑ボタンが押されたときに、リスト「配ったカード」に入っているカードの場合に、裏カードの下に配っていくプログラムになっています。


緑ボタンスプライトが押されたとき、「配るを送る」が実行されます。
緑ボタンのスプライト側で変数「配った枚数」を1ずつ変えなかが、5回実行されます。

「もし マーク+変数(ローカル) = 配ったカード の 配った枚数番目 なら」の部分で、自分のスプライトが配る対象になっているかチェックしています。
変数「マーク+数字(ローカル)」には自分の絵柄トランプのマークと数字が入っています。


これがリスト「配ったカード」に入っていれば該当するわけです。
リスト「配ったカード」には5枚の分のカードが入っています。
変数「配った枚数」番目でリストの先頭から順番に探しています。

もし、該当するカードだった場合に実際の配る処理をやっていきます。

まず、裏カードに隠れるように置きたいので「最平面へ移動する」を実行しておきます。


変数「カード位置(ローカル)」にどこの場所に配置するか計算します。
計算の内容は裏カードと同じです。
いらすとやの素材を大きさ45で使う場合は、この計算式がちょうどいいです。


絵柄カードの位置を変数「カード位置(ローカル)」の場所に移動させます。


絵柄カードはもともと「隠す」にしているので「表示する」に変えます。


実際に絵柄トランプが表示されるのは、裏カードのひっくり返すプログラムが実行されたときです。

絵柄トランプを消す

次のトランプを配るときには、今配っているトランプは邪魔なので消します。

緑ボタンのスプライトがクリックされたときに「消すを送る」が実行されます。
この時実行されるプログラムです。
自分の絵柄カードがリスト「配ったカード」に含まれていたら「隠す」を行います。

楽天ブックス
¥2,948 (2022/05/30 00:11時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場

コメント

タイトルとURLをコピーしました