日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 之 贪吃蛇

發(fā)布時(shí)間:2025/3/16 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 之 贪吃蛇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#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) //定位光標(biāo)位置 {HANDLE hout;COORD pos;pos.X=x*2;pos.Y=y;hout=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hout,pos); }void Color(int num) //設(shè)置顏色 {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'進(jìn)行操作"<<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; }

總結(jié)

以上是生活随笔為你收集整理的C++ 之 贪吃蛇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。