贪吃蛇v3.0发布!

灌水区

前排资瓷!
by ⚡小林孑⚡ @ 2018-11-16 23:02:56


资瓷
by _⁢  @ 2018-11-16 23:03:12


资瓷
by nofall @ 2018-11-16 23:03:23


试玩了一下,感觉自穿身体的时候有未显示的bug?
by miserExist @ 2018-11-16 23:07:48


@[ZTS蒟蒻](/space/show?uid=49677) 这。。。
by ChenHacker @ 2018-11-16 23:20:32



by Joeywu_1101 @ 2018-11-17 00:28:05


建议: ``` 1、不要把苹果刷在蛇的身体里,否则不好看 2、建议改成不能自穿身体,否则有可能出现不显示的bug ``` @[ChenHacker](/space/show?uid=92288)
by BIGBUG @ 2018-11-17 10:36:22


@[BIGBUG](/space/show?uid=110842) 好的,下一个版本更新
by ChenHacker @ 2018-11-17 21:28:49


更新提醒: @[AC的荣耀](/space/show?uid=120145) @[夜刀神十香ღ](/space/show?uid=41785) @[deadpool123](/space/show?uid=84121) @[引领天下](/space/show?uid=39863)
by ChenHacker @ 2018-11-17 22:37:50


#include<iostream> #include<windows.h> #include<conio.h> #include<time.h> #include<stdlib.h> using namespace std; const int N=21; void Get_xy(int x,int y) { HANDLE hout; COORD pos; pos.X=x*2; pos.Y=y; hout=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hout,pos); } void Color(int num) { HANDLE hout; hout=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hout,num); } void Initial() { int i,j; int wall[N+2][N+2]={{0}}; for(i=1;i<=N;i++) for(j=1;j<=N;j++) wall[i][j]=1; Color(11); for(i=0;i<N+2;i++) { for(j=0;j<N+2;j++) { if(wall[i][j]) cout<<"■"; else cout<<"□"; } cout<<endl; } Get_xy(N+3,1); Color(20); cout<<"按'W','S','A','D'进行操作"<<endl; Get_xy(N+3,2); Color(20); cout<<"按任意键暂停"<<endl; Get_xy(N+3,3); Color(20); cout<<"得分:"<<endl; } void game() { int** snake=NULL; int len=1; int i; int score=0; int apple[2]; int tail[2]; char ch='p'; Initial(); srand((unsigned)time(NULL)); apple[0]=rand()%N+1; apple[1]=rand()%N+1; Get_xy(apple[0],apple[1]); Color(12); cout<<"●"<<endl; snake=(int**)realloc(snake,sizeof(int*)*len); for(i=0;i<len;i++) snake[i]=(int*)malloc(sizeof(int)*2); snake[0][0]=N/2; snake[0][1]=N/2+1; Get_xy(snake[0][0],snake[0][1]); Color(14); cout<<"⊙"<<endl; int flag=1; while(1) { if(flag) { tail[0]=snake[len-1][0]; tail[1]=snake[len-1][1]; Get_xy(tail[0],tail[1]); Color(11); cout<<"■"<<endl; } flag=1; for(i=len-1;i>0;i--) { snake[i][0]=snake[i-1][0]; snake[i][1]=snake[i-1][1]; Get_xy(snake[i][0],snake[i][1]); Color(14); cout<<"★"<<endl; } if(kbhit()) { Get_xy(0,N+3); ch=getche(); } switch(ch) { case 'W': case 'w': snake[0][1]--; break; case 'S': case 's': snake[0][1]++; break; case 'A': case 'a': snake[0][0]--; break; case 'D': case 'd': snake[0][0]++; break; default :break; } for(i=1;i<len;i++) { if(snake[0][0]==snake[i][0] && snake[0][1]==snake[i][1]) { Get_xy(N/2,N/2); Color(30); cout<<"Game over!"<<endl; exit(0); } } Get_xy(snake[0][0],snake[0][1]); Color(14); cout<<"⊙"<<endl; Sleep(abs(200-0.5*score)); if(snake[0][0]==apple[0] && snake[0][1]==apple[1]) { flag=0; score++; len++; srand((unsigned)time(NULL)); snake=(int**)realloc(snake,sizeof(int*)*len); snake[len-1]=(int*)malloc(sizeof(int)*2); Get_xy(N+6,3); Color(20); cout<<score<<endl; apple[0]=rand()%N+1; apple[1]=rand()%N+1; Get_xy(apple[0],apple[1]); Color(12); cout<<"●"<<endl; } if(snake[0][0]==0 || snake[0][0]==N || snake[0][1]==0 || snake[0][1]==N) { Get_xy(N/2,N/2); Color(30); cout<<"Game Over!"<<endl; for(i=0;i<len;i++) free(snake[i]); Sleep(INFINITE); exit(0); } if(len>=N*N/20) { Get_xy(N/2,N/2); Color(30); cout<<"Win!"<<endl; for(i=0;i<len;i++) free(snake[i]); Sleep(INFINITE); exit(0); } } } int main() { game(); return 0; }
by ほほほ @ 2018-11-18 11:02:23


| 下一页