找几个VC6.0环境下用C++写的游戏小程序的源码示例教程。

在百度上看到一款贪吃蛇游戏。

# include & ltiostream.h & gt

# include & ltwindows.h & gt

# include & lttime.h & gt

# include & ltstdlib.h & gt

# include & ltconio.h & gt

#定义N 21

Void gotoxy(int x,int y)//位置函数

{

坐标位置;

位置。X = 2 * x

位置。Y = y

SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE),pos);

}

Void color(int a)//颜色函数

{

SetConsoleTextAttribute(GetStdHandle(STD _ OUTPUT _ HANDLE),a);

}

Void init(int apple[2])//初始化函数(初始化栅栏,显示信息,apple)

{

int i,j;//初始化围栏

int wall[N+2][N+2]= { { 0 } };

for(I = 1;我& lt= N;i++)

{

for(j = 1;j & lt= N;j++)

wall[I][j]= 1;

}

颜色(11);

for(I = 0;我& ltn+2;i++)

{

for(j = 0;j & ltn+2;j++)

{

if(wall[i][j])

cout & lt& lt"■";

else cout & lt& lt"□" ;

}

cout & lt& ltendl

}

gotoxy(N+3,1);//显示信息

颜色(20);

cout & lt& lt“向西南方向移动”endl

gotoxy(N+3,2);

颜色(20);

cout & lt& lt"按任意键暂停"

gotoxy(N+3,3);

颜色(20);

cout & lt& lt"分数:"

apple[0]= rand()% N+1;//苹果

apple[1]= rand()% N+1;

gotoxy(苹果[0],苹果[1]);

颜色(12);

cout & lt& lt"●" & lt;& ltendl

}

int main()

{

int i,j;

int * * snake = NULL

int apple[2];

int得分= 0;

int tail[2];

int len = 3;

char ch = ' p

srand((无符号)时间(空));

init(苹果);

snake=(int**)realloc(snake,sizeof(int *)* len);

for(I = 0;我& ltleni++)

snake[I]=(int *)malloc(sizeof(int)* 2);

for(I = 0;我& ltleni++)

{

snake[I][0]= N/2;

snake[I][1]= N/2+I;

gotoxy(snake[i][0],snake[I][1]);

颜色(14);

cout & lt& lt“★”& lt;& ltendl

}

While(1)//进入消息循环。

{

tail[0]= snake[len-1][0];

尾巴[1]=蛇[len-1][1];

gotoxy(tail[0],tail[1]);

颜色(11);

cout & lt& lt"■" & lt;& ltendl

for(I = len-1;我& gt0;我-)

{

蛇[I][0]=蛇[I-1][0];

蛇[I][1]=蛇[I-1][1];

gotoxy(snake[i][0],snake[I][1]);

颜色(14);

cout & lt& lt“★”& lt;& ltendl

}

if(kbhit())

{

gotoxy(0,N+2);

ch = getche();

}

开关(通道)

{

case ' w ':snake[0][1]-;打破;

case ' s ':snake[0][1]++;打破;

案例“a”:snake[0][0]-;打破;

大小写“d”:snake[0][0]++;打破;

默认:break

}

gotoxy(snake[0][0],snake[0][1]);

颜色(14);

cout & lt& lt“★”& lt;& ltendl

睡眠(ABS(200-0.5 *分));

if(snake[0][0]= = apple[0]& amp;& amp蛇[0] [1] = =苹果[1])//吃了苹果之后,蛇的分数增加1,蛇的长度增加1。

{

得分++;

len++;

snake=(int**)realloc(snake,sizeof(int *)* len);

snake[len-1]=(int *)malloc(sizeof(int)* 2);

apple[0]= rand()% N+1;

apple[1]= rand()% N+1;

gotoxy(苹果[0],苹果[1]);

颜色(12);

cout & lt& lt"●" & lt;& ltendl

gotoxy(N+5,3);

颜色(20);

cout & lt& lt得分& lt& ltendl

}

if(snake[0][1]= = 0 | | snake[0][1]= = n | | snake[0][0]= = 0 | | snake[0]= = n)//撞上栅栏后失败。

{

gotoxy(N/2,N/2);

颜色(30);

cout & lt& lt“游戏结束”& lt& ltendl

for(I = 0;我& ltleni++)

免费(snake[I]);

睡眠(无限);

退出(0);

}

}

返回0;

}

2

|评论(3)

求TA帮忙

受访者:C+语言初学者|五级采用率:42%

擅长领域:C/C++中文流行音乐

参加的活动:暂时没有参加的活动。