□投稿者/ SaRaSa -(2002/03/28(Thu) 22:49:49)
□U R L/ |
{---プログラム掲示板投稿フォーム--- 【ソフト名】倉庫番 【作 成 者】SaRaSa 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.34 【転 件】可 【改変運用】可 【ひまわり本体への梱包】可 【実列時に利用作成するファイル】無 【コメント】 パズルゲーム「倉庫番」を作ってみました。 人間「♀」を十字キーで操作して、壁「■」に注意しつつ、荷物「□」を 押して、決められた場所「・」に置いてください。 ---投稿フォームここまで---}
配置=「3,3,3,3,3,3,3,3,3 3,2,1,1,3,1,1,2,3 3,1,2,4,3,4,2,1,3 3,1,1,1,4,1,1,1,3 3,3,1,4,3,4,0,3,3 3,1,1,1,4,1,1,1,3 3,1,2,4,3,4,2,1,3 3,2,1,1,3,1,1,2,3 3,3,3,3,3,3,3,3,3」
駒#0=「♀」 駒#1=「 」 駒#2=「・」 駒#3=「■」 駒#4=「□」 駒幅=20
配置の、要素数。 縦駒数=それ。 配置の中で、「 」が、何文字目。 横駒数=それ/2。
母艦の、タイトルを、「倉庫番」に、設定。 その、幅を、(駒幅*横駒数)に、設定。 その、高さを、(駒幅*縦駒数)に、設定。 その、リサイズは、オフ。 母艦を、中央へ移動。 母艦浮上。
文字サイズ=16。文字色=黒色。文字書体=MS ゴシック。 塗り色=白色。ペン色=白色。ペン太さ=0。
仮配置=配置 答=1 縦を、0から、(縦駒数-1)まで、繰り返す( 横を、0から、(横駒数-1)まで、繰り返す( (駒幅*横,駒幅*縦)へ、移動。 (駒#(配置#横#縦))を、表示。 (配置#横#縦)で、条件分岐。 0の時(仮配置#横#縦=1。行=縦。列=横。)。 2の時(答行#答=縦。答列#答=横。答=答+1。)。 4の時(仮配置#横#縦=1。)。 )。 )。 母艦の、キー押した時を、配置替に、設定。
*配置替 十字左=37 十字上=38 十字右=39 十字下=40 押されたキーで、条件分岐。 十字左の時( (配置#(列-1)#行)で、条件分岐。 2以下の時( 配置#(列-1)#行=配置#列#行 配置#列#行=仮配置#列#行 縦=行 横を、(列-1)から、(列)まで、繰り返す(再描画を、呼ぶ。)。 列=列-1 )。 4以上の時( (配置#(列-2)#行)で、条件分岐。 2以下の時( 配置#(列-2)#行=配置#(列-1)#行 配置#(列-1)#行=配置#列#行 配置#列#行=仮配置#列#行 縦=行 横を、(列-2)から、(列)まで、繰り返す(再描画を、呼ぶ。)。 列=列-1 )。 )。 )。 十字上の時( (配置#列#(行-1))で、条件分岐。 2以下の時( 配置#列#(行-1)=配置#列#行 配置#列#行=仮配置#列#行 横=列 縦を、(行-1)から、(行)まで、繰り返す(再描画を、呼ぶ。)。 行=行-1 )。 4以上の時( (配置#列#(行-2))で、条件分岐。 2以下の時( 配置#列#(行-2)=配置#列#(行-1) 配置#列#(行-1)=配置#列#行 配置#列#行=仮配置#列#行 横=列 縦を、(行-2)から、(行)まで、繰り返す(再描画を、呼ぶ。)。 行=行-1 )。 )。 )。 十字右の時( (配置#(列+1)#行)で、条件分岐。 2以下の時( 配置#(列+1)#行=配置#列#行 配置#列#行=仮配置#列#行 縦=行 横を、(列)から、(列+1)まで、繰り返す(再描画を、呼ぶ。)。 列=列+1 )。 4以上の時( (配置#(列+2)#行)で、条件分岐。 2以下の時( 配置#(列+2)#行=配置#(列+1)#行 配置#(列+1)#行=配置#列#行 配置#列#行=仮配置#列#行 縦=行 横を、(列)から、(列+2)まで、繰り返す(再描画を、呼ぶ。)。 列=列+1 )。 )。 )。 十字下の時( (配置#列#(行+1))で、条件分岐。 2以下の時( 配置#列#(行+1)=配置#列#行 配置#列#行=仮配置#列#行 横=列 縦を、(行)から、(行+1)まで、繰り返す(再描画を、呼ぶ。)。 行=行+1 )。 4以上の時( (配置#列#(行+2))で、条件分岐。 2以下の時( 配置#列#(行+2)=配置#列#(行+1) 配置#列#(行+1)=配置#列#行 配置#列#行=仮配置#列#行 横=列 縦を、(行)から、(行+2)まで、繰り返す(再描画を、呼ぶ。)。 行=行+1 )。 )。 )。 解=1 答回( 仮答列=答列#回数 仮答行=答行#回数 もし、配置#(仮答列)#(仮答行)=4、ならば(解=解+1。)。 )。 もし、解=答、ならば(「仕事終了!」と、言う。終わり。)。 待機。
*再描画 (駒幅*横,駒幅*縦)から、(駒幅*(横+1),駒幅*(縦+1))へ、四角形。 (駒幅*横,駒幅*縦)へ、移動。 (駒#(配置#横#縦))を、表示。 戻る。 |
|