Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

15パズル

2018/02/12 15:12:02

15パズル

永谷 弘宣

永谷 弘宣

15パズルは、駒を移動させて目的の配置まで持っていくパズルゲームです。

【ルール】
縦 4 x 横 4 の 16 マスのスペースに、 1 ~ 15 の数字が書かれた 15 個の駒が配置されています。
1 マスの空白を利用して駒をスライドさせ、駒を移動することができます。
駒が下記の配置となればゲームクリアです。

  1 2 3 4
  5 6 7 8
  9 10 11 12
  13 14 15

【操作】
矢印 : 現在位置を移動させる(現在位置は "*" で示されています)
SPACE : 駒をスライドして移動させる

【注意】
初期化の時間短縮のため、実行してから遊べるようになるまでの間はビデオ出力をオフにしています。

この挙動が気になるようでしたら 10 行目の "VIDEO0" と 100 行目の "VIDEO1" の記述を削除して下さい。
初期化の時間が若干伸びますが、ビデオ出力は常にオンのままとなります。
(Kidspod運営チーム様、ご指摘ありがとうございます)

【更新履歴】
2018/02/12 初版公開
2018/02/15 駒の初期配置がゲームクリア不可能な配置にならないよう修正( Thanks to IchigoJam-FAN の皆様)

【ソースコード解説】
《変数》
C : Character, 現在位置を示すキャラクタ
P : Position, 現在位置( 0 ~ 15 )
S : Space, 空白位置( 0 ~ 15 )
K : Key, キー入力値
R : Random, 一時変数(駒の配置を崩すために利用)
T : Temporary, 一時変数(駒の移動に利用)
U,V : 一時変数(駒を移動できるかどうかの判定に利用)
Z : 一時変数(ゲームクリアの判定に利用)
I,J,L : Iterator, ループ変数

《配列》
[0] ~ [15] : 駒の配置

《コード》
5 : タイトル
10 : 初期化
20 ~ 30 : 駒の枠の定義
40 : 駒の初期配置
50 ~ 90 : 駒の配置を崩す
100 : ゲーム開始時の初期設定
110 : キー入力受付
120 : SPACEキー押下時の処理
130 : 矢印キー押下時の処理
140 ~ 180 : 駒を移動できるかどうかの判定
190 : 駒の移動
200 ~ 220 : 駒の描画
230 : 現在位置の描画
240 ~ 250 : ゲームクリア判定

GOOD

Programmers marked as favorites.1 programmers

Kidspod運営チーム
Kidspod運営チーム
2018/02/23 17:57:12