2013-05-12 7 views
6

में मैट्रिक्स के रूप में एक सूची को मुद्रित करने के लिए कैसे मैं विंडोज गेम माइन्सवीपर बनाने की कोशिश कर, सामान्य लिस्प में काम कर रहा हूं।सामान्य लिस्प

मैं एक सूची (1 1 1 2 2 2 3 3 3) है और मुद्रित करने के लिए मैट्रिक्स की तरह

(1 1 1 
2 2 2 
3 3 3) 

कि कैसे करना है कि करना चाहते हैं?

संपादित

मैं

(format t "Input width:") 
(setf width (read)) 
(format t "Input height:") 
(setf height (read))  
(format t "How many mines:") 
(setf brMina (read)) 

(defun matrica (i j) 
    (cond ((= 0 i) '()) 
    (t (append (vrsta j) (matrica (1- i) j))))) 


(setf minefield (matrica width height)) 

(defun stampaj() 
     (format t "~%~a" minefield)) 
+0

आपको अपने द्वारा किए गए कोड में से कुछ पोस्ट करना चाहिए। –

उत्तर

4

एक अन्य उदाहरण है, मनोरंजन के लिए बहुत-प्रिंटर का उपयोग कर:

(defun print-list-as-matrix 
    (list elements-per-row 
    &optional (cell-width (1+ (truncate (log (apply #'max list) 10))))) 
    (let ((*print-right-margin* (* elements-per-row (1+ cell-width))) 
     (*print-miser-width* nil) 
     (*print-pretty* t) 
     (format-string (format nil "~~<[email protected]{~~~ad~~^ ~~}[email protected]:>~%" cell-width))) 
    (format t format-string list))) 

इस तरह काम करता है:

CL-USER> (print-list-as-matrix (loop for i from 1 to 9 collect i) 3) 
1 2 3 
4 5 6 
7 8 9 
NIL 
CL-USER> (print-list-as-matrix (loop for i from 1 to 25 collect i) 5) 
1 2 3 4 5 
6 7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 
21 22 23 24 25 
NIL 
CL-USER> (print-list-as-matrix (loop for i from 1 to 16 collect i) 2) 
1 2 
3 4 
5 6 
7 8 
9 10 
11 12 
13 14 
15 16 
2

इस तरह की शुरुआत में हूँ:

(defun print-list-as-grid (list rows cols) 
    (assert (= (length list) (* rows cols)) 
    (loop for row from 0 below rows do 
    (loop for col from 0 below cols do 
     (princ (car list)) 
     (prinC#\space) 
     (setf list (cdr list))) 
    (prinC#\newline))) 

* (print-list-as-grid '(a b c d e f g h i) 3 3) 
A B C 
D E F 
G H I 

NIL 
+1

धन्यवाद यह काम कर रहा है। पहली पंक्ति है (प्रिंट-लिस्ट-ए-ग्रिड को हटाएं (सूची पंक्तियों कोल्स) – kosta