| void CreateSnake() { Node *node1=new Node; Node *node2=new Node; node1->x=frame.left+BlockWidth; node1->y=frame.top; node1->next=NULL; snake.tail=node1; node2->x=frame.left; node2->y=frame.top; node2->next=snake.tail; snake.head=node2; snake.length=2; setfillstyle(SOLID_FILL,BLUE); bar(snake.head->x+1,snake.head->y+1,snake.head->x+BlockWidth-1,snake.head->y+BlockHeight-1); bar(snake.tail->x+1,snake.tail->y+1,snake.tail->x+BlockWidth-1,snake.tail->y+BlockHeight-1); } bool PlayGame() { int speed=300,key; Direction CurrentDirection=right; Node randomNode; Node newNode,outNode; bool neednode=true; bool overlap=false; int randx,randy; CreateSnake(); while(true) { if(neednode==true) { randomize(); do { randx=frame.left+rand()%RowOfFrame*BlockWidth; randy=frame.top+rand()%ColumnOfFrame*BlockHeight; for(Node *p=snake.head;p!=NULL;p=p->next)//hit itself if(randx==p->x&&randy==p->y) {overlap=true;break;} } while(overlap==true); randomNode.x=randx; randomNode.y=randy; randomNode.next=NULL; setfillstyle(SOLID_FILL,RED); bar(randomNode.x+1,randomNode.y+1,randomNode.x+BlockWidth-1,randomNode.y+BlockHeight-1); neednode=false; } |