| Node Dequeue() { Node *p=snake.head; Node outNode=*p; snake.head=p->next; snake.length--; delete p; return outNode; } int Hit(int x,int y) { if(x<frame.left||x>=frame.right||y<frame.top||y>=frame.bottom)//hit the wall return 1; Node *p=snake.head->next; for(int i=snake.length-1;i>3;i--,p=p->next)//hit itself if(x==p->x&&y==p->y) return 1; return 0; } bool GameOver() { int x=getmaxx()/2-50; int y=getmaxy()/2-20; setfillstyle(SOLID_FILL,DARKGRAY); bar(x+3,y+3,x+103,y+43); setfillstyle(SOLID_FILL,MAGENTA); bar(x,y,x+100,y+40); setlinestyle(0,3,1); setcolor(RED); rectangle(x,y,x+100,y+40); outtextxy(x+20,y+10,"GAGE OVER!"); char c; while(true) //按q或Q表示退出程序,按r或R表示重新开始游戏 { c=getch(); if(c=='q'||c=='Q') return false; else if(c=='r'||c=='R') return true; } } //conf.h #ifndef _conf_h #define _conf_h #define RowOfFrame 20 //主框架的行数 #define ColumnOfFrame 20 //主框架的列数 #define BlockWidth 15 //每个蛇节点的宽度 #define BlockHeight 15 //每个蛇节点的高度 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #define RIGHT 19712 #define ESC 283 #define ENTER 7181 #define PAGEUP 18688 #define PAGEDOWN 20736 #endif
|