Javaの応用問題で
以下のプログラムがさっぱりわかりません。
全ての値が0の2次元配列を,以下のルールに基づいて全て1にするゲームTurnAllPanels.javaを作成する。ルール:ある座標を指定すると,指定した座標とその上下左右の座標について,その値が0ならば1,1ならば0に交換する。プログラムは以下の仕様を満たす。
1,int型2次元配列のフィールドboard を持つ。これがこのゲームの盤となる。
2,盤の行と列の大きさを保持するint型のフィールド、rowMaxとcolumnMaxを持つ。
3,board の内容を、次のスライドで示す形式で表示できるメソッドshowBoard() を持つ。
4,指定された座標位置の配列の値が0ならば1,1ならば0に交換するメソッドturnOverを持つ。
5,指定された座標位置の配列の値とその上下左右の値を、turnOverを用いてひっくり返すメソッドturnPlaceSettingを持つ。ただし指定された座標位置がboard の端の場合は、その上下左右の内のどれかが無いので、場合分けが必要。
6,終了条件(全ての値が1かどうか)をチェックするメソッドcheckBoard() を持つ。
7,mainメソッドでは、board の配列の縦横の大きさを入力させ,それぞれcolumnMax,rowMaxとして、これらを用いてこのクラスのオブジェクトpanel を生成する。
8,次に交換したい座標の指定を行わせ,それをcolumn, rowとする。座標がcolumnMax, rowMaxよりも大きい場合や0以下の場合には警告を出力させる。
9,panel にshowBoardやturnPlaceSettingを実行させることで、次のスライドに示すような表示を得る。
10,3×3の場合,ゲーム終了までの最速の手順は5手,「左上」「右上」「中央」「左下」「右下」を一度ずつ指定するものである。