推箱子游戏源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
int i=0;//记录所走步数
//人的结构体
struct person
{
int x;
int y;
}per={3,3};
//定义光标移动函数
void gotoxy(int x,int y)
{
COORD coord={x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); }
//初始化图形界面
int arr_set(char arr[9][9])
{
int i=0;
int j=0;
for(i=0;i<9;i++)
for(j=0;j<9;j++)
arr[i][j]='*';
arr[1][1]='';
arr[1][2]='';
arr[1][3]='';
arr[2][1]='';
arr[2][2]='';
arr[2][3]='';
arr[3][1]='';
arr[3][2]='';
arr[3][3]='';
arr[3][7]='';
arr[4][3]='';
arr[4][7]='';
arr[5][3]='';
arr[5][4]='';
arr[5][5]='';
arr[5][6]='';
arr[5][7]='';
arr[6][2]='';
arr[6][3]='';
arr[6][4]='';
arr[6][6]='';
arr[6][7]='';
arr[7][2]='';
arr[7][3]='';
arr[7][4]='';
arr[2][2]=2;
arr[3][2]=2;
arr[4][3]=2;
arr[3][3]=12;
arr[3][7]=4;
arr[4][7]=4;
arr[5][7]=4;
return0;
}
//打印图形界面
int prin(char arr[9][9])
{
int i=0;
int j=0;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if('*'==arr[i][j])
printf("▓");
if(2==arr[i][j])
printf("□");
if(12==arr[i][j])
printf("♀");
if(4==arr[i][j])
printf("○");
if(''==arr[i][j])
printf("");
}
printf("\n");
}
//操作提示
gotoxy(30,2);
printf("WSAD分别操作上移、下移、左移、右移");
gotoxy(30,4);
printf("□代表箱子、♀代表人、○代表目的地");
gotoxy(30,6);
printf("把所有箱子推到目的地即完成任务");
gotoxy(2*per.x,per.y);
return0;
}
//向上移动
int move_up(char arr[9][9])
{
//如果上面没有东西
if(''==arr[per.y-1][per.x]||4==arr[per.y-1][per.x])
{
gotoxy(2*per.x,per.y);
printf("");
arr[per.y][per.x]='';
gotoxy(2*per.x,per.y-1);
printf("♀");
gotoxy(2*per.x,per.y-1);
arr[per.y-1][per.x]=12;
per.y--;
i++;
}
//如果上面是箱子并且箱子上面是空格则箱子和人同时上移光标回到人处
if(2==arr[per.y-1][per.x]&&(''==arr[per.y-2][per.x]||4==arr[per.y-2][per.x])) {
gotoxy(2*per.x,per.y);
printf("");
arr[per.y][per.x]='';
gotoxy(2*per.x,per.y-1);
printf("♀");
arr[per.y-1][per.x]=12;
gotoxy(2*per.x,per.y-2);
printf("□");
arr[per.y-2][per.x]=2;
per.y--;
gotoxy(2*per.x,per.y);
i++;
}
if(arr[3][7]=='')
{
gotoxy(14,3);
printf("○");
arr[3][7]=4;
}
if(arr[4][7]=='')
{
gotoxy(14,4);
printf("○");
arr[4][7]=4;
}
if(arr[5][7]=='')
{
gotoxy(14,5);
printf("○");
arr[5][7]=4;
}
return0;
}
//向下移动
int move_down(char arr[9][9])