[aisleriot] scorpion: Use hint-move instead of get-name.
- From: Vincent Povirk <vpovirk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [aisleriot] scorpion: Use hint-move instead of get-name.
- Date: Mon, 28 May 2012 22:41:29 +0000 (UTC)
commit 470681043dfe1e6a55b98064c31b56d754e051cd
Author: Vincent Povirk <madewokherd gmail com>
Date: Mon May 28 15:05:07 2012 -0500
scorpion: Use hint-move instead of get-name.
For bug 551859.
games/scorpion.scm | 27 +++++++++++++--------------
1 files changed, 13 insertions(+), 14 deletions(-)
---
diff --git a/games/scorpion.scm b/games/scorpion.scm
index 33bf17c..35131ba 100644
--- a/games/scorpion.scm
+++ b/games/scorpion.scm
@@ -17,6 +17,8 @@
(use-modules (aisleriot interface) (aisleriot api))
; winning game seed: 2036201447
+(define tableau '(1 2 3 4 5 6 7))
+
(define (new-game)
(initialize-playing-area)
(set-ace-low)
@@ -143,7 +145,7 @@
(and (not (empty-slot? 0))
(list 0 (_"Deal the cards"))))
-(define (check-slot-cards card card-list)
+(define (check-slot-cards slot1 slot2 count card card-list)
(cond ((or (= (length card-list) 0)
(not (is-visible? (car card-list))))
#f)
@@ -151,16 +153,16 @@
(get-suit (car card-list)))
(= (get-value card)
(+ 1 (get-value (car card-list)))))
- #t)
- (#t (check-slot-cards card (cdr card-list)))))
+ (hint-move slot2 count slot1))
+ (#t (check-slot-cards slot1 slot2 (+ count 1) card (cdr card-list)))))
(define (check-a-slot slot1 slot2)
(cond ((= slot2 8)
#f)
((and (not (= slot1 slot2))
(not (empty-slot? slot2))
- (check-slot-cards (get-top-card slot1) (get-cards slot2)))
- #t)
+ (check-slot-cards slot1 slot2 1 (get-top-card slot1) (get-cards slot2)))
+ (check-slot-cards slot1 slot2 1 (get-top-card slot1) (get-cards slot2)))
(#t (check-a-slot slot1 (+ 1 slot2)))))
(define (check-slot slot-id)
@@ -168,27 +170,24 @@
#f)
((and (not (empty-slot? slot-id))
(check-a-slot slot-id 1))
- (list 1
- (get-name (make-card (- (get-value (get-top-card slot-id)) 1)
- (get-suit (get-top-card slot-id))))
- (get-name (get-top-card slot-id))))
+ (check-a-slot slot-id 1))
(#t (check-slot (+ 1 slot-id)))))
-(define (here-kingy-kingy card-list)
+(define (here-kingy-kingy slot-id count card-list)
(cond ((or (= (length card-list) 0)
(= (length card-list) 1)
(not (is-visible? (car card-list))))
#f)
((= (get-value (car card-list)) king)
- (list 2 (get-name (car card-list)) (_"an empty slot")))
- (#t (here-kingy-kingy (cdr card-list)))))
+ (hint-move slot-id count (find-empty-slot tableau)))
+ (#t (here-kingy-kingy slot-id (+ count 1) (cdr card-list)))))
(define (king-avail? slot-id)
(cond ((= slot-id 8)
#f)
((and (not (empty-slot? slot-id))
- (here-kingy-kingy (get-cards slot-id)))
- (here-kingy-kingy (get-cards slot-id)))
+ (here-kingy-kingy slot-id 1 (get-cards slot-id)))
+ (here-kingy-kingy slot-id 1 (get-cards slot-id)))
(#t (king-avail? (+ 1 slot-id)))))
(define (check-for-empty)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]