欢迎光临散文网 会员登陆 & 注册

C语言——迷宫游戏

2018-11-10 17:27 作者:swiss126  | 我要投稿

游戏效果:
主界面:

图片


游戏界面(每次出现的迷宫都不一样的):



源代码:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int i,j,x,y,a[50][50],f=0,m=0,x0,x1,y0,y1,q,N;

char c,n='1';

void input()

{

system("cls");

srand(time(0));

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

a[i][j]=1;

}

}

x0=rand()%2+N/2-1;

y0=rand()%2+N/2-1;

a[x0][y0]=2;

x=x0;y=y0;

while(x*y!=0 && x!=N-1 && y!=N-1)

{

q=rand()%3-1;

m=m+q;

if(m<0)m=3;

else if(m>3)m=0;

switch (m)

{

case 0:

x++;

if(a[x][y]!=2)

a[x][y]=0;

break;

case 1:x--;

if(a[x][y]!=2)

a[x][y]=0;

break;

case 2:y++;

if(a[x][y]!=2)

a[x][y]=0;

break;

case 3:y--;

if(a[x][y]!=2)

a[x][y]=0;

break;

}

}

x1=x;

y1=y;

a[x1][y1]=3;

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

if(a[i][j]==1)

a[i][j]=rand()%2;

}

}

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

switch(a[i][j])

{

case 0:printf(" ");break;

case 1:printf("※");break;

case 2:

printf("○");

x=j;

y=i;

break;

case 3:printf("★");break;

}

}

printf("\n");

}

}

void start()

{

n='1';

f=0;

printf("欢迎来到趣味冒险岛~\\(≧▽≦)/~,\n\n\n请选择游戏难度:\n\n\n\t1、容易\n\n\n\t\t2、中等\n\n\n\t3、困难\n\n\n\t\t0、结束游戏\n");

scanf("%d",&N);

if(N==0)exit(0);

N=N*10;

input();

}

void print()

{

system("cls");

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

switch(a[i][j])

{

case 0:printf(" ");break;

case 1:printf("※");break;

case 2:printf("○");break;

case 3:printf("★");break;

}

}

printf("\n");

}

}

void move()

{

c=getch();

if(c>'Z')c-=32;

switch(c)

{

case 'A':

if((a[y][x-1]==0) && x>0)

{

a[y][x]=0;

x--;

a[y][x]=2;

}

if(a[y][x-1]==3)f=1;

break;

case 'D':

if((a[y][x+1]==0) && x<N-1)

{

a[y][x]=0;

x++;

a[y][x]=2;

}

else if(a[y][x+1]==3)f=1;

break;

case 'W':

if((a[y-1][x]==0) && y>0)

{

a[y][x]=0;

y--;

a[y][x]=2;

}

else if(a[y-1][x]==3)f=1;

break;

case 'S':

if((a[y+1][x]==0) && y<N-1)

{

a[y][x]=0;

y++;

a[y][x]=2;

}

else if(a[y+1][x]==3)f=1;

break;

}

}

void main()

{

system("color ac");

while(1)

{

system("cls");

start();

while(f==0)

{

move();

print();

}

printf("恭喜你成功走出迷宫:\n再来一次?\n1、是\t2、否\n");

n=getch();

if(n=='2')break;

}

}

 


C语言——迷宫游戏的评论 (共 条)

分享到微博请遵守国家法律