List Lisp四连击游戏

List Lisp四连击游戏,list,lisp,common-lisp,List,Lisp,Common Lisp,我有下面的棋盘,它代表一个四连胜的游戏 (定义板1() “((零零零零零) (零零零零零) (零零零零零) (零零零零零)) 有没有办法在程序内部将其转换为下面的电路板?假设board1中的一个NIL与board2中的一个(NIL-NIL-NIL)相同 (除板2() “((零零零零零)(零零零零零)(零零零零零零)(零零零零零)) ((零零零零零)(零零零零零)(零零零零零零)(零零零零零)) ((零零零零零)(零零零零零)(零零零零零零)(零零零零零)) ((零零零零零)(零零零零零)(零零零

我有下面的棋盘,它代表一个四连胜的游戏

(定义板1()
“((零零零零零)
(零零零零零)
(零零零零零)
(零零零零零))

有没有办法在程序内部将其转换为下面的电路板?假设board1中的一个NIL与board2中的一个(NIL-NIL-NIL)相同

(除板2()
“((零零零零零)(零零零零零)(零零零零零零)(零零零零零))
((零零零零零)(零零零零零)(零零零零零零)(零零零零零))
((零零零零零)(零零零零零)(零零零零零零)(零零零零零))
((零零零零零)(零零零零零)(零零零零零零)(零零零零零))


如果我可以转换它,这样我就可以重复使用我为board2编写的代码,这样我就可以在上面放上碎片,先呼吸,先面包,然后A*搜索最快的解决方案。

你应该了解文字。文字不应该被修改。所以不要用
引号制作游戏板。阅读以下内容:

如果你想重复使用board1,你可以这样做

(loop repeat 4 collect (mapcar 'copy-seq (board1)))
但为什么不这样做呢:

(loop repeat 4 collect (loop repeat 4 collect (make-list 4)))

到目前为止,您尝试了什么?“…?”->是的。您正在返回引用的数据。您(可能,从给出的代码中还不清楚)正在考虑稍后对其进行修改。修改引用的数据可能会以悲伤告终。