#前提
teratail.com/questions/67133
ここで質問した者です。
javaのswingを用いてGUIの将棋ソフトを作成しています。
ほぼ趣味プログラマーであり、プログラミング初心者です。
厳格で純粋なオブジェクト指向に近いコードで綺麗に書く事を目標とします。
そのため、早く軽快な動作は期待しません。
ソースコードを短くするという事も期待しません。
#クラスの関係
駒クラス(抽象)
歩、金、成桂などのクラス
駒台クラス
#質問
将棋の駒台クラスを作るにあたり、どのような設計にすれば良いものか悩んでいます。
ArrayListを使い駒台が所持している駒を保持するという方法を取ろうと思っていましたが、以下のような設計の方が色々と都合が良いのです。
駒台に乗る駒は飛、角、金、銀、桂、香、歩の7種類しかありません。
そこで、この7種の駒をそれぞれ何枚ずつ持っているかという事をint[7]という配列のようなもので管理する。
この方法で実現したいのですが、この構造だと困ることもあるわけです。
駒台クラスに必要なメソッドとして例えば、駒大に駒を追加する(引数は駒クラス)というものがあります。
引数から、配列のどの要素に+1するのかというのを決定するにはif/switchで条件分岐するという方法しか思いつきません。
配列名[引数で受け取った駒クラス] ++;この様に処理できればうまくいくわけですが...
javaのハッシュマップ機能を使えば実現できるわけですが、クラスを取得し、それをキーとするっていうのは美しくないし綺麗じゃないんですよね。
(クラスを取得する事をリフレクションと言うのでしょうか?)
そもそもクラスを配列の添字として使うのは良いやり方なのでしょうか。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/25 13:10
2017/02/25 13:55
2017/02/25 14:01