电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx

上传人:b****3 文档编号:899751 上传时间:2022-10-13 格式:DOCX 页数:10 大小:17.97KB
下载 相关 举报
电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx_第1页
第1页 / 共10页
电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx_第2页
第2页 / 共10页
电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx_第3页
第3页 / 共10页
电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx_第4页
第4页 / 共10页
电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx

《电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx》由会员分享,可在线阅读,更多相关《电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx(10页珍藏版)》请在冰豆网上搜索。

电子行业资料俄罗斯方块程序字符液晶控制函数声时doc 18.docx

电子行业资料俄罗斯方块程序字符液晶控制函数声时doc18

//      CODESIZE        =   1845    ----                                   //

//      CONSTANTSIZE    =    326    ----                                   //

//      DATASIZE        =     16      19                                   //

//      IDATASIZE       =     50    ----                                   //

//      BITSIZE         =      1       1                                   //

//--------------------------------------------------------------------------//

#include

#include"xwj_lcd16.h"                 //字符液晶控制函数声明    //

#include"xwj_lcd6963.h"            //T6963C公用函数

#include"xwj_hlkey.h"                //  P1口行列式键盘  //

#include"xwj_serial.h"                //串口函数集

#include"change.h"                    //数制转换

#include"xwj_fk.h"                    //俄罗斯方块程序

#defineulong        unsignedlong

#defineuint        unsignedint

#defineuchar        unsignedchar

externvoiddelay(unsignedintx);

//----------------俄罗斯方块内部函数----------------------------------------//

voidfk_dot(ucharx,uchary);        //显示1个方块点

voidfk_cldot(ucharx,uchary);        //清除1个方块点

voidfk_show(void);                    //显示分数

voidfk_reffk(void);                //刷新方块

voidfk_refnew(void);                //刷新预览方块

voidfk_refline(yy);                //刷新1行背景

bit  fk_chk(void);                    //冲突检查

voidfk_new(void);                    //产生新方块

voidfk_add(void);                    //方块合并

/*

//-----------------俄罗斯方块公用函数--------------------------------------//

voidfk_init(void);                        //方块初始化

voidfk_move(unsignedcharmode);        //移动方块

*/

//-------------------------------------------------------------------------//

#defineFULLMAP    0x0fff                /*掩码*/

#defineLINEGUAN    20                /*20行过一关*/

#defineNEWX    15                    /*预览方块X位置*/

#defineNEWY    12                    /*预览方块Y位置*/

#defineLINEMAX    21                    /*屏幕最高21行*/

uintidatafk_map[LINEMAX+4];        //背景映象

uchar  fk_x,fk_y,fk_r;                //方块左右、高度、方向

ucharfk_type;                        //方块形状

uchar  fk_oldx,fk_oldy,fk_oldr;        //方块上次左右、高度、方向

uchar  fk_newtype,fk_newr;            //新方块形状、方向

uintscore;                            //总分

uintline;                            //总行数    

ucharspeed;                        //速度

ucharmoven;                        //速度相关计数器

ucharautomapn;                        //随机方块的行数

bitfk_run;                            //俄罗斯方坑蜗吩诵?

    

ucharcodefk_mod[][4][4]={            //方块模型号,4个方向,4行

    0,0,7,2,0,1,3,1,0,0,2,7,0,2,3,2,    //_|_

    0,0,6,3,0,1,3,2,0,0,6,3,0,1,3,2,    //_|~

    0,0,3,6,0,2,3,1,0,0,3,6,0,2,3,1,    //~|_

    0,0,7,4,0,3,1,1,0,0,1,7,0,2,2,3,    //|__

    0,0,7,1,0,1,1,3,0,0,4,7,0,3,2,2,    //__|

    0,0,0,15,1,1,1,1,0,0,0,15,1,1,1,1,    //____

    0,0,3,3,0,0,3,3,0,0,3,3,0,0,3,3,    //田字

};

ucharcodestrmap[4][9]={

    "不错!

  ","真棒!

  ","好极啦!

","太棒了!

",

};

//--------------------------------------------------------------------------//

voidfk_dot(ucharx,uchary)        //显示1个方块点

{

    printat(x*3+1,241-(y-4)*12,"■");

}

//--------------------------------------------------------------------------//

voidfk_cldot(ucharx,uchary)        //清除1个方块点

{

//    printat(x*3+1,241-(y-4)*12,"□");

    printat(x*3+1,241-(y-4)*12,"┘");

}

//--------------------------------------------------------------------------//

voidfk_show(void)                    //显示分数

{

    printat(50,12,chnint(score,1));

    printat(60,12,"00");

    printat(40,12,"得分:

");

    printat(54,36,chnint(line,1));

    printat(40,36,"行数:

");

    printat(54,60,chnchar(speed,1));

    printat(40,60,"速度:

");

    printat(54,84,chnchar(automapn,1));

    printat(40,84,"关数:

");        

}

//--------------------------------------------------------------------------//

voidfk_reffk(void)                    //刷新方块

{

    uchari,j;

    uchartemp;

    //----------------------------------------------//清除原来的方块

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

    {

        temp=(fk_mod[fk_type][fk_oldr][i]);

        for(j=fk_oldx;j

        {

            if(temp&0x01)

            {

                fk_cldot(j,fk_oldy+i);

            }

            temp>>=1;

        }

    }

    //----------------------------------------------//显示新的方块

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

    {

        temp=(fk_mod[fk_type][fk_r][i]);

        for(j=fk_x;j

        {

            if(temp&0x01)

            {

                fk_dot(j,fk_y+i);

            }

            temp>>=1;

        }

    }

    fk_oldx=fk_x;fk_oldy=fk_y;fk_oldr=fk_r;    //保存新方块位置

}

//--------------------------------------------------------------------------//

voidfk_refnew(void)                //刷新预览方块

{

    uchari,j;

    uchartemp;

    //----------------------------------------------//预览方块

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

    {

        temp=(fk_mod[fk_newtype][fk_newr][i]);

        f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1