//プロデル ブロック崩し//
パターン（1）は｛｛×,×,×,×,×｝,｛×,×,1,×,×｝,｛×,×,1,×,×｝,｛×,×,1,×,×｝,｛×,×,1,×,×｝｝
パターン（2）は｛｛×,×,×,×,×｝,｛×,2,2,×,×｝,｛×,2,2,×,×｝,｛×,×,×,×,×｝,｛×,×,×,×,×｝｝
パターン（3）は｛｛×,×,×,×,×｝,｛×,×,3,3,×｝,｛×,3,3,×,×｝,｛×,×,×,×,×｝,｛×,×,×,×,×｝｝
パターン（4）は｛｛×,×,×,×,×｝,｛×,4,4,×,×｝,｛×,×,4,4,×｝,｛×,×,×,×,×｝,｛×,×,×,×,×｝｝
パターン（5）は｛｛×,×,×,×,×｝,｛×,×,×,×,×｝,｛×,×,5,5,×｝,｛×,×,5,×,×｝,｛×,×,5,×,×｝｝
パターン（6）は｛｛×,×,6,×,×｝,｛×,×,6,×,×｝,｛×,×,6,6,×｝,｛×,×,×,×,×｝,｛×,×,×,×,×｝｝
パターン（7）は｛｛×,×,×,×,×｝,｛×,×,7,×,×｝,｛×,7,7,7,×｝,｛×,×,×,×,×｝,｛×,×,×,×,×｝｝
素材として「images\block1.png」を利用する	//「赤ブロック」という
素材として「images\block2.png」を利用する	//「黄ブロック」として
素材として「images\block3.png」を利用する	//「青ブロック」として
素材として「images\block4.png」を利用する	//「緑ブロック」として
素材として「images\block5.png」を利用する	//「黄ブロック」として
素材として「images\block6.png」を利用する	//「青ブロック」として
素材として「images\block7.png」を利用する	//「緑ブロック」として

メイン画面を表示する

待機する

メイン画面とは
	ウィンドウを継承する
	+次ブロック
	+処理中
	
	はじめの手順
		初期化する

		タイマー１というタイマーを作る
		タイマー１の時間になった時の手順は、時間になった
		タイマー１の"間隔"は1000
		ゲームを開始する
	終わり

	初期化する手順
//この手順は自動生成されたものです
//編集しないでください
	この内部領域大きさは｛400，470｝
	この内容は「プロデル ブロック崩し」
	このドラッグドロップは○
	この位置と大きさは｛15，15，416，508｝
	ラベル2というラベルを作る
		その内容は「Next」
		その移動順は4
		その位置と大きさは｛301，34，45，20｝
		そのフォント名は「Comic Sans MS」
		そのフォントサイズは11
		その文字色は「Red」
		その背景色は「White」
	ラベル1というラベルを作る
		その内容は「Score:0」
		その移動順は2
		その位置と大きさは｛264，191，82，26｝
		そのフォント名は「Comic Sans MS」
		そのフォントサイズは14.25
		その文字色は「#0000C0」
		その背景色は「White」
	キャンバス1というキャンバスを作る
		その移動順は3
		その位置と大きさは｛0，26，400，444｝
		そのドッキング方向は「全体」

	メニュー1というメニューを作る
		その内容は「メニュー1」
		その移動順は1
		その位置と大きさは｛0，0，400，26｝
		ゲーム項目というメニュー項目をメニュー1へ追加する
			その表示は○
			その内容は「ゲーム(&F)」
			"ゲーム_はじめから項目"というメニュー項目をメニュー1のゲーム項目へ追加する
				その内容は「はじめから(&S)」
			メニュー項目1という区切り線部品をメニュー1のゲーム項目へ追加
				その大きさは｛151，6｝
				その幅は151
			ゲーム_終了項目というメニュー項目をメニュー1のゲーム項目へ追加する
				その内容は「終了(&C)」
		ヘルプ項目というメニュー項目をメニュー1へ追加する
			その表示は○
			その内容は「ヘルプ(&H)」
			ヘルプ_バージョン情報項目というメニュー項目をメニュー1のヘルプ項目へ追加する
				その内容は「バージョン情報(&A)」
	この設計スケール比率は｛96,96｝
