minik refactor ve rastgele sırayla tüm kelimeleri sorma
This commit is contained in:
21
kelime.lisp
21
kelime.lisp
@@ -4,8 +4,9 @@
|
||||
((kanji :accessor kanji :initarg :kanji :initform nil)
|
||||
(kana :accessor kana :initarg :kana :initform nil)
|
||||
(anlam :accessor anlam :initarg :anlam :initform nil)
|
||||
(grup :accessor grup :initarg :grup :initform nil)
|
||||
(altgrup :accessor altgrup :initarg :altgrup :initform nil)))
|
||||
(tür :accessor tür :initarg :tür :initform nil)
|
||||
(alttür :accessor alttür :initarg :alttür :initform nil)
|
||||
(sıra :accessor sıra :initarg :sıra :initform nil)))
|
||||
|
||||
(defmethod print-object ((kelime kelime) stream)
|
||||
(print-unreadable-object (kelime stream :type t)
|
||||
@@ -58,6 +59,22 @@
|
||||
(if index
|
||||
(values (aref kelimeler index) index))))
|
||||
|
||||
(defun kelimeleri-kar (kelimeler)
|
||||
(let ((boy (length kelimeler)))
|
||||
(loop :repeat (* 10 boy)
|
||||
:do (rotatef (aref kelimeler (random boy))
|
||||
(aref kelimeler (random boy))))))
|
||||
|
||||
(defun kelimeleri-sırala (kelimeler)
|
||||
(let ((boy (length kelimeler))
|
||||
(i 0))
|
||||
(loop :while (< i boy)
|
||||
:do (let ((kelime (aref kelimeler i)))
|
||||
(if (= i (sıra kelime))
|
||||
(incf i)
|
||||
(rotatef (aref kelimeler i)
|
||||
(aref kelimeler (sıra kelime))))))))
|
||||
|
||||
;; (defun son-n-kelime-tut (n)
|
||||
;; (setf son-kelimeler
|
||||
;; (make-array n :initial-element (make-instance 'kelime)
|
||||
|
||||
Reference in New Issue
Block a user