俄罗斯方块程序

2019-03-15 22:11

俄罗斯方块程序(Proteus)

[日期:2005-4-16]

来源:侃单片机 作者:xwj

[字体:大 中 小]

//特 点: // // 1、功能完整,直接使用 //

// 2、模块独立性强,移植方便,外部仅init和move函数,修改显示和输入即可 //

// 3、对减少内存占用、尽量减少屏幕操作进行适当优化 //

// 4、新方块生成高度随机,绝对无规律 // // 5、仿真环境为Keil7.5+Proteus6.5,可以联机也可脱机运行 //

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

// 源程序大公开 // // (c) Copyright 2001-2005 xuwenjun //

// All Rights Reserved // // V1.00 // //--------------------------------------------------------------------------// //标 题: 俄罗斯方块程序 ? // //文件名: xwj_fk.c // //版 本: V1.00 //

//修改人: 徐文军 E-mail:xuwenjun@21cn.com //

//日 期: 05-05-13 // //描 述: 俄罗斯方块程序 ? //

//声 明: //

// 以下代码仅免费提供给学习用途,但引用或修改后必须在文件中声明出处. //

// 如用于商业用途请与作者联系. E-mail:xuwenjun@21cn.com // // 有问题请mailto xuwenjun@21cn.com 欢迎与我交流! //

//--------------------------------------------------------------------------// //老版本: 无 老版本文件名: // //创建人: 徐文军 E-mail:xuwenjun@21cn.com //

//日 期: 05-05-13 // //描 述: // // 1、功能完整,直接使用 //

// 2、模块独立性强,移植方便,外部仅init和move函数,修改显示和输入即可 //

// 3、对减少内存占用、尽量减少屏幕操作进行适当优化 //

// 4、新方块生成高度随机,绝对无规律 // // 5、仿真环境为Keil7.5+Proteus6.5,可以联机也可脱机运行 //

// CODE SIZE = 1845 ---- // // CONSTANT SIZE = 326 ---- // // DATA SIZE = 16 19 // // IDATA SIZE = 50 ---- // // BIT SIZE = 1 1 // //--------------------------------------------------------------------------//

#include

#include \字符液晶控制函数声明 //

#include \公用函数 #include \口行列式键盘 //

#include \串口函数集 #include \数制转换 #include \俄罗斯方块程序

#define ulong unsigned long #define uint unsigned int #define uchar unsigned char

extern void delay(unsigned int x);

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

void fk_dot(uchar x,uchar y); //显示1个方块点 void fk_cldot(uchar x,uchar y); //清除1个方块点

void fk_show(void); //显示分数 void fk_reffk(void); //刷新方块 void fk_refnew(void); //刷新预览方块 void fk_refline(yy); //刷新1行背景 bit fk_chk(void); //冲突检查 void fk_new(void); //产生新方块 void fk_add(void); //方块合并

/*

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

void fk_init(void); //方块初始化 void fk_move(unsigned char mode); //移动方块

*/

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

#define FULLMAP 0x0fff /*掩码*/ #define LINEGUAN 20 /*20行过一关*/ #define NEWX 15 /*预览方块X位置*/ #define NEWY 12 /*预览方块Y位置*/ #define LINEMAX 21 /*屏幕最高21行*/ uint idata fk_map[LINEMAX+4]; //背景映象 uchar fk_x,fk_y,fk_r; //方块左右、高度、方向

uchar fk_type; //方块形状

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

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

uint score; //总分 uint line; //总行数 uchar speed; //速度 uchar moven; //速度相关计数器 uchar automapn; //随机方块的行数 bit fk_run; //俄罗斯方坑蜗吩诵?

uchar code fk_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, //田字

};

uchar code strmap[4][9]={

\不错! \真棒! \好极啦!\太棒了!\

};

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

void fk_dot(uchar x,uchar y) //显示1个方块点

{

printat(x*3+1, 241-(y-4)*12,\

}

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

void fk_cldot(uchar x,uchar y) //清除1个方块点


俄罗斯方块程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:德育职责

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: