All pastes #823395 Raw Edit

gammy

public c v1 · immutable
·published 2007-12-19 10:09 UTC
rendered paste body
/* CLS is unused in this example. */#ifdef __TURBOC__  #include <conio.h>  #define CLS() clrscr()  #define SETPOS(a,b)   gotoxy(a,b)#else  #include <curses.h>  #define CLS() clear()  #define SETPOS(a,b)   move(b,a)#endif#include <assert.h>int getKey(void){#ifdef __TURBOC__  return getch(); /* it exists in conio but I don't know if it is equivalent */#else  return getch();#endif}void printChar(int in){#ifdef __TURBOC__//  putchar((char)in);	putchar('*');#else  printw("%c", in);#endif}int main(int argc, char *argv[]){  unsigned int Busy;  int MAX_X, MAX_Y;  struct Object{    int x, y;    char Character;  } Object;  Object.x = 38;  Object.y = 13;  Object.Character = '*';#ifdef __TURBOC__  MAX_X = 80; /* FIXME dunno how to get this */  MAX_Y = 25; /* FIXME dunno how to get this */  CLS();#else  /* curses init */  initscr();  curs_set(0);  raw();  nodelay(stdscr, TRUE);  noecho();  MAX_X = COLS;  MAX_Y = LINES;#endif  assert(MAX_X);  assert(MAX_Y);  Busy = 1;  while(Busy){    /* Clear */    SETPOS(Object.x, Object.y);    printChar(' ');    /* Keyboard input */    switch(getKey()){    case ';':      Busy = 0;      break;    case 'w':      Object.y--;      break;    case 's':      Object.y++;      break;    case 'a':      Object.x--;      break;    case 'd':      Object.x++;    }    if(Object.x < 1 || Object.y < 1 || Object.x >= MAX_X || Object.y >= MAX_Y)      Busy = 0;    /* Draw */    SETPOS(Object.x, Object.y);    printChar('*');#ifndef __TURBOC__    refresh();#endif  }#ifndef __TURBOC__  endwin();  CLS();#endif  return 0;}