minik refactor ve rastgele sırayla tüm kelimeleri sorma

This commit is contained in:
2025-03-04 21:36:34 +03:00
parent 20ba3d08cc
commit 5faa1b4c9d
4 changed files with 68 additions and 33 deletions

View File

@@ -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)