home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3281 / deal.c < prev    next >
C/C++ Source or Header  |  1991-05-02  |  1KB  |  55 lines

  1. /*LINTLIBRARY*/
  2.  
  3. /*
  4.  * Copyright (C) 1991 by Jay Konigsberg. mail: jak@sactoh0
  5.  *
  6.  * Permission to use, copy, modify, and distribute this  software  and  its
  7.  * documentation is hereby  granted,  provided  that  the  above  copyright
  8.  * notice appear in all copies  and that  both  the  copyright  notice  and
  9.  * this permission notice appear in supporting documentation. This software
  10.  * is provided "as is" without express or implied  warranty.  However,  the
  11.  * author retains all Copyright priviliges and rights  to  renumeration  if
  12.  * this software is sold.
  13.  *
  14.  * Also, and very important. This game is for recrecation ONLY and is NOT
  15.  * to be used for gambling in any way. 
  16.  */
  17.  
  18. /*
  19.  * deal.c - generate the random numbers that will represent cards.
  20.  */
  21.  
  22. #include    "vid_poker.h"
  23. #include    <sys/types.h>
  24.  
  25. extern    double    drand48();
  26. extern    void    srand48();
  27. extern    time_t    time();
  28.  
  29. static    time_t    seed=0;
  30.  
  31. void    deal(deck, numcards)
  32. int    *deck,            /* 52 card deck                */
  33.     numcards;        /* number of cards requested        */
  34. {
  35. int    check,            /* index for preventing dup cards    */
  36.     count=0;        /* count of cards already delt (0 or 5)    */
  37.  
  38. if ( seed == (time_t)0 )
  39.     {
  40.     seed=time(&seed);
  41.     (void)srand48(seed);
  42.     }
  43.  
  44. if ( deck[0] != 0 )
  45.     numcards += (count=5);    /* we are on the draw    */
  46.  
  47. for (; count < numcards; ++count)
  48.     {
  49.     deck[count] = 52 * drand48()+1;
  50.     for ( check=0; check < count; ++check )
  51.     if ( deck[check] == deck[count] )
  52.         --count;
  53.     }
  54. }
  55.