#include #include #include #include #include #include #include using namespace std; #define termMaxX 145 #define termMaxY 36 #define paMaxX 100 #define paMaxY 30 #define upArrow 65 #define downArrow 66 #define rightArrow 67 #define leftArrow 68 void drawVoid(){ printf("\033[1;32m\033[40m \033[0m"); //\033[1;32m green text,\033[40m black bg, display " ",\033[0m set default } void drawSnake(){ printf("\033[1;32m\033[40m*\033[0m"); //\033[1;32m green text,\033[40m black bg, display *,\033[0m set default } void SetCursorPosition(int XPos, int YPos) { printf("\033[%d;%dH",YPos+1,XPos+1); } void moveSnake(int deltaX, int deltaY, int posX[100], int posY[100], int tempX[2], int tempY[2]){ tempX[0]=posX[0]+deltaX; tempY[0]=posY[0]+deltaY; bool sw=0; for(int i=0;(posX[i]!=-1)&&(posY[i]!=-1);i++){ if((posX[i+1]==-1)&&(posY[i+1]==-1)){ SetCursorPosition(posX[i],posY[i]); drawVoid(); } if(sw==0){ tempX[1]=posX[i]; tempY[1]=posY[i]; posX[i]=tempX[0]; posY[i]=tempY[0]; SetCursorPosition(posX[i],posY[i]); drawSnake(); sw=1; } else if(sw==1){ tempX[0]=posX[i]; tempY[0]=posY[i]; posX[i]=tempX[1]; posY[i]=tempY[1]; SetCursorPosition(posX[i],posY[i]); drawSnake(); sw=0; } } } void drawFrame(){ for(int i=0;i1)&&(lastInput!='d')){ moveSnake(-1,0,posX,posY,tempX,tempY); lastInput='a'; } } else if(input=='d'||input==rightArrow){ if((posX[0]<98)&&(lastInput!='a')){ moveSnake(1,0,posX,posY,tempX,tempY); lastInput='d'; } } else if(input=='w'||input==upArrow){ if((posY[0]>1)&&(lastInput!='s')){ moveSnake(0,-1,posX,posY,tempX,tempY); lastInput='w'; } } else if(input=='s'||input==downArrow){ if((posY[0]<28)&&(lastInput!='w')){ moveSnake(0,1,posX,posY,tempX,tempY); lastInput='s'; } } else if(input=='b'){ lastInput='0'; } thistimeMillisec=(double)(this_t-start_t)/(double)CLOCKS_PER_SEC*15; if(((int)thistimeMillisec%10)==1){ if(lastInput=='a'){ if(posX[0]>1){ moveSnake(-1,0,posX,posY,tempX,tempY); lastInput='a'; } } else if(lastInput=='d'){ if(posX[0]<98){ moveSnake(1,0,posX,posY,tempX,tempY); lastInput='d'; } } else if(lastInput=='w'){ if(posY[0]>1){ moveSnake(0,-1,posX,posY,tempX,tempY); lastInput='w'; } } else if(lastInput=='s'){ if(posY[0]<28){ moveSnake(0,1,posX,posY,tempX,tempY); lastInput='s'; } } start_t=this_t; } SetCursorPosition(fruitX,fruitY); printf("0"); //system("((speaker-test -t sine -f 700)& pid=$!; sleep 0.1s; kill -9 $pid) > /dev/null"); } } /*int mainmenu(){ for(int i=0;i