作品プログラム
- 動作環境
- プロデル 1.6.968
- 投稿者
- ゆうと
- 更新日
- 2019-08-16 17:15:41
- ダウンロード数
- 292
作品のプログラム
//さめがめ//
メイン画面を表示する
待機する
メイン画面とは
ウィンドウを継承する
バブル一覧={}
色一覧は、{赤、青、緑、オレンジ}
タイル幅=6
タイル高さ=9
スコア=0
ハイスコア=0
はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます
タイル高さ回1からYにカウントして繰り返す
タイル幅回1からXにカウントして繰り返す
キャンバス1へ円を描いてバブル一覧(Y,X)とする
その位置と大きさは、{20+(X-1)*40,20+(Y-1)*40,40,40}
そのタグは、{X,Y}
そのクリックされた時の手順は、バブルクリック
【タイプ】は、1から4までの乱数
バブル一覧(Y,X)の背景色は、色一覧(タイプ)
繰り返し終わり
繰り返し終わり
キャンバス1へ「SAME☆GAME」という文字を描く
その位置は、{270,20}
そのフォントを「メイリオ」に変える
その文字色を緑色に変える
その文字サイズを18に変える
キャンバス1へ「Score:0」という文字を描いて得点ラベルとする
その位置は、{280,80}
そのフォントを「メイリオ」に変える
その文字色を緑色に変える
その文字サイズを18に変える
キャンバス1へ「HiScore:0」という文字を描いて最高得点ラベルとする
その位置は、{280,120}
そのフォントを「メイリオ」に変える
その文字色を緑色に変える
その文字サイズを18に変える
キャンバス1へ「FINISH!」という文字を描いてフィニッシュラベルとする
その位置は、{60,150}
その文字色を緑色に変える
その文字サイズを30に変える
その表示を×に変える
キャンバス1へ「RETRY」という文字を描いてリトライラベルとする
その位置は、{60,220}
その文字色を青に変える
その文字サイズを30に変える
その背景色を白に変える
その線色を青に変える
その表示を×に変える
その大きさ調整を○に変える
そのクリックされた時の手順は、リトライする
終わり
初期化する手順
ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
この実質大きさを{659,611}に変える
この内容を「さめがめ」に変える
初期化開始する
キャンバス1というキャンバスを作る
その位置と大きさを{0,0,659,611}に変える
その実質大きさを{659,611}に変える
その自動更新を×に変える
そのドッキング方向を「全体」に変える
初期化終了する
メイン画面の設計スケール比率を{144,144}に変える
終わり
リトライする手順
タイル高さ回1からYにカウントして繰り返す
タイル幅回1からXにカウントして繰り返す
バブル一覧(Y,X)の表示を○に変える
【タイプ】は、1から4までの乱数
バブル一覧(Y,X)の背景色は、色一覧(タイプ)
繰り返し終わり
繰り返し終わり
フィニッシュラベルの表示を×に変える
リトライラベルの表示を×に変える
スコア=0
得点ラベルの内容を「Score: [スコア]」に変える
最高得点ラベルの内容を「HiScore: [ハイスコア]」に変える
キャンバス1を更新する
終わり
【バブル図形】と、【タイプ】が、同じタイプかどうかを求める手順
もしバブル図形の表示でないなら×を返す
(バブル図形の背景色がタイプ)を返す
終わり
バブルクリックの手順
場所は、発生元のタグ
X=場所(1)。Y=場所(2)
【タイプ】は、バブル一覧(Y,X)の背景色
もしXが2以上かつ、バブル一覧(Y,X-1)とタイプが同じタイプなら
他でもしXがタイル幅未満かつ、バブル一覧(Y,X+1)とタイプが同じタイプなら
他でもしYが2以上かつ、バブル一覧(Y-1,X)とタイプが同じタイプなら
他でもしYがタイル高さ未満かつ、バブル一覧(Y+1,X)とタイプが同じタイプなら
そうでなければ
返す
もし終わり
探索済一覧={}
探索済一覧で{X,Y}からタイプと同色を辿って削除数とする
バブルを詰める
スコアを(削除数-1)^2だけ増やす
得点ラベルの内容を「Score: [スコア]」に変える
もしスコアがハイスコアより大きいならハイスコアは、スコア
もしすべて消えたなら
フィニッシュラベルの表示を○に変える
リトライラベルの表示を○に変える
もし終わり
キャンバス1を更新する
終わり
【探索済一覧】で【座標】から【タイプ】と、同色を辿る手順
【X】=座標(1)
【Y】=座標(2)
もし探索済一覧の個数がY未満なら
他でもし探索済一覧(Y)が無または探索済一覧(Y)の個数がX未満なら
他でもし探索済一覧(Y,X)が○またはバブル一覧(Y,X)の表示が×なら
0を返す
もし終わり
探索済一覧(Y,X)は、○
もしバブル一覧(Y,X)とタイプが同じタイプでないなら
0を返す
もし終わり
【個数】は、1
もしXが2以上なら
探索済一覧で{X-1,Y}からタイプと同色を辿ったものだけ個数を増やす
もし終わり
もしXがタイル幅未満なら
探索済一覧で{X+1,Y}からタイプと同色を辿ったものだけ個数を増やす
もし終わり
もしYが2以上なら
探索済一覧で{X,Y-1}からタイプと同色を辿ったものだけ個数を増やす
もし終わり
もしYがタイル高さ未満なら
探索済一覧で{X,Y+1}からタイプと同色を辿ったものだけ個数を増やす
もし終わり
バブル一覧(Y,X)の表示を×に変える
個数を返す
終わり
バブルを詰める手順
//消えた部分のバブルを詰める
タイル幅回1からXにカウントして繰り返す
Yをタイル高さから1ずつ減らしながら1まで繰り返す
もしバブル一覧(Y,X)の表示なら繰り返しを続ける
選択タイルは、無
Y2をYから1ずつ減らしながら1まで繰り返す
もしバブル一覧(Y2,X)の表示なら
選択タイルは、バブル一覧(Y2,X)
繰り返しから抜ける
もし終わり
繰り返し終わり
もし選択タイルが無なら、繰り返しから抜ける
選択タイルの表示を×に変える
バブル一覧(Y,X)の表示を○に変える
バブル一覧(Y,X)の背景色は、選択タイルの背景色
繰り返し終わり
繰り返し終わり
//左側へバブルを詰める
(タイル幅-1)回1からXにカウントして繰り返す
もしバブル一覧(タイル高さ,X)の表示なら繰り返しを続ける
X2をXから1ずつ増やしながらタイル幅-1まで繰り返す
もしバブル一覧(タイル高さ,X2)の表示なら繰り返しを抜ける
繰り返し終わり
Yをタイル高さから1ずつ減らしながら1まで繰り返す
バブル一覧(Y,X)の表示をバブル一覧(Y,X2)の表示に変える
バブル一覧(Y,X)の背景色をバブル一覧(Y,X2)の背景色に変える
バブル一覧(Y,X2)の表示を×に変える
繰り返し終わり
繰り返し終わり
終わり
すべて消えたかどうかを求める手順
タイル高さ回1からYにカウントして繰り返す
タイル幅回1からXにカウントして繰り返す
もしバブル一覧(Y,X)の表示でないなら繰り返しを続ける
【タイプ】=バブル一覧(Y,X)の背景色
もしXが2以上かつ、バブル一覧(Y,X-1)とタイプが同じタイプなら
他でもしXがタイル幅未満かつ、バブル一覧(Y,X+1)とタイプが同じタイプなら
他でもしYが2以上かつ、バブル一覧(Y-1,X)とタイプが同じタイプなら
他でもしYがタイル高さ未満かつ、バブル一覧(Y+1,X)とタイプが同じタイプなら
そうでなければ
繰り返しを続ける
もし終わり
×を返す
繰り返し終わり
繰り返し終わり
○を返す
終わり
終わり