From 5faa1b4c9d94e2b970d45fc855ef9442954bd7e5 Mon Sep 17 00:00:00 2001 From: mRnea Date: Tue, 4 Mar 2025 21:36:34 +0300 Subject: =?UTF-8?q?minik=20refactor=20ve=20rastgele=20s=C4=B1rayla=20t?= =?UTF-8?q?=C3=BCm=20kelimeleri=20sorma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kelime.lisp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'kelime.lisp') diff --git a/kelime.lisp b/kelime.lisp index ca830f5..09610cf 100644 --- a/kelime.lisp +++ b/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) -- cgit v1.2.3