#只写好了递归,消除,
##看见这个标题是不是很刺激啊
###愿赌服输
这个是我18年写的,我最近写了扫雷,无意中也写完了。
这里写代码#include<stdio.h>//
#include<stdlib.h>
struct star
{
int color;
char state;
};
static int Score=0;
static int count;
static int count1;
static int Scoreaim=0;
static struct star map[10][10];
void init(int gamelevel,int aimscore)
{
Scoreaim=aimscore;
printf("This is %d level\n",gamelevel);
printf("You need %d aimscore to gothrough\n",aimscore);
}
void initmap()
{
int i,j;
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
map[i][j].state=0;
map[i][j].color=rand()%(5-1+1)+1;
}
}
}
void showmap()
{
int i,j;
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
if(map[i][j].color==0)
{
}
printf("%d ",map[i][j].color);
}
printf("\n");
}
}
void delete1(int x,int y,int c)
{
//int count1;
if(x<0||x>=10||y<0||y>=10||c==0)
{
return ;
}
else
{
if(map[x][y].state==0)
{
if(map[x][y].color!=c&&c!=0)
return ;
map[x][y].state=1;
if(map[x][y].color==c&&c!=0)
{
++count1;
printf("%d %d %d\n",x,y,map[x][y].color);//调试,,,,
//map[x][y].color=0;
//if(x-1>=0&&x-1<10&&y>=0&&y<10)
// {//printf("%d %d",x,y);
delete1(x-1,y,c);
//}
//if(x+1>=0&&x+1<10&&y>=0&&y<10)
//{
delete1(x+1,y,c);
//}
//if(x>=0&&x<10&&y-1>=0&&y-1<10)
//{
delete1(x,y-1,c);
// }
// if(x>=0&&x<10&&y+1>=0&&y+1<10)
// {
delete1(x,y+1,c);
// }
}
}
}
printf("Count1=%d\n",count1);
//return count1;//为什么没有函数什么什么什么
}//又多了一个死都不会写的
int left()//判断剩余,自动消除//还是需要原始地图感觉
{
int i,j;
int x,judge=0;
for(i=0; i<10; i++)
{
for(j=0; j<3; j++)
{
if(map[i][j].color==0)
continue;
else
{
x=map[i][j].color;
delete1(i,j,x);
printf("Count1=%d\n",count1);
//judge+=count1;
}
}
}
printf("count1=%d",count1);
if(count1==0)
{
return 0;
}
else
{
return 1;
}
}
void delete(int x,int y,int c)
{
//int count;
if(x<0||x>=10||y<0||y>=10||c==0)
{
return 0;
}
else
{
if(map[x][y].state==0)
{
if(map[x][y].color!=c&&c!=0)
return ;
map[x][y].state=1;
if(map[x][y].color==c&&c!=0)
{
++count;
printf("%d %d %d\n",x,y,map[x][y].color);//调试,,,,
map[x][y].color=0;
//if(x-1>=0&&x-1<10&&y>=0&&y<10)
// {//printf("%d %d",x,y);
delete(x-1,y,c);
//}
//if(x+1>=0&&x+1<10&&y>=0&&y<10)
//{
delete(x+1,y,c);
//}
//if(x>=0&&x<10&&y-1>=0&&y-1<10)
//{
delete(x,y-1,c);
// }
// if(x>=0&&x<10&&y+1>=0&&y+1<10)
// {
delete(x,y+1,c);
// }
}
}
}
//return count;
}//
void down()//
{
int i,j;
int m[10]={0};
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(map[i][j].color==0)
{
printf("i=%d j=%d\n",i,j);
//if(i==0)
m[j]++;
}
}
//
}
for(j=0;j<10;j++)
{
printf("j=%d %d ",j,m[j]);
}
for(i=0;i<10;i++)
{
for()
}
}
void sumscore()
{
if(count==0)
{
Score=Score;
}
else if(count==2)
{
Score=Score+20;
}
else if(count==1)
{
Score=Score;
}
else if(count==3)
{
Score=Score+45;
}
else if(count==4)
{
Score=Score+60;
}
else if(count==5)
{
Score=Score+80;
}
else if(count==6)
{
Score=Score+125;
}
else if(count==7)
{
Score=Score+150;
}
else
{
Score=Score+200;/
}
}
int main()
{
init(1,1000);
initmap();
showmap();
int x,y;
//printf("%d",Scoreaim);
while(Score<=Scoreaim)//
{
printf("请输入点坐标形如1 2\n");
scanf("%d %d",&x,&y);
if(x<0||x>=10||y<0||y>=10)
{
printf("滚蛋\n");
continue;
}
int c;
c=map[x][y].color;
delete(x,y,c);
printf("count=%d\n",count);
if(count==1)
{
map[x][y].color=c;
printf("请重新输入\n");
count--;
//initmap();
//showmap();
continue;
//break;//为什么还要判断,,,,,,,,
}
showmap();
sumscore();
printf("得分:%d\n",Score);
/*if(Score==0)
{
printf("请重新输入\n");
initmap();
showmap();
continue;
}*/
//left();
//down();
count=0;
}
}
片
我近日会更新修改。。。。。完成一个真正可以运行的游戏。