2048游戏源代码!复制粘贴可是不好的习惯哦!

本文详细介绍了2048游戏的C语言实现,包括向上下左右四个方向移动的函数实现,以及游戏状态判断和随机生成数字的逻辑。通过阅读和理解源代码,有助于加深对游戏开发和C语言编程的理解。
摘要由CSDN通过智能技术生成

#defineKey_Up 0x4800// 向上方向键   

#defineKey_Down 0x5000// 向下方向键

#defineKey_Right 0x4d00// 向右方向键

#defineKey_Left 0x4b00// 向左方向键

intmap[4][4] = {0 };

intcheck[4] = {0}; //判断游戏是否结束,如果都不为0,游戏结束 int i, j;

显示在屏幕上//void print()

{

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

    {

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

        {

            printf("%d\t", map[i][j]);

        }

        printf("\n");

    }

}

向右移动//int moveRight() {

    intflag =0;//来标记是否整个map矩阵能否改变,以此判断整个游戏是否结束

    //这个循环的目的是为了做某一行的加减,如某一行为[2 2 4 4],经过以下运算就会变为[0 4 0 8];for(i =0; i <4; i++)

    {

        for(j =4-1; j >=0; j--)

        {

            intcell = map[i][j];

            if(cell !=0)

            {

                intk = j -1;

                while(k >=0)

                {

                    intnextcell = map[i][k];

                    if(nextcell !=0)

                    {

                        if(cell == nextcell)

                        {

                            flag =1;

                            map[i][j] += map[i][k];

                            map[i][k] =0;

                        }

                        k = -1;

                        break;

                    }

                    k--;

                }

            }

        }

    }

    //上一步做的是数据加减,这一步对加减后的数据做数据处理

    //例如某一行经过上一步的数据为【0 4 0 8】,将会变为【0 0 4 8】for(i =0; i <4; i++)

    {

        for(j =4-1; j >0; j--)

        {

            intcell = map[i][j];

            if(cell ==0)

            {

                intk = j -1;

                while(k >=0)

                {

                    intnextcell = map[i][k];

                    if(nextcell !=0)

                    {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值