C语言俄罗斯方块代码

这是我用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[</
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值