Я занимаюсь разработкой маленькой игры MUD с использованием ракетки. В моей игре драгоценные камни, собранные игроком, используются для подкупа охранников. В настоящее время, если игрок обладает более чем 1 драгоценным камнем, игра не позволит им подкупить охранника.Количество элементов коллекции - Racket/Sceme
Вот соответствующий код:
;; This code processes the bribe command.
((equal? cmd 'bribe)
(if (get-area-item rid 'guard)
(begin
(if (eq? (user-attribute 'gem) 1)
(begin
(hash-table-set! areasdb rid (replace-area-item (get-area rid) 'guard '(guard #f)))
(user-add-value 'gem -1))
(describe 'bribe-no-gem))
(describe 'bribe))
(describe 'bribe-blank)))
скажу, если вы делаете это в рэкете, ваш код немного шаткий для ракетка кода. Особенно 'require', который должен по крайней мере быть' (require srfi/69) 'вместо использования полного синтаксиса' lib'. Если вы пишете чистую схему, вы можете использовать '#lang r5rs' вместо' #lang racket'. –