終わり

	時間になった手順
		現在ブロックが無なら抜け出す
		処理中なら抜け出す
		処理中は○
		進める
		キャンバス1を更新する
		処理中は×
	終わり

	【ブロック】を、【座標】に、描画する手順
		開始Xは、座標（1）
		開始Yは、座標（2）
		1から5までYを増やしながら『
			1から5までXを増やしながら『
				Tは、ブロックのブロック配列
				T（Y,X）が×でなければ
					キャンバス1へ画像を描いて図形とする
						その位置と大きさは｛開始X+X×ブロックのサイズ,開始Y+Y×ブロックのサイズ,ブロックのサイズ,ブロックのサイズ｝
						その画像は、素材リストから「block[T（Y,X）].png」を画像として取得したもの
					ブロックの図形配列に図形を加える
				そして
			』ことを繰り返す
		』ことを繰り返す
		キャンバス1を更新する
	終わり

	新しいブロックを、作る手順
		次ブロックが無なら
			次ブロックというブロックを作る
			次ブロックのブロック配列は、パターン（1から7までの乱数）のクローン
			次ブロックをゲームパネルの次ブロック表示位置に描画する
		そして
		現在ブロックは、次ブロック
		現在ブロックを｛（ゲームパネルの幅-6）/2,1｝へ移動する
		新ブロックというブロックを作る
		新ブロックのブロック配列は、パターン（1から7までの乱数）のクローン
		新ブロックをゲームパネルの次ブロック表示位置に描画する
		次ブロックは、新ブロック
	終わり
	
	進める手順
		現在ブロックが無なら抜け出す
		現在ブロックが到着したなら
			ゲームパネルで現在ブロックを確定する
			ゲームパネルから埋まったブロックを消す
			ゲームパネルが満杯なら
				タイマー１を停止する
				「ゲームオーバー」を情報アイコンで表示する
			そうでなければ
				新しいブロックを作る
			そして
		でなければ
			現在ブロックを下へ移動する
		そして
	終わり

	ゲームを、開始する手順
		ゲームパネルを初期化する
		キャンバス1をクリアする
		キャンバス1へ四角形を描く
			その位置と大きさは、
				{ゲームパネルの横+ブロックのサイズ*2-1,ゲームパネルの縦+ブロックのサイズ*5-1,
				（ゲームパネルの幅-2）×ブロックのサイズ+2,
				（ゲームパネルの高さ-4）×ブロックのサイズ+2｝
			その線色は、紺色
			その背景色は、透明
		キャンバス1へ四角形を描く
			その位置と大きさは{270,30,110,110｝
			その線色は、紺色
			その背景色は、透明
		次ブロックは、無
		新しいブロックを作る
		ゲームパネルの得点は0
		得点を更新する
		タイマー１を開始する
		キャンバス1を更新する
	終わり
	
	【自分】で、得点を、更新する手順
		ラベル1の内容は「Score:[ゲームパネルの得点]」
	終わり
	
	キャンバス1のキーが押された時の手順
		処理中なら抜け出す
		処理中は○
		イベントのキー名について分岐
		「←」の場合
			現在ブロックを左へ移動する
		「↑」の場合
			現在ブロックを右へ回転する
		「→」の場合
			現在ブロックを右へ移動する
		「↓」の場合
			進める
		「G」の場合
			ゲームパネルを表示する
		「B」の場合
			現在ブロックを表示する
		そして
		処理中は×
		キャンバス1を更新する
	終わり

	ゲーム_はじめから項目がクリックされた時の手順
		ゲームを開始する
	終わり
	ゲーム_終了項目がクリックされた時の手順
		閉じる
	終わり
	ヘルプ_バージョン情報項目がクリックされた時の手順
		「プロデル テトリス」を情報アイコンで表示する
	終わり
終わり

ゲームパネルとは
	+ブロック配列:配列={}
	+横=10
	+縦=-60
	+幅=12
	+高さ=20
	+次ブロック表示位置=｛260,10｝
	+得点=0
	
	はじめの手順
		初期化する
	終わり
	
	【自分】を、初期化する手順
		1から高さまでYを増やしながら『
			1から幅までXを増やしながら『
				ブロック配列（Y,X）は、無
			』ことを繰り返す
		』ことを繰り返す
		壁を作る
	終わり
	
	壁を、作る手順
		1から幅までXを増やしながら『
			ブロック配列（高さ+1,X）は×
		』ことを繰り返す
		1から高さまでYを増やしながら『
			ブロック配列（Y,1）は×
			ブロック配列（Y,幅）は×
		』ことを繰り返す
	終わり

	【自分】を、表示する手順
		5から高さまでYを増やしながら『
			1から幅までXを増やしながら『
				ブロック配列（Y,X）が無なら
					「×」を改行せず報告する
				でないなら
					「○」を改行せず報告する
				そして
			』ことを繰り返す
			「」を報告する
		』ことを繰り返す
	終わり

	【自分】が、満杯かどうかを判定する手順
		【結果】は×
		【X】
		2から幅-1までXを増やしながら『
			ブロック配列（4,X）が無でないなら
				結果は○
				繰り返しから抜け出す
			そして
		』ことを繰り返す
		結果を返す
	終わり

	【自分】から、埋まったブロックを、消す手順
		ヒット数は0
		1から高さまでYを増やしながら『
			個数は0
			2から幅-1までXを増やしながら『
				ブロック配列（Y,X）が無でないなら、個数を増やす
			』ことを繰り返す
			個数が幅-2なら、Y行目のブロックを消す。ヒット数を増やす
		』ことを繰り返す
		ヒット数が0より大きいなら、
			得点を100*(ヒット数^2)だけ増やす
			メイン画面で得点を更新する
		そして
	終わり
	
	【自分】から、【開始Y】行目のブロックを、消す手順
		【X】。【Y】
		2から幅-1までXを増やしながら『
			ブロック配列（開始Y,X）が無でないなら、ブロック配列（開始Y,X）を消す。
		』ことを繰り返す
		開始Yから2までYを減らしながら『
			2から幅-1までXを増やしながら『
				ブロック配列（Y,X）は、ブロック配列（Y-1,X）
				ブロック配列（Y,X）が無でないなら
					ブロック配列（Y,X）の縦は、ブロック配列（Y,X）の縦+ブロックのサイズ
				そして
			』ことを繰り返す
		』ことを繰り返す
		2から幅-1までXを増やしながら『
			ブロック配列（1,X）は、無
		』ことを繰り返す
	終わり
	
	【自分】で、【ブロック】を、確定する手順
		ブロックの図形配列のすべての図形についてそれぞれ繰り返す
			【P】は、図形の位置
			Pは｛（（P（1）-ゲームパネルの横）\ブロックのサイズ）,（（P（2）-ゲームパネルの縦）\ブロックのサイズ）｝
			ブロック配列（P（2）,P（1））は、図形
		そして
	終わり
終わり

ブロックとは
	+サイズ=20//！
	+ブロック配列={}
	+図形配列={}
	+基準位置={}
	
	【自分】を、下へ、移動する手順
		【新基準位置】は｛基準位置（1）,基準位置（2）+1｝
		新基準位置に置けるなら
			図形配列のすべての図形についてそれぞれ繰り返す
				図形の位置は｛図形の位置（1）,図形の位置（2）+サイズ｝
			そして
			基準位置は、新基準位置
		そして
	終わり
	
	【自分】を、左へ、移動する手順
		【新基準位置】は｛基準位置（1）-1,基準位置（2）｝
		新基準位置に置けるなら
			図形配列のすべての図形についてそれぞれ繰り返す
				図形の位置は｛図形の位置（1）-サイズ,図形の位置（2）｝
			そして
			基準位置は、新基準位置
		そして
	終わり
	
	【自分】を、右へ、移動する手順
		【新基準位置】は｛基準位置（1）+1,基準位置（2）｝
		新基準位置に置けるなら
			図形配列のすべての図形についてそれぞれ繰り返す
				図形の位置は｛図形の位置（1）+サイズ,図形の位置（2）｝
			そして
			基準位置は、新基準位置
		そして
	終わり
	
	【自分】を、【座標】に、移動する手順
		基準位置は、座標
		【旧X】は、ゲームパネルの次ブロック表示位置（1）
		【旧Y】は、ゲームパネルの次ブロック表示位置（2）
		【開始X】は、座標（1）×ブロックのサイズ+ゲームパネルの横
		【開始Y】は、座標（2）×ブロックのサイズ+ゲームパネルの縦

		図形配列のすべての図形についてそれぞれ繰り返す
			【P】は｛図形の位置（1）-旧X,図形の位置（2）-旧Y｝
			図形の位置は｛P（1）+開始X,P（2）+開始Y｝
		そして
	終わり

	【自分】を、右へ、回転する手順
		【旧ブロック配列】は、ブロック配列のクローン
		【X】。【Y】
		1から5までYを増やしながら繰り返す
			1から5までXを増やしながら繰り返す
				ブロック配列（Y）（X）は、旧ブロック配列（6-X）（Y）
			そして
		そして
		
		基準位置に置けるなら
			【開始X】は、基準位置（1）×ブロックのサイズ+ゲームパネルの横
			【開始Y】は、基準位置（2）×ブロックのサイズ+ゲームパネルの縦
			図形配列のすべての図形についてそれぞれ繰り返す
				【P】は｛図形の位置（1）-開始X、図形の位置（2）-開始Y｝
				Pは｛6×サイズ-P（2）,P（1）｝
				図形の位置は｛P（1）+開始X,P（2）+開始Y｝
			そして
		そうでなければ
			ブロック配列は、旧ブロック配列
		そして
	終わり

	【自分】が、【新基準位置】に、置けるかどうかを判定する手順
		【X】。【Y】
		【B】は、ゲームパネルのブロック配列
		1から5までYを増やしながら『
			1から5までXを増やしながら『
				ブロック配列（Y）（X）が×なら、繰り返しを続ける
				Y+新基準位置（2）が0以下またはB（Y+新基準位置（2）)(X+新基準位置（1））が無でないなら、
					×を返す。
				そして
			』ことを繰り返す
		』ことを繰り返す
		○を返す
	終わり
	
	【自分】が、到着したかどうかを判定する手順
		【新基準位置】は｛基準位置（1）,基準位置（2）+1｝
		新基準位置に置けるなら
			×を返す
		そうでなければ
			○を返す
		そして
	終わり

	【自分】を、消す手順
		図形配列のすべての図形についてそれぞれ繰り返す
			図形を消す
		そして
	終わり

	【自分】を、表示する手順
		1から5までYを増やしながら繰り返す
			1から5までXを増やしながら繰り返す
				ブロック配列（Y,X）を改行せず報告する
			そして
			「」を報告する
		そして
		「」を報告する
	終わり
終わり
