home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3281 / main.c < prev    next >
C/C++ Source or Header  |  1991-05-02  |  3KB  |  112 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.  * main for "video_poker" - just like the ones in Nevada.
  20.  * Jay Konigsberg
  21.  * jak@sactoh0 - pacbel!sactoh0!jak
  22.  */
  23.  
  24. #include    "vid_local.h"
  25. #include    <signal.h>
  26. #include    "vid_curses.h"
  27. #include    "vid_poker.h"
  28.  
  29. int        bet,
  30.         credits;
  31.  
  32. void    main()
  33. {
  34. int    deck[10],    /* The random numbers as they were generated    */
  35.     value[10],    /* The card values - A, 2 ... 12=Q, 13=K    */
  36.     loop;        /* loop while bet is selected            */
  37. char    *suite[10];    /* Corasponding suites (Spades, Hearts, ...    */
  38. int    cardinx;    /* Just a loop variable                */
  39.  
  40. credits=0;
  41. rawmode();        /* set up char-at-a-time processing        */
  42. signal(SIGINT, cleanup);/* trap inturrepts (also in rawmode)        */
  43.  
  44. initscr();
  45. payoff_val(0);        /* Put the payoff values on the screen */
  46.  
  47. for (;;)
  48.     {
  49.     for (cardinx=0; cardinx<10; ++cardinx)
  50.     {
  51.     deck[cardinx] = 0;
  52.     value[cardinx] = 0;
  53.     suite[cardinx] = (char *)0;
  54.     }
  55.     bet = 0;
  56.     loop = TRUE;
  57.     while (loop)
  58.     {
  59.     mvaddstr(21,0,"B/b=bet one credit, M/m=bet max credits, Q/q=quit?\t\t");
  60.     move(21,51);
  61.     refresh();
  62.     switch (getch())
  63.         {
  64.         case '\n':
  65.         case '\r':
  66.         loop=FALSE;
  67.         break;
  68.         case 'q':
  69.         case 'Q':
  70.         case 'n':
  71.         case 'N':
  72.         loop=FALSE;
  73.         cleanup();
  74.         break;
  75.         case 'M':
  76.         case 'm':
  77.         case ' ':
  78.         loop=FALSE;
  79.         credits -= (5 - bet);
  80.         bet = 5;
  81.         move(21,65);
  82.         printw("Bet     %-6d", bet);
  83.         payoff_val(bet); /* Put the payoff values on the screen */
  84.         break;
  85.         case 'b':
  86.         case 'B':
  87.         ++bet;
  88.         if ( bet == 5 )
  89.             loop=FALSE;
  90.         else
  91.             loop=TRUE;
  92.         payoff_val(bet); /* Put the payoff values on the screen */
  93.         move(21,65);
  94.         printw("Bet     %-6d", bet);
  95.         --credits;
  96.         break;
  97.         }
  98.     mvprintw(22, 65, "Credits %-5d    ", credits);
  99.     refresh();;
  100.     if (bet == 0)
  101.         loop=TRUE;
  102.     }
  103.     deal(deck, 5);
  104.     setup_deck(deck, value, suite, 5);
  105.     sort(value, suite, 5);
  106.     display_hand(value, suite, 5);
  107.     (void)display_val(id_hand(value, suite));
  108.     draw(deck, value, suite);
  109.     }
  110. /*NOTREACHED*/
  111. }
  112.