这是我用Xcode编写的俄罗斯方块,我目前就读大一,很多东西还没有学,比如多线程什么的,导致方块不能实现自主下降,只能自己按‘s’来实现下降,不过这都无所谓,但是不知道为什么程序运行不了,看了好久都没看出错在哪里,希望能够得到大神的求助!感谢!
头文件,我也不知道是不是都用得上
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<curses.h>
全局变量
int i,j,a[25][10];
char l;
生成界面,我用的二维数组是a[25][10],周围边框的值为2,一共有6种方块,每一类型的方块都用一个数字表示,当随机生成一个数字后,相应的方块的坐标值为1,其余为0,即空格,我还同时计算出来方块最上面最下面最左边最右边的坐标方便移动和判断
int *shengcheng(int a[][10],int up)
{
int n,m,min,max,b[6]={
1,2,3,4,5,6},c[8]={
1,2,3,4,5,6,7,8},d[6],*p,flag=0,down;
srand((int)time(NULL));
n=b[rand()%6];
m=c[rand()%8];
d[0]=n;
d[1]=m;
switch(n)
{
case 1 :
{
if(a[1][m]==0&&a[2][m]==0&&a[3][m]==0&&a[3][m+1]==0&&m<=7)
{
a[1][m]=1;
a[2][m]=1;
a[3][m]=1;
a[3][m+1]=1;
min=m;
max=m+1;
down=up+2;
break;
}
else
{
flag=1;
break;
}
}
case 2 :
{
if(a[1][m]==0&&a[1][m+1]==0&&a[2][m]==0&&a[2][m+1]==0&&m<=7)
{
a[1][m]=1;
a[1][m+1]=1;
a[2][m]=1;
a[2][m+1]=1;
min=m;
max=m+1;
down=up+1;
break;
}
else
{
flag=1;
break;
}
}
case 3 :
{
if(a[1][m]==0&&a[2][m]==0&&a[3][m]==0&&a[4][m]==0)
{
a[1][m]=1;
a[2][m]=1;
a[3][m]=1;
a[4][m]=1;
min=m;
max=m;
down=up+3;
break;
}
else
{
flag=1;
break;
}
}
case 4 :
{
if(a[1][m]==0&&a[1][m+1]==0&&a[2][m+1]==0&&a[2][m+2]==0&&m<=6)
{
a[1][m]=1;
a[1][m+1]=1;
a[2][m+1]=1;
a[2][m+2]=1;
min=m;
max=m+2;
down=up+1;
break;
}
else
{
flag=1;
break;
}
}
case 5 :
{
if(a[1][m]==0&&a[1][m+1]==0&&a[1][m+2]==0&&a[2][m+1]==0&&m<=6)
{
a[1][m]=1;
a[1][m+1]=1;
a[1][m+2]=1;
a[2][m+1]=1;
min=m;
max=m+2;
down=up+1;
break;
}
else
{
flag=1;
break;
}
}
case 6 :
{
if(a[1][m]==0&&a[1][m+1]==0&&a[2][m]==0&&a[2][m-1]==0&&m>=2&&m<=7)
{
a[</