>>256
update-structみたいなのは
・予めスロットの名前しか分かってない上存在しないスロットにもアクセスする可能性はある
・実行時にならないとどんな構造体が来るか分からない
こんな場合に必要になるものだと思うよ
この条件だと、規格の範囲では構造体じゃなくてクラスで作るものになる
attackのように決め打ちで(- (player-hp b) (player-attack a))を参照してるなら、使用しない例のように#'(setf player-hp)で良いような気がするんだけど
どうしてもメタプログラミングしたいんならマクロでコード生成とか
単に書くのが面倒だからってことだけど
(defattack player (a b) ...)
(defbattle player (a b) ...)
(defmove enemy (a b) ...)