回答編集履歴

4

ゴミのような疑似コードを追加

2024/06/04 05:44

投稿

fana
fana

スコア11954

test CHANGED
@@ -6,6 +6,35 @@
6
6
 
7
7
  そのどちらでもない「ダメージ計算をするやつ」という何か(型)みたいのがある形とかでも良いのでは.
8
8
  例えば攻撃手段毎にダメージ計算が変わるならば「攻撃手段」という型がダメージ計算処理を行っても良いのでは.
9
+
10
+ 以下,素人考え:
11
+
12
+ ```
13
+ class 攻撃手段
14
+ {
15
+ //生成時に「攻撃キャラ」側のパラメタ値を記憶させる
16
+ ctor( 攻撃キャラのパラメタ群 ){ 引数を保持しておく }
17
+
18
+ //ダメージ計算してダメージ量を返す
19
+ int CalcDamage( 防御キャラのパラメタ群 )
20
+ { ここで「攻撃キャラ」「防御キャラ」双方のパラメタ群が全て揃うので計算できる }
21
+ }
22
+ ```
23
+
24
+ ```
25
+ class 攻撃キャラ
26
+ {
27
+ //攻撃に用いる攻撃手段を生成する(引数とかはよくわからん)
28
+ 攻撃手段 Create攻撃手段( ??? ){ 自身のパラメタ値を保持する攻撃手段を生成して返す }
29
+ }
30
+
31
+ class 防御キャラ
32
+ {
33
+ //攻撃を受ける処理
34
+ ??? attacked( 攻撃手段 )
35
+ { 自身のHP -= 攻撃手段.CalcDamage(自身のパラメタ群); }
36
+ }
37
+ ```
9
38
 
10
39
  ---
11
40
 

3

文頭に注意書きを追加

2024/06/04 01:54

投稿

fana
fana

スコア11954

test CHANGED
@@ -1,3 +1,7 @@
1
+ (※念のための注意書き:この回答の記述者は玄人ではありません)
2
+
3
+ ---
4
+
1
5
  > 攻撃キャラ防御キャラどちらかにダメージ計算メソッドを実装する必要があり
2
6
 
3
7
  そのどちらでもない「ダメージ計算をするやつ」という何か(型)みたいのがある形とかでも良いのでは.

2

微修正

2024/06/04 01:50

投稿

fana
fana

スコア11954

test CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  > getterを使わなければいけなくなってしまいそうです
9
9
 
10
- 単純にパラメタ値を1つ1つ取り出すのか,その他なのか,やり方はあるのでしょうけども,あなたが「何かしらの情報を取り出す」メソッドとかプロパティとかいうのを今現在必要としているのであれば,それを素直に設けて使うことの何が問題なのですか?
10
+ 単純にパラメタ値を1つ1つ取り出すのか,その他(ちょっとした計算をした結果を返すとか?)なのか,やり方はあるのでしょうけども,あなたが「何かしらの情報を取り出す」メソッドとかプロパティとかいうのを今現在必要としているのであれば,それを素直に設けて使うことの何が問題なのですか?
11
11
  それは
12
12
 
13
13
  > 多用すると良くない

1

追記

2024/06/04 01:46

投稿

fana
fana

スコア11954

test CHANGED
@@ -15,3 +15,10 @@
15
15
  とかいう話の「多用」に該当するのですか? しないのですか? その線引きはどこですか?
16
16
  仮に該当するとしたら「何がどう」良くないのですか? 「誰にとって」良くないのですか?
17
17
  「あなた自身が これこれこういう理由で この実装は良くないと考えている」みたいな話がごっそりと抜けているように思います.
18
+
19
+ ---
20
+
21
+ これは単なる初心者の雑魚丸出しな考えですが,
22
+ 自身の中にまともに存在していない何らかの良し悪しの基準に基づいて良いコードを書く,というのはかなり無理な話だと思います.
23
+ どこかの誰かが提唱している今現在の自分では理解できない謎の基準になんとなく盲目的に従おうとしても意味無いですよ.
24
+ ひとりでやっているなら「自分にとっての」,複数人なら「その人たちにとっての」,「現時点における良し悪し」というのを考えれば良いのではないでしょうか.