因此,我使用Lisp製作了一個相對簡單的遊戲。將項目放置在2D矩陣列中的第一個零元素
我創建了一個董事會指定大小的所有元素NIL:
(defun make-board(rows columns)
(cond ((= rows 1) (list (make-list columns)))
(t (append (list (make-list columns)) (make-board (1- rows) columns)))))
現在我工作的地方的功能,將在二維表的列的第一個nil元素放置一個值:
(defun place(player column matrix)
;need some help here
;I can get the specified column, is there a better way?!
(let (col)(get-column column matrix))
)
我可以檢索指定列:
; return the given column
(defun get-column
(colnum matrix)
(mapcar (lambda (row) (nth colnum row)) matrix))
我喜歡這種感覺是S但不幸的是,Lisp對我來說工作不好。我也喜歡這個沒有迭代的實現,因爲這是做Lisp的「正確」方式。
編輯:
爲了澄清,使板將返回類似如下:
(make-board 5 5)
((NIL NIL NIL NIL NIL)
(NIL NIL NIL NIL NIL)
(NIL NIL NIL NIL NIL)
(NIL NIL NIL NIL NIL)
(NIL NIL NIL NIL NIL))
爲什麼標記爲'Emacs'? Emacs Lisp中的代碼是? –