ーー// さめがめ (SAME GAME) //
メイン画面を表示する
待機する

メイン画面とは
　　ウィンドウを継承する
　　バブル一覧={}
　　色一覧は{赤,青,緑,オレンジ}
　　タイル幅=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)とタイプが同じタイプなら
　　　　　　　　そうでなければ
　　　　　　　　　　繰り返しを続ける
　　　　　　　　そして
　　　　　　　　×を返す
　　　　　　そして
　　　　そして
　　　　○を返す
　　終わり
終わり