home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cenvi23.zip / FRANTICK.CMM < prev    next >
Text File  |  1995-03-30  |  1KB  |  43 lines

  1. //*******************************************************
  2. //*** Frantick.cmm - silly CEnvi program to bounce an ***
  3. //*** ver.1          asterisk around the screen       ***
  4. //*******************************************************
  5.  
  6. // find out how big the screen is
  7. MaxRow = ScreenSize().row - 1;
  8. MaxCol = ScreenSize().col - 1;
  9.  
  10. // get a random initial position for the bouncy asterisk
  11. srand();
  12. OldRow = rand() % (MaxRow + 1);
  13. OldCol = rand() % (MaxCol + 1);
  14.  
  15. // clear the screen to start with a fesh slate
  16. ScreenClear();
  17.  
  18. while ( !kbhit() ) {
  19.    // draw new dots and erase old ones forever
  20.    do {
  21.       // calculate new row, so long as it is in bounds
  22.       Row = OldRow + (rand() % 3) - 1;
  23.    } while( Row < 0  ||  MaxRow < Row );
  24.    do {
  25.       // calculate new column, so long as it is in bounds
  26.       Col = OldCol + (rand() % 3) - 1;
  27.    } while( Col < 0  ||  MaxCol < Col );
  28.    SafePutchar(' ',OldRow,OldCol);
  29.    SafePutchar('*',OldRow = Row,OldCol = Col);
  30. }
  31.  
  32. SafePutchar(c,row,col) // just like putchar, but won't write into lower-right corner
  33. {                      // so we don't get accidental scrolling
  34.    ScreenCursor(col,row);
  35.    if ( row != MaxRow  ||  col != MaxCol ) {
  36.       putchar(c);
  37.    }
  38.    ScreenCursor(col,row);
  39. }
  40.  
  41. // flush the keyboard
  42. while( kbhit() ) getch();
  43.