1.ミノ管理クラスのミノ毎の保有情報の縮小
■基本設計メモ
　
　1.Minoクラスの管理構造体の管理方法を変更
　(方針)
　　・中心は可変
　　・周囲3点は固定で4種類(0,90,180,270)
　　(固定のため分離して保持して良い)
　　・ミノの種類として1つの形に4種類
　(実現方法)
　　Minoクラスの3点の情報のテーブル(infoTbl)を回転の向き毎に定義する
　　　→「拡張3点情報テーブル」とする
　　
　　Minoクラスのメンバは以下とする
　　　- 中心(x,y)
　　　- 回転状態を含むミノの種類
　　　　=>「ミノ種類」と「回転の状態」に分離した方がいい？
　　　　　「拡張3点情報テーブル」のキーとなるため、１つにまとめたい
　　　　　「ミノ種類」構造体の内部に「回転の状態」を保持させる

　(検討事項)
　①回転状態を含むミノの種類はと、Blockクラスの持つブロックの種類の関係
　　- 「回転状態を含むミノの種類」はMinoクラスに定義　← enumにする？
　　
　　　=> 今のところは、Blockクラスの定義は使用しない
　　　　動くところはできてから、考えなおす

　②ミノ回転時のMinoクラスに対する操作
　　- 「回転状態を含むミノの種類」の状態を変える　→　同じミノの回転状態を変える　　
　　→　「回転状態を含むミノの種類」は内部に「回転の状態」を持つ
　　　　「ミノ種類」+「回転の状態」
　③ミノの取得処理時の、ブロックの位置情報(4点)の生成処理
　　- 「回転状態を含むミノの種類」をキーとして、「拡張3点の情報テーブル」から情報を取得
　　　→キーは一意。通し番号とする
　　
　④周囲3点の情報は固定のため分離して保持して良い
　　- enumで定義することでMinoクラスとしては実体は１つになる？Mino.XXX.YYYアクセス可?
　
　⑤Minoクラスのミノの種類はBlockクラスのモノと依存すべきか？
　◯設計意図確認
　・Blockクラスの種類
　　Table上に設置されるブロックの種類を管理
　　用途
　　　ミノの種類毎に描画
　　　　→ブロックの種類とカラーパレットの結びつき(今は頭の中のみにある)
　　　→Blockクラスと結果的に似た定義になる　(ミノの形は意識しないがミノの種類は意識)
　　　削除対象のブロックの区別
　・Minoクラスの種類
　　テトラミノ(4つのブロックの集まり)の形ごとの種類

■詳細設計・実装時のメモ
enum型のインスタンを操作により、同じenum型の別のインスタンスに変更するとき、
以下の代入方法で実装している。もっといい方法はないのかな？
my_enum_instance = MY_ENUM.method(my_enum_instance);

■動くもの→改善(リファクタリング)
※TODOで必要そうなのは追加する

　・固定の管理情報を分離
　　-パッケージ分けも検討(Blockまわりだけ)
　・stateの公開範囲
　・Ｉミノの中心の移動をテーブル化
　◯valueOfのオーバーロードに変更(名前のみ変更)
　・Minoの種類ごとに区別したい

　・Blockクラスの定数enum化

　・回転後の再設定必要？→参照,clone(),gcの詳細な理解必要
