推箱子游戏89C52 12864.docx
- 文档编号:6446233
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:18
- 大小:17.71KB
推箱子游戏89C52 12864.docx
《推箱子游戏89C52 12864.docx》由会员分享,可在线阅读,更多相关《推箱子游戏89C52 12864.docx(18页珍藏版)》请在冰豆网上搜索。
推箱子游戏89C5212864
推箱子游戏(89C52+12864).txt大悲无泪,大悟无言,大笑无声。
我们手里的金钱是保持自由的一种工具。
女人在约会前,一定先去美容院;男人约会前,一定先去银行。
#include
#defineuncharunsignedchar
#defineunintunsignedint
unchargame=0;//当前第几关
uncharrenwu_x,renwu_y;//人所在位置的坐标
uncharmap_ram[8][8]={
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
};
/*关卡8*8点阵人物1砖头2箱子3目的4成功5人物目的6*/
uncharcodemap[][8][8]={
/*第1关*/
2,2,2,2,2,2,2,2,
2,0,0,0,0,0,1,2,
2,0,0,0,5,0,0,2,
2,0,0,2,2,2,2,2,
2,2,0,0,2,0,0,0,
2,0,3,0,2,0,0,0,
2,0,0,4,2,0,0,0,
2,2,2,2,2,0,0,0,
/*第2关*/
0,0,2,2,2,2,2,0,
2,2,2,0,0,0,2,0,
2,0,3,0,2,0,2,2,
2,0,2,0,0,4,0,2,
2,0,0,0,0,2,0,2,
2,2,0,2,0,0,0,2,
0,2,1,0,0,2,2,2,
0,2,2,2,2,2,0,0,
/*第3关*/
0,0,2,2,2,2,2,0,
2,2,2,0,0,0,2,0,
2,0,3,0,2,0,2,2,
2,0,2,0,0,4,0,2,
2,0,0,0,0,2,0,2,
2,2,3,2,4,0,0,2,
0,2,1,0,0,2,2,2,
0,2,2,2,2,2,0,0,
/*第4关*/
0,0,0,2,2,2,2,0,
0,2,2,2,0,1,2,0,
0,2,0,0,3,0,2,0,
2,2,0,2,0,2,2,2,
2,0,0,2,0,2,4,2,
2,0,2,0,0,0,0,2,
2,0,0,0,0,0,0,2,
2,2,2,2,2,2,2,2,
/*第5关*/
0,0,0,2,2,2,2,0,
0,2,2,2,0,1,2,0,
0,2,0,0,3,0,2,0,
2,2,0,2,0,2,2,2,
2,0,0,2,0,2,4,2,
2,0,2,0,0,3,4,2,
2,0,0,0,0,0,0,2,
2,2,2,2,2,2,2,2,
/*第6关*/
0,0,0,2,2,2,2,0,
0,2,2,2,0,1,2,0,
0,2,0,0,3,0,2,0,
2,2,0,2,0,2,2,2,
2,0,0,2,0,2,4,2,
2,0,2,0,0,3,4,2,
2,0,3,0,0,0,4,2,
2,2,2,2,2,2,2,2,
/*第7关*/
0,2,2,2,2,0,0,0,
2,2,0,0,2,0,0,0,
2,1,3,0,2,0,0,0,
2,2,3,0,2,2,0,0,
2,2,0,3,0,2,0,0,
2,4,3,0,0,2,0,0,
2,4,4,5,4,2,0,0,
2,2,2,2,2,2,0,0,
/*第8关*/
0,0,0,2,2,2,2,0,
0,2,2,2,0,0,2,0,
2,2,0,1,3,0,2,0,
2,0,4,3,0,0,2,0,
2,0,4,5,0,2,2,0,
2,0,4,3,0,2,0,0,
2,2,0,0,2,2,0,0,
0,2,2,2,2,0,0,0,
/*第9关*/
0,0,2,2,2,2,0,0,
0,0,2,4,4,2,0,0,
0,2,2,0,4,2,2,0,
0,2,0,0,3,4,2,0,
2,2,0,3,0,0,2,2,
2,0,0,2,3,3,0,2,
2,0,0,1,0,0,0,2,
2,2,2,2,2,2,2,2,
};
uncharcodemap0[]={
""
"刘哲制作"
"推箱子"
""
};
/****************精灵图像*******************/
uncharcodejingling[7][8]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空白
0x3C,0x3C,0x18,0x7E,0x5A,0x24,0x42,0x81,//人物
0x77,0x77,0x77,0x00,0xEE,0xEE,0xEE,0x00,//砖头
0xFF,0xC3,0xA5,0x99,0x99,0xA5,0xC3,0xFF,//箱子
0x00,0x3C,0x5A,0x66,0x66,0x5A,0x3C,0x00,//目的
0xFF,0xBD,0xDB,0xE7,0xE7,0xDB,0xBD,0xFF,//成功
0x3C,0x3C,0x18,0x7E,0x5A,0x24,0x42,0x81,//人物目的
};
/****************精灵图像*******************/
voidinit_0(void);//初始化开始界面,等待进入游戏
voiddelay(unintt);//延时子程序
voidchk_busy(void);//忙标志位检查
voidwrite_cmd(uncharcmd);//写命令到LCD
voidwrite_dat(unchardat);//写数据到LCD
voidclear_map(void);//清除显示整个图片
voidlcd_init(void);//初始化界面
voidguoguan(void);//过关后刷新界面
voidprint_title(uncharxx,uncharyy,uncharcode*title1,uncharcode*title2);//在指定位置一次显示两个title
voidprint_onetitle(uncharxx,uncharyy,uncharcode*title);//在指定位置打印一个title
voidshuaxin(void);//刷新屏幕
voidanjian(charsx,charzy);
/********************************************************/
sbitRS=P1^0;
sbitRW=P1^2;
sbitE=P1^1;
sbitok=P3^0;
sbitshang=P3^1;
sbitxia=P3^2;
sbitzuo=P3^3;
sbityou=P3^4;
voidmain()
{
init_0();
while
(1)
{
if(shang==0)
{
delay(20);
if(shang==0)
{
anjian(1,0);
}
}
if(xia==0)
{
delay(20);
if(xia==0)
{
anjian(-1,0);
}
}
if(zuo==0)
{
delay(20);
if(zuo==0)
{
anjian(0,-1);
}
}
if(you==0)
{
delay(20);
if(you==0)
{
anjian(0,1);
}
}
if(ok==0)
{
delay(20);
if(ok==0)
{
clear_map();
shuaxin();
}
}
}
}
voidanjian(charsx,charzy)
{
if(map_ram[renwu_x][renwu_y]==1)
{
if(map_ram[renwu_x+sx][renwu_y+zy]==0)
{
print_onetitle(renwu_x,renwu_y,jingling[0]);
map_ram[renwu_x][renwu_y]=0;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[1]);
map_ram[renwu_x][renwu_y]=1;
}
elseif(map_ram[renwu_x+sx][renwu_y+zy]==4)
{
print_onetitle(renwu_x,renwu_y,jingling[0]);
map_ram[renwu_x][renwu_y]=0;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[6]);
map_ram[renwu_x][renwu_y]=6;
}
elseif(map_ram[renwu_x+sx][renwu_y+zy]==3)
{
if(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==0)
{
print_onetitle(renwu_x,renwu_y,jingling[0]);
map_ram[renwu_x][renwu_y]=0;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[1]);
map_ram[renwu_x][renwu_y]=1;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[3]);
map_ram[renwu_x+sx][renwu_y+zy]=3;
}
elseif(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==4)
{
print_onetitle(renwu_x,renwu_y,jingling[0]);
map_ram[renwu_x][renwu_y]=0;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[1]);
map_ram[renwu_x][renwu_y]=1;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[5]);
map_ram[renwu_x+sx][renwu_y+zy]=5;
}
}
elseif(map_ram[renwu_x+sx][renwu_y+zy]==5)
{
if(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==0)
{
print_onetitle(renwu_x,renwu_y,jingling[0]);
map_ram[renwu_x][renwu_y]=0;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[6]);
map_ram[renwu_x][renwu_y]=6;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[3]);
map_ram[renwu_x+sx][renwu_y+zy]=3;
}
elseif(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==4)
{
print_onetitle(renwu_x,renwu_y,jingling[0]);
map_ram[renwu_x][renwu_y]=0;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[6]);
map_ram[renwu_x][renwu_y]=6;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[5]);
map_ram[renwu_x+sx][renwu_y+zy]=5;
}
}
}
elseif(map_ram[renwu_x][renwu_y]==6)
{
if(map_ram[renwu_x+sx][renwu_y+sx]==0)
{
print_onetitle(renwu_x,renwu_y,jingling[4]);
map_ram[renwu_x][renwu_y]=4;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[1]);
map_ram[renwu_x][renwu_y]=1;
}
elseif(map_ram[renwu_x+sx][renwu_y+zy]==4)
{
print_onetitle(renwu_x,renwu_y,jingling[4]);
map_ram[renwu_x][renwu_y]=4;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[6]);
map_ram[renwu_x][renwu_y]=6;
}
elseif(map_ram[renwu_x+sx][renwu_y+zy]==3)
{
if(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==0)
{
print_onetitle(renwu_x,renwu_y,jingling[4]);
map_ram[renwu_x][renwu_y]=4;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[1]);
map_ram[renwu_x][renwu_y]=1;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[3]);
map_ram[renwu_x+sx][renwu_y+zy]=3;
}
elseif(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==4)
{
print_onetitle(renwu_x,renwu_y,jingling[4]);
map_ram[renwu_x][renwu_y]=4;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[1]);
map_ram[renwu_x][renwu_y]=1;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[5]);
map_ram[renwu_x+sx][renwu_y+zy]=5;
}
}
elseif(map_ram[renwu_x+sx][renwu_y+zy]==5)
{
if(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==0)
{
print_onetitle(renwu_x,renwu_y,jingling[4]);
map_ram[renwu_x][renwu_y]=4;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[6]);
map_ram[renwu_x][renwu_y]=6;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[3]);
map_ram[renwu_x+sx][renwu_y+zy]=3;
}
elseif(map_ram[renwu_x+sx+sx][renwu_y+zy+zy]==4)
{
print_onetitle(renwu_x,renwu_y,jingling[4]);
map_ram[renwu_x][renwu_y]=4;
renwu_x=renwu_x+sx;renwu_y=renwu_y+zy;
print_onetitle(renwu_x,renwu_y,jingling[6]);
map_ram[renwu_x][renwu_y]=6;
print_onetitle(renwu_x+sx,renwu_y+zy,jingling[5]);
map_ram[renwu_x+sx][renwu_y+zy]=5;
}
}
}
}
//初始化开始界面,等待进入游戏
voidinit_0(void)
{
uncharlala=0;
lcd_init();
delay(50);
while(lala==0)
{
if(ok==0)
{
delay(20);
if(ok==0)
{
write_cmd(0x01);
write_cmd(0x01);
clear_map();
guoguan();
lala=1;
}
}
}
}
//延时子程序
voiddelay(unintt)
{
uninti,j;
for(i=0;i for(j=0;j<100;j++); } //忙标志位检查 voidchk_busy(void) { RS=0; RW=1; E=1; P0=0xff; while((P0&0x80)==0x80); E=0; } //写命令到LCD voidwrite_cmd(uncharcmd) { chk_busy(); RS=0; RW=0; E=1; P0=cmd; E=0; } //写数据到LCD voidwrite_dat(unchardat) { chk_busy(); RS=1; RW=0; E=1; P0=dat; E=0; } //初始化界面 voidlcd_init(void) { unchari; uncharcode*p; p=map0; write_cmd(0x30);//选择基本指令集 write_cmd(0x0c);//开显示(无游标、不反白) write_cmd(0x01);//清除显示,并且设定地址指针为00H write_cmd(0x06);//指定在资料的读取及写入时//自动右移 for(i=0;i<64;i++) { write_dat(*p); p++; } } //清除显示整个图片 voidclear_map(void) { uncharx,y; write_cmd(0x34);//使用扩充指令 for(y=0;y<64;y++) for(x=0;x<16;x++) { write_cmd(y+0x80);//行地址 write_cmd(x+0x80);//列地址 write_dat(0x00); write_dat(0x00); } } //过关后刷新界面 voidguoguan(void) { unchari,j; clear_map(); clear_map(); for(i=0;i<8;i++) for(j=0;j<8;j++) { map_ram[i][j]=map[game][j][i]; if(map_ram[i][j]==1) { renwu_x=i; renwu_y=j; } } for(i=0;i<4;i++) for(j=0;j<8;j++) { print_title(i,j,jingling[map_ram[2*i][j]],jingling[map_ram[2*i+1][j]]); } game++; } //在指定位置一次显示两个title voidprint_title(uncharxx,uncharyy,uncharcode*title1,uncharcode*title2) { uncharj=0; unchari=0; unchary; if(yy>3) { xx=xx+8; yy=yy-4; } yy=yy*8; y=yy+8; write_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 推箱子游戏89C52 12864 箱子 游戏 89 C52