ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE 15パズルV1.10 /ぺた (02/01/15(Tue) 21:25) [222]
......MESSAGE (祝)新バージョン /ムロジェク (02/01/15(Tue) 22:13) [223]


親記事 / ▼[ 223 ]
NO.222  15パズルV1.10
□投稿者/ ぺた -(2002/01/15(Tue) 21:25:45)
□U R L/
「15パズル」をバージョンアップしました。
主な項目は
 ・メニューの追加(やりなおし、保存(1件のみ)、読み込み等)
 ・画像モードの追加
 ・ハイスコアの記録(ノーマルモード、画像モードそれぞれ別に記録)
です。
画像モードは、あえて完成画像を見せないことにしたので意外と難しくなりました。
(自分で作っといて、最初のプレイで8分以上かかってしまった(^^;)

あと、他にご提案いただいた、スクリーンセーバ、マウスで移動などは、
次回に持ち越しとさせてください。m(_ _)m
またご意見などありましたらお願いします。
-----------------------------------------------
{
【ソフト名】15パズル (バージョン 1.10)
【作 成 者】ぺた (連絡先:peta777@yahoo.co.jp)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.14
【転  載】可(転載条件:自由(ただし作者に連絡すると作者が喜びます))
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】有(15パズル.ini)
【コメント】暇つぶしにどうぞ

★★★★遊び方★★★★
カーソルキーでパネルを動かして、
以下の順番に並び替えればクリアーです。
┌─┬─┬─┬─┐
│1 │2 │3 │4 │
├─┼─┼─┼─┤
│5 │6 │7 │8 │
├─┼─┼─┼─┤
│9 │10│11│12│
├─┼─┼─┼─┤
│13│14│15│■│
└─┴─┴─┴─┘

★★★★画像モードの遊び方★★★★
メニューの[モード選択]-[画像モード]を選んで、
フォルダ選択で画像のあるフォルダを指定してください。

■サンプル画像は、http://briefcase.yahoo.co.jp/peta777
 「15パズルサンプル画像」に置いてあります。

■自分で画像ファイルを作る場合は、以下のようにしてください。
 ・全体の大きさは、200×200ピクセル
 ・1つのパネルの大きさは、50×50ピクセル
 ・上の図と同じ並びで、1から15までのファイル名をつける
 ・対応する画像は、ひまわり標準の読込形式(bmp、jpg(jpeg)、png)と同じ
  【例】「1」にあたるJPG画像のファイル名→「1.jpg」
     「14」にあたるBMP画像のファイル名→「14.bmp」
 ・「■」にあたる画像は空きなので必要ない(あっても無視される)
}

*初期変数設定
手順数=0。
パズルモード=「ノーマル」。
タイトルノーマル=「15パズル V1.10(ノーマルモード)」。
タイトル画像=「15パズル V1.10(画像モード)」。

'クリアーになる配置
正解配置=「1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,0」。

'キー設定
左キー = 37。
上キー = 38。
右キー = 39。
下キー = 40。

'色設定
'パネル#(番号)=「(背景色),(文字色)」。
パネル#1=「#ffffcc,#990000」。
パネル#2=「#ffff00,#990000」。
パネル#3=「#ffcc00,#990000」。
パネル#4=「#ff9900,#ffffff」。
パネル#5=「#ffccff,#990000」。
パネル#6=「#ff66cc,#990000」。
パネル#7=「#ff0099,#ffffff」。
パネル#8=「#ff0000,#ffffff」。
パネル#9=「#ccffff,#990000」。
パネル#10=「#00ccff,#990000」。
パネル#11=「#6699ff,#ffffff」。
パネル#12=「#0000ff,#ffffff」。
パネル#13=「#ccffcc,#990000」。
パネル#14=「#00cc00,#ffffff」。
パネル#15=「#006600,#ffffff」。

*INIファイル設定
『15パズル.INI』が、存在するか。
もし、(それ=0)
   ならば(
      それ=「[ノーマルハイスコア]\n手順=-\n時間=-」&
      「\n[画像ハイスコア]\n手順=-\n時間=-」。
      それを、『15パズル.INI』へ、保存。
   )。

*画面設定
母艦の、タイトルは、タイトルノーマル。
母艦の、サイズは、(,,200,220)。
母艦の、リサイズは、オフ。
母艦の、キー押した時は、移動処理。
母艦を、中央へ移動。

'メニュー設定-「まいった!」
まいった!を、メニュー作成。

まいった!に、配置を最初に戻す[移動数・時間は戻りません]を、メニュー追加。
その、イベントは(
   配置=初期配置。
   描画処理へ、飛ぶ。
)。
まいった!に、配置を変えてやりなおすを、メニュー追加。
その、イベントは(
   手順数=0。
   ランダム配置へ、飛ぶ。
)。
まいった!に、区切り1Aを、メニュー追加。
その、テキストは、「-」。
まいった!に、保存しておくを、メニュー追加。
その、イベントは、保存処理。
まいった!に、読み込むを、メニュー追加。
その、イベントは、読み込み処理。
まいった!に、区切り1Bを、メニュー追加。
その、テキストは、「-」。
まいった!に、終了を、メニュー追加。
その、イベントは(
   おわり。
)。

'メニュー設定-「モード選択」
モード選択を、メニュー作成。
モード選択に、ノーマルモードを、メニュー追加。
その、イベントは(
   パズルモード=「ノーマル」。
   手順数=0。
   母艦の、タイトルは、タイトルノーマル。
   ランダム配置へ、飛ぶ。
)。
モード選択に、画像モードを、メニュー追加。
その、イベントは、画像フォルダ選択。

*ランダム配置
配置前=「」。
カウンタを、0から、15まで、繰り返す(
   配置前=配置前&カウンタ&「\n」。
)。
配置前を、配列シャッフル。
配置前=それ。
カウンタ=0。
配置=「」。
4回(
   4回(
      配置=配置&配置前#カウンタ&「,」。
      カウンタ=カウンタ+1。
   )。
   配置=配置&「\n」。
)。
初期配置=配置。

'タイマー開始・手順数クリア
開始時間=今。
手順数=0。

*描画処理
'描画処理
黒色で、画面クリア。
文字サイズ=16。
X位置=0。
Y位置=0。
X座標=0。
Y座標=0。
4回(
   4回(
      それ=配置#X位置#Y位置。
      もし、(それ=0)
         ならば(
            X空き位置=X位置。
            Y空き位置=Y位置。
      )違えば(
            もし、(パズルモード=「ノーマル」)
            ならば(
               塗り色=パネル#0#それ。
               文字色=パネル#1#それ。
               (X座標,Y座標)から、(X座標+50,Y座標+50)へ、四角形。
               (X座標+13,Y座標+13)へ、移動。
               それと、表示。
            )。
            もし、(パズルモード=「画像」)
               ならば(
                  (X座標,Y座標)へ、移動。
                  画像フォルダ&それ&画像拡張子を、画像表示。
            )。
         )。
      X位置=X位置+1。
    X座標=X座標+50。
      )。
   X位置=0。
   Y位置=Y位置+1。
   X座標=0。
   Y座標=Y座標+50。
)。

'正解チェック
X位置=0。
Y位置=0。
4回(
   4回(
      もし、(配置#X位置#Y位置<>正解配置#X位置#Y位置)
         ならば(
            正解=いいえ。
            抜ける。
         )違えば、正解=はい。
      X位置=X位置+1。
   )。
   もし、(正解=いいえ)
      ならば、抜ける。
   X位置=0。
   Y位置=Y位置+1。
)。
もし、(正解=はい)
   ならば、正解イベントへ、飛ぶ。
待機。

*移動処理
X増減=0。
Y増減=0。
もし、(押されたキー=左キー)
   ならば、X増減=1。
もし、(押されたキー=右キー)
   ならば、X増減=-1。
もし、(押されたキー=上キー)
   ならば、Y増減=1。
もし、(押されたキー=下キー)
   ならば、Y増減=-1。
X変更位置=X空き位置+X増減。
Y変更位置=Y空き位置+Y増減。
もし、(X変更位置=-1)または(Y変更位置=-1)または(X変更位置=4)または(Y変更位置=4)
   ならば、待機。
入れ替え値=配置#X変更位置#Y変更位置。
配置#X変更位置#Y変更位置=0。
配置#X空き位置#Y空き位置=入れ替え値。
手順数=手順数+1。
描画処理へ、飛ぶ。

*保存処理
『15パズル.INI』の、INIファイル開く。
それ=パズルモード。
『保存』の、『モード』へ、INIファイル書く。
それ=画像フォルダ。
『保存』の、『フォルダ』へ、INIファイル書く。
それ=画像拡張子。
『保存』の、『拡張子』へ、INIファイル書く。
それ=配置。
「\n」を、「★」に、置換。
『保存』の、『配置』へ、INIファイル書く。
それ=手順数。
『保存』の、『手順』へ、INIファイル書く。
今と、開始時間の、秒差。
『保存』の、『時間』へ、INIファイル書く。
INIファイル閉じる。
待機。

*読み込み処理
『15パズル.INI』の、INIファイル開く。
『保存』の、『モード』を、INIファイル読む。
パズルモード=それ。
『保存』の、『フォルダ』を、INIファイル読む。
画像フォルダ=それ。
『保存』の、『拡張子』を、INIファイル読む。
画像拡張子=それ。
『保存』の、『配置』を、INIファイル読む。
「★」を、「\n」に、置換。
配置=それ。
『保存』の、『手順』を、INIファイル読む。
手順数=それ。
『保存』の、『時間』を、INIファイル読む。
保存時間=それ。
INIファイル閉じる。
もし、(パズルモード=「ノーマル」)
   ならば、母艦の、タイトルは、タイトルノーマル。
もし、(パズルモード=「画像」)
   ならば、母艦の、タイトルは、タイトル画像。
開始時間=今。
描画処理へ、飛ぶ。

*画像フォルダ選択
フォルダ選択。
画像フォルダ=それ。
「.bmp\n.jpg\n.jpeg\n.png」を、反復(
   画像拡張子=それ。
   画像フォルダ&「1」&それが、存在するか。
   もし、(それ=1)
      ならば、抜ける。
)。
もし、(それ=0)
   ならば(
      「指定したフォルダに画像がありません。」と、言う。
      待機。
   )。
パズルモード=「画像」。
手順数=0。
母艦の、タイトルは、タイトル画像。
ランダム配置へ、飛ぶ。

*正解イベント
'タイマー終了
今と、開始時間の、秒差。
もし、(保存時間=「」)
   ならば、時間=それ。
   違えば(
      時間=保存時間+それ。
      保存時間=「」。
   )。

'ハイスコア読み込み
もし、(パズルモード=「ノーマル」)
   ならば、INIセクション=「ノーマルハイスコア」。
もし、(パズルモード=「画像」)
   ならば、INIセクション=「画像ハイスコア」。
『15パズル.INI』の、INIファイル開く。
INIセクションの、『手順』を、INIファイル読む。
ハイ手順=それ。
INIセクションの、『時間』を、INIファイル読む。
ハイ時間=それ。
INIファイル閉じる。

'クリア画面表示
1秒、待つ。
黒色で、画面クリア。
文字色=白色。
文字サイズ=18。
センタリング。
「くりあ〜!!」を、表示。
文字サイズ=9。
文字アニメを、ラベルとして、作成。
その、幅は、180。
その、テキストは、「(*^∇)_△」。
0.5秒、待つ。
その、テキストは、「(*^∇)_∠※PAN!」。
0.3秒、待つ。
その、テキストは、「(*^∇)_∠※~゚」。
0.1秒、待つ。
その、テキストは、「(*^∇)_∠※*・~゚」。
0.1秒、待つ。
その、テキストは、「(*^∇)_∠※゚・:.*・゚」。
0.1秒、待つ。
その、テキストは、「(*^∇)_∠※。☆・゚・:.*・゚」。
0.1秒、待つ。
その、テキストは、「(*^∇)_∠※.:´*。☆・゚・:.*・゚」。
0.1秒、待つ。
その、テキストは、「(*^∇^)/オメデトー!!」。
文字サイズ=12。
「移動:{手順数}回」を、表示。
もし、(手順数<ハイ手順)または(ハイ手順=「-」)
   ならば(
      INIキー=「手順」。
      それ=手順数。
      ハイスコア表示・書き込みを、呼ぶ。
   )。
「かかった時間:{時間}秒」を、表示。
もし、(時間<ハイ時間)または(ハイ時間=「-」)
   ならば(
      INIキー=「時間」。
      それ=時間。
      ハイスコア表示・書き込みを、呼ぶ。
   )。
「\nもっかいやる?」を、表示。
文字サイズ=10。
やるボタンを、ボタンとして、作成。
その、高さは、20。
その、テキストは、「やる〜!!」。
その、イベントは(
   文字アニメの、オブジェクト破壊。
   やるボタンの、オブジェクト破壊。
   やめるボタンの、オブジェクト破壊。
   ランダム配置へ、飛ぶ。
)。
やめるボタンを、ボタンとして、作成。
その、高さは、20。
その、テキストは、「もうやめる」。
その、イベントは(
   おわり。
)。
センタリング解除。
待機。

*ハイスコア表示・書き込み
'ハイスコア表示
文字サイズ=9。
文字色=青色。
「ハイスコア!!」を、表示。
文字色=白色。
文字サイズ=12。

'ハイスコア書き込み
『15パズル.INI』の、INIファイル開く。
INIセクションの、INIキーへ、INIファイル書く。
INIファイル閉じる。
戻る



▲[ 222 ] / 返信無し
NO.223  (祝)新バージョン
□投稿者/ ムロジェク -(2002/01/15(Tue) 22:13:22)
□U R L/
おおっ、前作に大幅なパワーアップが加わっていますね。画像使用が出来るのは良いですね。画像を作るのにはmokaさん作製の「画像分割」が大活躍です。でも顔写真とか使わないとクリアは難しいです…。ペイントで適当に書いた画像を使ったら元の画像を忘れてしまいました(^ ^;
ノーマルモードを長時間やっていると「アタック25」のパネルに見えてくるのは僕だけでしょうか?(笑)
今のところの自己ベストはノーマル109回36秒です。画像モードはもっと分かりやすい画像を探して挑戦します。(^ ^;



- Child Tree -