Does random return a number from 0.0 to 1.0 or from 0 to 65536?
If the latter then you could change pick-a-card to be:
(deffunction pick-a-card () (+ 1 (integer (* (/ (random) 65537)
52))))
Bob.
Bob Orchard
National Research Council Canada Conseil national de recherches Canada
Institute for Information Technology Institut de technologie de
l'information
1200 Montreal Road, Building M-50 M50, 1200 chemin Montrial
Ottawa, ON, Canada K1A 0R6 Ottawa (Ontario) Canada K1A 0R6
(613) 993-8557
(613) 952-0215 Fax / tilicopieur
[EMAIL PROTECTED]
Government of Canada | Gouvernement du Canada
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> Behalf Of [EMAIL PROTECTED]
> Sent: Monday, March 08, 2004 7:50 AM
> To: [EMAIL PROTECTED]
> Subject: Re: JESS: Poker Problem Continued -- dealing random cards.
>
>
> Well, just as in Java, this would be easier if the cards had a single
> index you could access them by. Say the cards had a "card-number"
> slot. Then to deal a card, you'd have to do the following steps (there
> are other ways to do this, but this might be the easiest for you to do
> right now.
>
> 1) Initialize a counter variable to 0.
>
> 2) Pick a random number from 1-52.
>
> 3) Fetch the given fact using a query
>
> 4) If the fact belongs to "dealer", modify the fact and increment the
> counter.
>
> 5) Repeat if the counter is less than five.
>
>
> On line 2, you need a function to pick a random number; this works
> just as in any other language. Call (random), multiply by the size of
> the range, add the first value in the range, cast to int.
>
> (deffunction pick-a-card()
> (return (integer (+ 1 (* (random) 52)))))
>
> On line 3, you need a query; given the "card-number" slot it would
> look like
>
> (defquery find-a-card
> (declare (variables ?n))
> (card (card-number ?n)))
>
>
> I think Peder Jakobsen wrote:
> [Charset iso-8859-1 unsupported, filtering to ASCII...]
> > Hi, I'm continuing my quest for the JESS poker game, but
> (random) is not
> > doing it for me unless i can get a random number between 1
> and 52. Your
> > suggestions are most appreciated:
> >
> > (clear)
> > (reset)
> > (watch all)
> >
> > (deftemplate card
> > "A Card in a Deck"
> > (slot suit)
> > (slot rank (type INTEGER))
> > (slot player)
> > )
> >
> > (deftemplate deck (slot card))
> >
> > (foreach ?suit (create$ Clubs Diamonds Hearts Spades)
> >
> > (foreach ?rank (create$ 1 2 3 4 5 6 7 8 9 10 11 12 13)
> > ;; assign each card to the dealer by default
> > (assert (card (suit ?suit) (rank ?rank) (player dealer)))
> >
> > )
> >
> > ;; assign a card to a player by modifying a random fact
> > (modify 5 (player Joe))
> >
> > ;; now assign a random card to a player by modifying a random fact
> > ;; ??? help ???
> >
> > --------------------------------------------------------------------
> > To unsubscribe, send the words 'unsubscribe jess-users
> [EMAIL PROTECTED]'
> > in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> > (use your own address!) List problems? Notify
> [EMAIL PROTECTED]
> > --------------------------------------------------------------------
> >
>
>
>
> ---------------------------------------------------------
> Ernest Friedman-Hill
> Science and Engineering PSEs Phone: (925) 294-2154
> Sandia National Labs FAX: (925) 294-2234
> PO Box 969, MS 9012 [EMAIL PROTECTED]
> Livermore, CA 94550 http://herzberg.ca.sandia.gov
>
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users
> [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify
> [EMAIL PROTECTED]
> --------------------------------------------------------------------
>
--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------