has-item?
さて、9章6節の後半。
make-player(id:yagiey:20090314:1237041715)で作った値で大域変数*player*を束縛しといて、*player*をいろいろ変更していく。
まず、指定したプレイヤーが指定したアイテムを持っているかどうか調べるhas-item?
(define has-item? (lambda (player item) (member item (cdr (assoc 'inventory player)))))
んじゃ、使ってみる。
gosh> ;; まずはプレイヤーを作っとく (define *player* (make-player 'hp 320 'mp 66 'position #f 'inventory (list potion potion dagger cookie dagger))) *player* gosh> ;; cookieは持っている (has-item? *player 'cookie) (cookie dagger) gosh> ;; elixirは持っていない (has-item? *player 'elixir) #f
はいよ、特に問題無し。