[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/slime-volleyball eaebbd5 1/2: slime-volleyball.el: Allo
From: |
Thomas Fitzsimmons |
Subject: |
[elpa] externals/slime-volleyball eaebbd5 1/2: slime-volleyball.el: Allow more experimental slime |
Date: |
Sun, 29 Nov 2020 17:31:29 -0500 (EST) |
branch: externals/slime-volleyball
commit eaebbd5d475fcf214c1e07657e02dced82744bf4
Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Commit: Thomas Fitzsimmons <fitzsim@fitzsim.org>
slime-volleyball.el: Allow more experimental slime
* slime-volleyball.el (slime-volleyball-experimental-slime): New
variable.
(slime-volleyball-training-maximum-expected-value): Use new
variable.
---
slime-volleyball.el | 68 +++++++++++++++++++++++++++--------------------------
1 file changed, 35 insertions(+), 33 deletions(-)
diff --git a/slime-volleyball.el b/slime-volleyball.el
index 150551e..788e0b5 100644
--- a/slime-volleyball.el
+++ b/slime-volleyball.el
@@ -273,6 +273,8 @@
(defvar slime-volleyball-endvar nil "Ending scene variable.")
(defvar slime-volleyball-music-player-process nil
"Object representing process playing music.")
+(defvar slime-volleyball-experimental-slime nil
+ "Non-nil to make the slime being trained more experimental.")
(cl-defstruct slime-volleyball-slime
"A player in the game of slime volleyball"
@@ -373,39 +375,39 @@
(let* ((max-val (max left right jump stop none))
(max-list nil) (rand-max nil) (index 0))
;; Uncomment to make the learning slime more experimental.
- ;; (if (eq (random 10) 3)
- ;; (elt '((0 slime-volleyball-slime-left)
- ;; (1 slime-volleyball-slime-right)
- ;; (2 slime-volleyball-slime-jump)
- ;; (3 slime-volleyball-slime-stop)
- ;; (4 slime-volleyball-slime-none))
- ;; (random 3))
- (dolist (check (list left right jump stop none))
- (when (< (abs (- check max-val)) 0.001)
- (push (list index
- (elt (list 'slime-volleyball-slime-left
- 'slime-volleyball-slime-right
- 'slime-volleyball-slime-jump
- 'slime-volleyball-slime-stop
- 'slime-volleyball-slime-none)
- index)) max-list))
- (setq index (1+ index)))
- (when (> (length max-list) 1)
- (setq rand-max (elt max-list (random (length max-list)))))
- (cond
- (rand-max rand-max)
- ((< (abs (- left max-val)) 0.001)
- '(0 slime-volleyball-slime-left))
- ((< (abs (- right max-val)) 0.001)
- '(1 slime-volleyball-slime-right))
- ((< (abs (- jump max-val)) 0.001)
- '(2 slime-volleyball-slime-jump))
- ((< (abs (- stop max-val)) 0.001)
- '(3 slime-volleyball-slime-stop))
- ((< (abs (- none max-val)) 0.001)
- '(4 slime-volleyball-slime-none)))
- ;;)
- ))
+ (if (and slime-volleyball-experimental-slime
+ (eq (random 10) 3))
+ (elt '((0 slime-volleyball-slime-left)
+ (1 slime-volleyball-slime-right)
+ (2 slime-volleyball-slime-jump)
+ (3 slime-volleyball-slime-stop)
+ (4 slime-volleyball-slime-none))
+ (random 3))
+ (progn
+ (dolist (check (list left right jump stop none))
+ (when (< (abs (- check max-val)) 0.001)
+ (push (list index
+ (elt (list 'slime-volleyball-slime-left
+ 'slime-volleyball-slime-right
+ 'slime-volleyball-slime-jump
+ 'slime-volleyball-slime-stop
+ 'slime-volleyball-slime-none)
+ index)) max-list))
+ (setq index (1+ index)))
+ (when (> (length max-list) 1)
+ (setq rand-max (elt max-list (random (length max-list)))))
+ (cond
+ (rand-max rand-max)
+ ((< (abs (- left max-val)) 0.001)
+ '(0 slime-volleyball-slime-left))
+ ((< (abs (- right max-val)) 0.001)
+ '(1 slime-volleyball-slime-right))
+ ((< (abs (- jump max-val)) 0.001)
+ '(2 slime-volleyball-slime-jump))
+ ((< (abs (- stop max-val)) 0.001)
+ '(3 slime-volleyball-slime-stop))
+ ((< (abs (- none max-val)) 0.001)
+ '(4 slime-volleyball-slime-none)))))))
;; The following is from computer slime's perspective.
;;