summaryrefslogtreecommitdiff
path: root/kelime.lisp
diff options
context:
space:
mode:
authormRnea <akannemre@gmail.com>2025-03-04 21:36:34 +0300
committermRnea <akannemre@gmail.com>2025-03-04 21:36:34 +0300
commit5faa1b4c9d94e2b970d45fc855ef9442954bd7e5 (patch)
treeeb3b888b3c769fe0a2e29dd32ba39bcc2887a242 /kelime.lisp
parent20ba3d08ccba7f1c483f4bfdb324d000bb7faed4 (diff)
minik refactor ve rastgele sırayla tüm kelimeleri sormaHEADmaster
Diffstat (limited to 'kelime.lisp')
-rw-r--r--kelime.lisp21
1 files changed, 19 insertions, 2 deletions
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)