高级数据类型与泛型编程:怪物战斗游戏解析
在编程的世界里,高级数据类型和泛型编程是强大的工具,它们能帮助我们创建复杂而灵活的程序。下面我们将通过一个怪物战斗游戏来深入了解这些概念。
1. 怪物状态检查与显示
首先,我们需要一些简单的函数来检查怪物是否死亡。我们可以使用 every 命令来检查 *monsters* 数组中的每个怪物是否满足 monster-dead 函数的条件。
(defun monster-dead (m)
(<= (monster-health m) 0))
(defun monsters-dead ()
(every #'monster-dead *monsters*))
为了显示所有怪物的列表,我们使用 show-monsters 函数。这个函数会将部分工作委托给另一个函数,因此它不需要了解不同怪物类型的太多信息。
(defun show-monsters ()
(fresh-line)
(princ "Your foes:")
(let ((x 0))
(map 'list
(lambda (m)
(fresh-line)
(princ " ")
(princ (incf x))
(princ ". ")
订阅专栏 解锁全文
294



被折叠的 条评论
为什么被折叠?



