home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume13 / dr_mario / part01 / startup.c < prev   
C/C++ Source or Header  |  1992-01-12  |  2KB  |  64 lines

  1. #include "info.h"
  2.  
  3. void 
  4. newstart()
  5. {
  6.     c[0] = 'A'; /* Game pieces */
  7.     c[1] = 'L'; 
  8.     c[2] = 'S'; 
  9.  
  10.     p2 = &p1[1]; /*pointers not really necessary here
  11.                     for that matter neither is array*/
  12.  
  13.     w = subwin(stdscr,18, 10, 2, 32);/*make gameboard*/
  14.     if (w == (WINDOW *) NULL)
  15.         fatal("memory error"); /*trouble- no memory!*/
  16.  
  17.     box(w, 124, 34);
  18.  
  19.     mvwprintw(w, 0, 0, "___!  !___");/*change box a little*/
  20.     mvwaddch(w, 17, 0, 34);
  21.     mvwaddch(w, 17, 9, 34);
  22. }
  23.  
  24. void 
  25. start()                     /*call this every new level*/
  26. {
  27.     void            nextpiece();
  28.     extern char     c[];
  29.     int             i, x, y, z, ch;
  30.     for (y = 1; y < 17; y++)     /*zap board and a[][]*/
  31.         for (x = 1; x < 9; x++)
  32.             mvwaddch(w, y, x, BLANK), a[y][x] = 0;
  33.     wrefresh(w);
  34.     wstandout(w); /*reverse all characters added till standend()*/
  35.     for (i = 0; i < v; i++) {
  36.         do {
  37.             z = rx(3, 0); /*which char?*/
  38.             x = rx(8, 1);
  39.             y = rx(14, 4);
  40.             ch = mvwinch(w, y, x);
  41.             if ((mvwinch(w, y + 3, x) == c[z] || mvwinch(w, y - 3, x) == c[z])
  42.                 || (mvwinch(w, y, x + 3) == c[z] || mvwinch(w, y, x - 3) == c[z])) /* can't have 4 in a row or col to start */
  43.                 ch = 0;
  44.  
  45.         } while (ch != BLANK);
  46.         mvwaddch(w, y, x, c[z]); /*place on board */
  47.         a[y][x] = 3; /* show bug in a[][]*/
  48.         wrefresh(w);
  49.     }
  50.     wstandend(w);
  51.     nextpiece();/*show next piece*/
  52. }
  53. void 
  54. nextpiece()
  55. {
  56.     static chtype   na, nb;/*remember every time*/
  57.     p1->c = c[na];/*put old chars in play*/
  58.     p2->c = c[nb];
  59.     na = rx(3, 0);/* make new next piece & display it*/
  60.     nb = rx(3, 0);
  61.     mvprintw(1, 36, "%c%c", c[na], c[nb]);
  62.     refresh();
  63. }
  64.