📄 pushing1.c
字号:
#include <stdlib.h>
#include <graphics.h>
#include <bios.h>
#include <dos.h>
#include <conio.h>
#include <string.h>
#include "funkey.h"
#include "pushing.h"
char path[20][20]=
{
" ### ",
" #O# ",
" # # ",
" # # ",
"###### # ",
"#O XX#####",
"#####8X O#",
" #X######",
" # # ",
" # # ",
" # # ",
" #O# ",
" ### "
};
int boy_h,boy_l,boxnum;
int path_h,path_l;
void drawpathunit(int x,int y,int h,int l)
{
switch(path[h][l])
{
case ' ':
drawbackgroundblock(x+l*24,y+h*24);
break;
case 'X':
drawbox_1(x+l*24,y+h*24);
break;
case 'x':
drawbox_2(x+l*24,y+h*24);
break;
case 'O':
drawboxpos(x+l*24,y+h*24);
break;
case '#':
drawwallblock(x+l*24,y+h*24);
break;
case 'o':
case '8':
if(path[h][l-1]=='X'||path[h][l+1]=='X'||
path[h-1][l]=='X'||path[h+1][l]=='X'||
path[h][l-1]=='x'||path[h][l+1]=='x'||
path[h-1][l]=='x'||path[h+1][l]=='x'
)
drawboy(x+l*24,y+h*24,1);
else
drawboy(x+l*24,y+h*24,0);
break;
}
}
void drawpath(int x,int y)
{
int h,l;
int i,j;
boxnum=0;
for(i=0;i<20;i++)
{
if(strlen(path[i])==0)
{
h=i;
break;
}
}
l=strlen(path[0]);
path_h=h;
path_l=l;
setcolor(WHITE);
rectangle(x-1,y-1,x+l*24+1,y+h*24+1);
for(i=0;i<h;i++)
for(j=0;j<l;j++)
switch(path[i][j])
{
case ' ':
drawbackgroundblock(x+j*24,y+i*24);
break;
case 'X':
drawbox_1(x+j*24,y+i*24);
boxnum++;
break;
case 'O':
drawboxpos(x+j*24,y+i*24);
break;
case '#':
drawwallblock(x+j*24,y+i*24);
break;
case '8':
if(path[i][j-1]=='X'||path[i][j+1]=='X'||
path[i-1][j]=='X'||path[i+1][j]=='X')
drawboy(x+j*24,y+i*24,1);
else
drawboy(x+j*24,y+i*24,0);
boy_h=i;
boy_l=j;
break;
}
}
void main()
{
int gdriver = DETECT, gmode, errorcode;
int ch,i,j;
int count;
initgraph(&gdriver, &gmode, "d:\\borlandc\\bgi");
drawpath(50,50);
while(1)
{
ch=bioskey(0);
if((ch&0x00ff)==27)break;
switch(ch)
{
case UP:
// add your codes down here
//add your codes up here
break;
case DOWN:
// add your codes down here
//add your codes up here
break;
case LEFT:
// add your codes down here
//add your codes up here
break;
case RIGHT:
if((path[boy_h][boy_l+1]=='X'||path[boy_h][boy_l+1]=='x')
&&(path[boy_h][boy_l+2]==' '||path[boy_h][boy_l+2]=='O'))
//x--box+pos, o--boy+pos
{
if(path[boy_h][boy_l+2]=='O')
path[boy_h][boy_l+2]='x';
else
path[boy_h][boy_l+2]='X';
if(path[boy_h][boy_l+1]=='X')
path[boy_h][boy_l+1]='8';
else
path[boy_h][boy_l+1]='o';
if(path[boy_h][boy_l]=='8')
path[boy_h][boy_l]=' ';
else
path[boy_h][boy_l]='O';
for(i=0;i<3;i++)
drawpathunit(50,50,boy_h,boy_l+i);
boy_l++;
}
else if(path[boy_h][boy_l+1]==' '||path[boy_h][boy_l+1]=='O')
{
if(path[boy_h][boy_l+1]=='O')
path[boy_h][boy_l+1]='o';
else
path[boy_h][boy_l+1]='8';
if(path[boy_h][boy_l]=='o')
path[boy_h][boy_l]='O';
else
path[boy_h][boy_l]=' ';
for(i=0;i<2;i++)
drawpathunit(50,50,boy_h,boy_l+i);
boy_l++;
}
break;
}//switch
}//while
closegraph();
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -