Minecraft【作るゲーム】 スロットマシンv1.1。

2024-03-02

Java版1.19.4、統合版はv1.19.83で動作確認。

「Coin」でデジタルリールを回して絵柄を揃える!スコアボードを使ったスロットマシンを作成。 

スロットマシンv1.1。

スコアボードで作る通貨「Coin」で遊べる、3リール1ラインのスロットマシンです。「Coin」を消費して絵柄を回転し、ボーナスを狙ってボタンで停止。絵柄が揃うと「Coin」が増えるミニゲームです。 スロットマシンv1.1では、絵柄やリール配列の数を減らし、回路をシンプルにしました。

演出部分を無くせば、さらに簡単に作ることが出来ます。スコアボード「Coin」、「当たり判定回路」の全てを使わない。「プレイエリア」景品スイッチの①〜⑧、開始レバーと停止ボタンの①③のコマンドを無くしても動作します。

◻︎装置の特徴
・tick(ティック)を使ったループ式抽選装置。
・execute if blocksを使った判定回路。

 

完成動画(旧式)

 

 

目次

1.作成準備
・フラットワールド。
・チャットコマンド。
2.コマンドブロックの設置
3.装置全体図
・アイテムショップの装置全体図。
4.デジタルリール
・ディスプレイ。・スコアボードの作成。・ループコマンド。
5.スロット装置
・リール配列。・クローン元座標の確認。・左リール出力。・中リール出力。・右リール出力。
6.当たり判定回路
・リプレイとチェリー。・BIGとBAR。
7.プレイエリア
・景品スイッチ。・開始レバーと停止ボタン。・仕上げ。
8.操作方法
9.ワールドデータとスキン
・完成データのダウンロード。・スロットマシンv1.1スキン

 

更新履歴
2023-2-4/新設計!回路を簡単にして、統合版の新コマンドにも対応しました。

 

作成準備

フラットワールド。

マインクラフトのバージョンも上がり、フラットワールドの作成が簡単になりました。 詳しくは、下記の関連記事を参考に作成してください。

 

 

 

チャットコマンド。

チャットに大量のコマンドログが流れ、装置作成の邪魔になるのでログを非表示にしておきます。 ※Java版では、新規ワールド作成時にも非表示に出来ます。

◻︎コマンドログの非表示 ※表示する場合 「false」を「true」に変更。

/gamerule commandBlockOutput false

装置作成に必要なコマンドブロックを手に入れます。

◻︎コマンドブロックの入手

/give @s command_block

 

コマンドブロックの設置

Java版と統合版では、コマンドやブロックの名称など違いがあります。
装置の解説はJava版の名称で統一しています。

コマンドブロックは画像に合わせて配置。「ブロックの種類」「レッドストーン」を変更します。変更がある場合は、個別に解説していきます。

配置したコマンドブロックの状態/すべて無条件
※()内は統合版の名称。

コマンドブロックの色 ブロックの種類 レッドストーン
黄色 インパルス
(衝撃)
動力が必要
(レッドストーンが必要)
青色 チェーン 常時実行
(常にアクティブ)
紫色 リピート
(反復)
常時実行
(常にアクティブ)

 

装置全体図

スロットマシンv1.1の装置全体図。

フラットワールドを作成したら、座標(0 -60 0)へ移動して開花したツツジの葉を設置。装置は開始点座標(0 -60 0)を基準に、南が正面がになるよう設置にしています。座標を合わせてブロックを設置していくと、コマンドはコピー&ペーストで作れます。

開始点は座標(0 -60 0)。防具立ての座標「L」(5 -60 7)、「C」(9 -60 7)、「R」(12 -60 7)。 ※プレイエリアとスロット装置は重なっています。

❶プレイエリア ❷スロット装置 ❸当たり判定回路

◻︎南向きを確認するには
ストラクチャーブロックを設置して、境界線の青い線が伸びる方が南。※赤い線は東。
/give @s structure_block

 

防具立ての設置。

チャットコマンドを使って、名前を付けた防具立てを3つ設置します。左リール「L」、中リール「C」、右リール「R」。

【Java版】

/summon armor_stand 5 -60 7 {CustomName:"\"L\""}
/summon armor_stand 9 -60 7 {CustomName:"\"C\""}
/summon armor_stand 12 -60 7 {CustomName:"\"R\""}

【統合版】

/summon armor_stand L 5 -60 7
/summon armor_stand C 9 -60 7
/summon armor_stand R 12 -60 7

 

デジタルリール

ディスプレイ。

ディスプレイを3つ作ります。

「あ」は座標(2 -57 12)、「A」は座標(6 -57 9)、「B」は座標(8 -55 9)、「C」は座標(2 -57 11)、「D」は座標(6 -57 11)、「E」は座標(10 -57 11)。※カラーコンクリートは目安。

ボーナス画像を参考に3×3ブロックの絵柄を作り、番号順にレッドストーンブロックを設置。 ①BIG(7)、②BAR(クリーパーの顔)、③Apple(リンゴ)、④Cherry(チェリー)、⑤Replay(リプレイ)、⑥Note(音符)。

「あ」の座標から3×3ブロックのレッドストーンランプを設置。1ブロック間を空けて中リール、右リールも作ります。①〜⑥のレッドストーンブロックをクローンして、各種ランプを光らせます。

①の絵柄「A」から「B」の範囲座標を確認(クローン元)。左リールは「C」、中リールは「D」、右リールは「E」の座標を確認(クローン先)。

 

スコアボードの作成。

2種類のスコアボードを作成。「reel」は、防具立てに数字持たせループします。「Coin」はスコアボード通貨として使用。装置が完成するまで「reel」をサイドバーに表示しておきます。※確認用

【Java版/統合版 共通】

/scoreboard objectives add reel dummy
/scoreboard objectives add Coin dummy
/scoreboard objectives setdisplay sidebar reel

◻︎削除する場合。
/scoreboard objectives remove reel
/scoreboard objectives remove Coin

 

ループコマンド。

tick(ティック)を使ったループ式抽選装置を3つ作ります。※ディスプレイは非表示にしてあります。

「い」は座標(5 -60 12)、「う」は座標(7 -60 12)、「え」は座標(9 -60 12)。「お」は範囲座標(5 -60 14)、(9 -60 14)。①④⑧は動力が必要(レッドストーンが必要)に変更。①〜⑨のコマンドブロックは地面下に設置。

【Java版/統合版 共通】

①scoreboard players add @e[name=L] reel 1
②scoreboard players set @e[name=L,scores={reel=6..}] reel 1
③setblock 5 -60 15 air
④scoreboard players add @e[name=C] reel 1
⑤scoreboard players set @e[name=C,scores={reel=6..}] reel 1
⑥setblock 7 -60 15 air
⑦scoreboard players add @e[name=R] reel 1
⑧scoreboard players set @e[name=R,scores={reel=6..}] reel 1
⑨setblock 9 -60 15 air

防具立て「LCR」に「reel」を追加し、1〜5の数字をループします。「reel」が6以上になったら1に戻します。②⑤⑦はコマンド入力後、カラーコンクリート向きにレッドストーンコンパレーターを設置。③⑥⑨は1ブロック上の座標を入力。信号がある時、空気ブロックに置き換えます。

 

スロット装置

リール配列。

4つのボーナスと2つのはずれ絵柄組み合わせ、デジタルリールを作成。絵柄は合計で6つありますが、コマンドに合わせて5つの絵柄をループします。※ボーナス以外の絵柄が揃わないように注意。

◻︎デジタルリール、ボーナス画像を参考。
【BIG】数字の7を3つ揃えたらビッグ当たり。
【BAR】数字の7が2つと右リールがクリーパーの顔でレギュラー当たり。
【Cherry】チェリーは1個出れば小当たり。
【Replay】Rが1個出れば、Coinを使わず絵柄が回転。
【Apple/Note】はずれ絵柄。

 

クローン元座標の確認。

リール配列表に合わせて、レッドストーンブロックをランプの後ろにクローンします。クローン元の座標を確認しておきます。

◻︎デジタルリール、ディスプレイ画像を参考。
クローン元のレッドストーンブロックは「A」から「B」の範囲座標が分かれば、Z座標を1減らすだけ作れます。 「~ ~ ~」には、クローン先の座標をリールに合わせて入力します。

【Java版/統合版 共通】クローン元の座標。

①clone 6 -57 9 8 -55 9 ~ ~ ~
②clone 6 -57 8 8 -55 8 ~ ~ ~
③clone 6 -57 7 8 -55 7 ~ ~ ~
④clone 6 -57 6 8 -55 6 ~ ~ ~
⑤clone 6 -57 5 8 -55 5 ~ ~ ~
⑥clone 6 -57 4 8 -55 4 ~ ~ ~

①BIG(7)②BAR ③Apple ④Cherry ⑤Replay ⑥Note

 

左リール出力。

カラーコンクリートに信号がある時、ホッパークロックで信号を遅らせ、デジタルリールに絵柄を出力。信号がオフになった時、絵柄がズレないように①にもう一度信号を送ります。※ディスプレイは非表示にしてあります。

「い」は座標(5 -60 12)。①は動力が必要(レッドストーンが必要)に変更。ホッパーにはアイテムを1個入れておきます。矢印はホッパーの向き。

【Java版/統合版 共通】左リール。

①execute if entity @e[name=L,scores={reel=1..1}] run clone 6 -57 8 8 -55 8 2 -57 11
②execute if entity @e[name=L,scores={reel=2..2}] run clone 6 -57 5 8 -55 5 2 -57 11
③execute if entity @e[name=L,scores={reel=3..3}] run clone 6 -57 9 8 -55 9 2 -57 11
④execute if entity @e[name=L,scores={reel=4..4}] run clone 6 -57 8 8 -55 8 2 -57 11
⑤execute if entity @e[name=L,scores={reel=5..5}] run clone 6 -57 4 8 -55 4 2 -57 11

①BAR ②Replay ③BIG(7)④BAR ⑤Note

防具立て「L」の「reel」の数字(1〜5)に合わせて、クローンコマンドを実行。※クローン元の座標はリール配列表に合わせて変わります。

 

中リール出力。

「う」は座標(7 -60 12)。①は動力が必要(レッドストーンが必要)に変更。ホッパーにはアイテムを1個入れておきます。矢印はホッパーの向き。

【Java版/統合版 共通】中リール。

①execute if entity @e[name=C,scores={reel=1..1}] run clone 6 -57 4 8 -55 4 6 -57 11
②execute if entity @e[name=C,scores={reel=2..2}] run clone 6 -57 9 8 -55 9 6 -57 11
③execute if entity @e[name=C,scores={reel=3..3}] run clone 6 -57 7 8 -55 7 6 -57 11
④execute if entity @e[name=C,scores={reel=4..4}] run clone 6 -57 6 8 -55 6 6 -57 11
⑤execute if entity @e[name=C,scores={reel=5..5}] run clone 6 -57 9 8 -55 9 6 -57 11

①Note ②BIG(7)③Apple ④Cherry ⑤BIG(7)

防具立て「C」の「reel」の数字(1〜5)に合わせて、クローンコマンドを実行。※クローン元の座標はリール配列表に合わせて変わります。

 

右リール出力。

「え」は座標(9 -60 12)。①は動力が必要(レッドストーンが必要)に変更。ホッパーにはアイテムを1個入れておきます。矢印はホッパーの向き。

【Java版/統合版 共通】右リール。

①execute if entity @e[name=R,scores={reel=1..1}] run clone 6 -57 7 8 -55 7 10 -57 11
②execute if entity @e[name=R,scores={reel=2..2}] run clone 6 -57 8 8 -55 8 10 -57 11
③execute if entity @e[name=R,scores={reel=3..3}] run clone 6 -57 5 8 -55 5 10 -57 11
④execute if entity @e[name=R,scores={reel=4..4}] run clone 6 -57 9 8 -55 9 10 -57 11
⑤execute if entity @e[name=R,scores={reel=5..5}] run clone 6 -57 7 8 -55 7 10 -57 11

①Apple ②BAR ③Replay ④BIG(7)⑤Apple

防具立て「R」の「reel」の数字(1〜5)に合わせて、クローンコマンドを実行。※クローン元の座標はリール配列表に合わせて変わります。

 

当たり判定回路

リプレイとチェリー。

レッドストーンブロックが置かれた時、コマンドを実行します。

「F」は座標(1 -60 5)。「G」は座標(13 -60 5)。「か」は範囲座標(1 -60 5)、(13 -60 5)。「G」横のレッドストーンリピーター(反復装置)は3回クリック。

【Java版】

①playsound entity.dolphin.play player @a 7 -59 16
②scoreboard players add @p Coin 10
③fill 5 -60 14 9 -60 14 air
④fill 1 -60 5 13 -60 5 air
⑤fill 5 -60 14 9 -60 14 redstone_block

【統合版】②③④⑤はJava版と同じ。

①playsound mob.dolphin.play @a 7 -59 16

【チェリー】
①プレイエリアで、イルカの鳴き声を再生。
②プレイヤーに「Coin」を10追加。

【リプレイ】◻︎デジタルリール、ループコマンド画像を参照。
③「お」の範囲座標に空気ブロックを設置。
④「か」の範囲座標に空気ブロックを設置。
⑤「お」の範囲座標にレッドストーンブロックを設置。

 

BIGとBAR。

execute if blocksを使って、AND回路のような装置を作ります。「H、I、J、K、L」に置いてあるレッドストーンブロックと「右、中、左、匠」に置かれたレッドストーンブロックを比較して、同じだったら信号を出します。※「K、L」は共有。

「左」は座標(3 -60 5)、「中」は座標(4 -60 5)、「右」は座標(5 -60 5)、「匠」は座標(7 -60 5)。「HIJKL」の範囲座標は省略。※下記コマンドに記入あり。

【Java版】

①execute if blocks 9 -60 0 11 -60 0 3 -60 5 all
②execute if blocks 9 -60 1 11 -60 1 3 -60 5 all
③execute if blocks 9 -60 2 11 -60 2 3 -60 5 all
④title @a title {"text":"リーチ!","bold":true}
⑤execute if blocks 9 -60 3 11 -60 3 3 -60 5 all
⑥playsound entity.firework_rocket.twinkle player @a 7 -59 16
⑦scoreboard players add @p Coin 30
⑧execute if blocks 9 -60 0 13 -60 0 3 -60 5 all
⑨playsound entity.cat.ambient player @a 7 -59 16
⑩scoreboard players add @p Coin 20

【統合版】①②③⑤⑦⑧はJava版と同じ。

④title @a title リーチ!
⑥playsound firework.twinkle @a 7 -59 16
⑨playsound mob.cat.meow @a 7 -59 16

【リーチ】
「K」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
「J」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
「I」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
④タイトルに「リーチ!」と表示。

【BIG】
「H」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
⑥プレイエリアで、花火の音を再生。
⑦プレイヤーに「Coin」を30追加。

【BAR】
「L」の範囲座標と比較先「左」〜のブロックが同じなら信号を出す。
⑥プレイエリアで、猫の鳴き声を再生。
⑦プレイヤーに「Coin」を20追加。

 

プレイエリア

景品スイッチ。

防具立て「LCR」の「reel」が当たりのスコアになった時、当たり判定回路にレッドストーンブロックを置きます。ループコマンド装置にコマンドブロックを追加します。

①〜⑧のコマンドブロックは地面下。①③⑥には矢印の方向に粘着(吸着)ピストンを設置。「き、く」には音符ブロックを設置。「く」の音符ブロックは3回クリック。

【Java版/統合版 共通】

①execute if entity @e[name=L,scores={reel=2..2}] run setblock 13 -60 5 redstone_block
②execute if entity @e[name=L,scores={reel=3..3}] run setblock 3 -60 5 redstone_block
③execute if entity @e[name=C,scores={reel=2..2}] run setblock 4 -60 5 redstone_block
④execute if entity @e[name=C,scores={reel=4..4}] run setblock 1 -60 5 redstone_block
⑤execute if entity @e[name=C,scores={reel=5..5}] run setblock 4 -60 5 redstone_block
⑥execute if entity @e[name=R,scores={reel=2..2}] run setblock 7 -60 5 redstone_block
⑦execute if entity @e[name=R,scores={reel=3..3}] run setblock 13 -60 5 redstone_block
⑧execute if entity @e[name=R,scores={reel=4..4}] run setblock 5 -60 5 redstone_block

◻︎スロット装置のリール配列表、当たり判定回路のリプレイとチェリー、BIGとBAR画像を参考。
【左リール】
①防具立て「L」の「reel」が2の時、「G」にレッドストーンブロックを設置。
②防具立て「L」の「reel」が3の時、「左」にレッドストーンブロックを設置。

【中リール】
③防具立て「C」の「reel」が2の時、「中」にレッドストーンブロックを設置。
④防具立て「C」の「reel」が4の時、「F」にレッドストーンブロックを設置。
⑤防具立て「C」の「reel」が5の時、「中」にレッドストーンブロックを設置。

【右リール】
⑥防具立て「R」の「reel」が2の時、「匠」にレッドストーンブロックを設置。
⑦防具立て「R」の「reel」が3の時、「G」にレッドストーンブロックを設置。
⑧防具立て「R」の「reel」が4の時、「右」にレッドストーンブロックを設置。

 

開始レバーと停止ボタン。

「Coin」を消費して、デジタルリールを回転するレバーと、ボタンで止めるスイッチを作ります。

①の上に金ブロックとレバーを設置。②は条件付きに変更。粘着(吸着)ピストンの上に銅ブロックとボタンを設置。

【Java版/統合版 共通】

①execute if entity @p[scores={Coin=5..}] run scoreboard players remove @p Coin 5
②fill 5 -60 14 9 -60 14 redstone_block
③fill 1 -60 5 13 -60 5 air

◻︎当たり判定回路、リプレイとチェリー画像を参考。
①プレイヤーの「Coin」が5以上の時、「Coin」を5引く。
②①が実行された時「お」の範囲座標にレッドストーンブロックを設置。
③「か」の範囲座標に空気ブロックを設置。

 

仕上げ。

デジタルリールをブロックで囲い、スロットマシンを仕上げます。

 

操作方法

「Coin」が5以上ある時、レバーを下げるとデジタルリールが回転。銅ブロックに付いたボタンでリールを止め絵柄を揃えます。※「Coin」が5以下の時、ルーレットは動きません。

【Java版/統合版 共通】サイドバー表示と「Coin」の入手コマンド。

/scoreboard objectives setdisplay sidebar Coin
/scoreboard players add @p Coin 30

 

ワールドデータとスキン

完成データのダウンロード。

完成データでは、座標(0 -60 9)にリセットボタンを設置してあります。また座標(14 -69 16)には「Coin」の追加ボタンを設置。スコアボードも作成されます。

【統合版】 v1.19.83 アプリで開くから、Minecraftを選びます。
ダウンロード/スロットマシンv1.1.mcworld

【Java版】 1.19.4 zipを解凍して、フォルダを「saves」に入れて起動します。
ダウンロード/スロットマシンv1.1.zip

※二次配布は禁止です。

 

スロットマシンv1.1スキン。

スティーブタイプ 64×64px Skin
ダウンロード/ slot_s0ch