#include #include struct timeval cl; main() { char c; long cl0,cl1,cl2,usecfut=0,minslice=10000; int y=10,x=10,xold,yold,i=0,xd,yd; initscr(); scrollok(stdscr,TRUE); leaveok(stdscr,TRUE); cbreak(); noecho(); halfdelay(0); curs_set(0); nonl(); idlok(stdscr,TRUE); do { do { gettimeofday(&cl,NULL); }while(cl.tv_usec<=usecfut); usecfut=usecfut+minslice; cl0=cl0+1; if (usecfut>=1000000) usecfut=0; c=getch(); flushinp(); xold=x;yold=y; if (c=='o') xd=-1,yd=0; if (c=='p') xd=1,yd=0; if (c=='a') yd=-1,xd=0; if (c=='z') yd=1,xd=0; if (c==' ') yd=0,xd=0; if (c=='r') y=x=5; if (x>80) x=0; if (y>20) y=00; if (x<0) x=79; if (y<0) y=20; if (cl0>=cl2) { x=x+xd;y=y+yd; cl2=cl2+5,mvaddch(y,x,'O'); } if (cl0>=cl1) cl1=cl0+100, mvprintw(1,1,"%ld",cl0); refresh(); } while(c!='q'); endwin(); }