diff options
| author | Miguel <m.i@gmx.at> | 2018-09-02 04:02:38 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-02 04:02:38 +0200 |
| commit | 300fb2f088d8530b630e01ef24ce032710a2f8b9 (patch) | |
| tree | 0b03ffde600db8d772a649af7b82267af23874a3 /userspace/snake2.c | |
| parent | ab6b44f5197e4c6c19f225f909035385d37883b4 (diff) | |
clean snake
Diffstat (limited to 'userspace/snake2.c')
| -rw-r--r-- | userspace/snake2.c | 55 |
1 files changed, 20 insertions, 35 deletions
diff --git a/userspace/snake2.c b/userspace/snake2.c index 78be50d..3b179ac 100644 --- a/userspace/snake2.c +++ b/userspace/snake2.c @@ -1,55 +1,40 @@ #include <stdio.h> - -int data4[100]; - -// syscall will be move to newlib? -#define SYSCALL_CLONE 83 - -int _clone(void) -{ - return syscall(SYSCALL_CLONE,0,0,0); -} +#include "snake2.h" static char lastc='d'; int main() { - printf("setvbuf returned %i\n",setvbuf(stdin,NULL,_IONBF,0)); - printf("setvbuf returned %i\n",setvbuf(stdout,NULL,_IONBF,0)); - printf("\033c"); - printf("\033HFOOL-SNAKE"); - //printf("\033d\033d\033dFOOL-SNAKE"); - printf("\033d"); - char snake[]="FOOLSNAKESFOOL"; + // turn off buffering for stdin and stdout + setvbuf(stdin,NULL,_IONBF,0); + setvbuf(stdout,NULL,_IONBF,0); - int thr=_clone(); - if(thr==0) - { - uint64_t x=0; + printf("\033c\033HFOOL-SNAKE\033d\n"); // title + char snake[]="FOOLSNAKES"; // snakes letters + + int thread=_clone(); // we want to threads + uint64_t x=0; // counter + if(thread==0) // thread 1 + { while(1) { - for(int i=0;i<10000000;i++); + for(int i=0;i<10000000;i++); // naive wait x++; - if(lastc=='d')printf("\033f"); - if(lastc=='a')printf("\033b"); - if(lastc=='w')printf("\033u"); - if(lastc=='s')printf("\033d"); + if(lastc=='d')printf("\033f"); //rigth + if(lastc=='a')printf("\033b"); //left + if(lastc=='w')printf("\033u"); //up + if(lastc=='s')printf("\033d"); //down - printf("\033[0;%im\033b%c",31+(uint8_t)(x%6),snake[x%10]); + // put letter + printf("\033[0;%im\033b%c",31+(uint8_t)(x%6),snake[x%10]); } } - else - { - while(1) - { - char c=fgetc(stdin); - lastc=c; - } - } + else while(1) lastc=fgetc(stdin); // thread 2 } + |
