これってStatus?State?
こんな疑問から考えてみた
以下はあくまで浅い個人の解釈
ポケモンでの"Status"
いわゆるステータスなのでイメージがしやすい
・レベル
・HP
・こうげき
・すばやさ
などが挙げられる。
「このポケモンの状態は〇〇だ。」と言い換えられるものが該当しそう
ポケモンの"State"は?
上で述べた
「このポケモンの状態は〇〇だ。」
と対称させて考えるのであれば
「このポケモンは〇〇な状態だ。」
と解釈するのがしっくりきやすいように思う
「Statusはレベル100だ。」に比べると
「レベル100のStateだ。」には若干違和感がある
「健康な状態だ。」から考えると、少し変化するが
「もうどくの状態」、「ひんしの状態」なんかもStateなのだろう
「状態はもうどくだ」には違和感のないことが、
このStatus/Stateの使い分けのややこしいところだと思う
英語でもある程度は交換可能らしいので完全な切り分けは無理
排他的か、そうでないか
「状態は〇〇だ」、「〇〇な状態」だけでは区別できない部分を切り分けるため
もう一つの視点として"排他性の有無"を提案する
Status.IsPoisoned = true/false (どく状態)は Status で
State = Poisoned なら State というのが個人的な解釈
Status.IsPoisoned
の場合、Status のメンバは複数あることが予想される
Status.IsBurned
(やけど)
Status.IsFainted
(ひんし)
などは同じクラス内のメンバとして常に存在する。
一方で State = Poisoned
は他の要素を排除している
State = Burned
, State = Fainted
はそれぞれ排他的に存在する状態だ
一般にポケモンはまひしながらどくをあびながらひんし…のような状態になることはない
なのでいわゆる「状態異常」の"状態"は State になる、と思っている
結論
Status
・「状態は〇〇だ。」で表せる
・非排他的
State
・「〇〇な状態だ。」で表せる
・排他的
おまけ
statusか、stateか、というテーマを書こうとしたときにぱっと思い浮かんだのは
switch(state)
if(status.IsError)
という使い分けだが、これだけだとあまり展開させられる感じがしなかったので
著名タイトルの力を借りることにした