#include //printf and shit #include #include int main( int argc, char *argv[] ) { //yoinked from the internet argc is number of args and argv is a "array of arguments" clock_t prevtime, currenttime; prevtime = clock(); int delay = 1000; int dosspin = 0; bool gamerun = true; struct entity { int x; int y; int xold; int yold; } player = {0, 0, 0, 0}, enemy = {24, 16, 0, 0}; initscr(); //cbreak(); nodelay(stdscr, true); //cbreak would wait for you to press a key this doesnt noecho(); clear(); while(gamerun) { currenttime = clock(); dosspin = clock() % 4; if ((currenttime - prevtime) > delay) { player.xold = player.x; player.yold = player.y; enemy.xold = enemy.x; enemy.yold = enemy.y; switch (getch()) { case 'a' : player.y--; break; case 'w' : player.x--; break; case 'd' : player.y++; break; case 's' : player.x++; break; case 'q' : gamerun = false; break; } //game logic not kb dependent if ((enemy.x == player.x) && (enemy.y == player.y)){ endwin(); puts("you lose :("); return 0; //TODO fix this this should not be here... } //TODO fix enemy movement (it works but its kinda broken) if ((clock() % 500) == 1) { if (enemy.x > player.x) { enemy.x--; } else {enemy.x++;} if (enemy.y > player.y) { enemy.y--; } else {enemy.y++;} } prevtime = currenttime; } //entity rendering mvaddch(enemy.xold, enemy.yold, ' '); switch (dosspin) { case 0 : mvaddch(enemy.x, enemy.y, '-'); break; case 1 : mvaddch(enemy.x, enemy.y, '/'); break; case 2 : mvaddch(enemy.x, enemy.y, '|'); break; case 3 : mvaddch(enemy.x, enemy.y, '\\'); break; } mvaddch(player.xold, player.yold, ' '); mvaddch(player.x, player.y, '#'); } //cleanup endwin(); printf("Args %d",argc); //anti Wall Werror Wextra puts(argv[0]);//anti Wall Werror Wextra return 0; }