第一次使用图形界面库编写程序,写的有点乱。
各种ui使用PS细节上做的也不好
尤其是比较能不能移动的那一点比较麻烦
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#define LEN maps[m].longth
#define WID maps[m].wide
void begin(); //开始界面
void choosemap(); //选择关卡
void gamebegin(int m); //游戏开始
void displaywall(int x, int y); //显示墙
void displaybox(int x,int y); //显示箱子
void displayokbox(int x, int y); //显示已就位的箱子
void displayend(int x, int y); //显示终点
void displayperson(int x, int y); //显示人
void displayokperson(int x, int y); //显示在终点上方的人
int goornot(int **a,int l,int w,int ch); //判断能不能走
int nextmap(int **a, int x, int y, int over);
void gameover();
//0为空地
//1为墙壁
//2为箱子
//3为目的地
//4为人
//5为箱子加目的地
//6为人加目的地
int map_1[7][7] = {
{0,0,1,1,1,1,0},
{1,1,1,0,0,1,0},
{1,4,0,3,2,1,1},
{1,0,0,0,2,0,1},
{1,0,1,3,0,0,1},
{1,0,0,0,0,0,1},
{1,1,1,1,1,1,1} };
int map_2[7][7] = {
{0,1,1,1,1,1,0},
{1,1,4,0,0,1,1},
{1,0,0,1,0,0,1},
{1,0,2,5,2,0,1},
{1,0,0,3,0,0,1},
{1,1,0,3,0,1,1},
{0,1,1,1,1,1,0} };
int map_3[6][8] = {
{1,1,1,1,1,1,0,0},
{1,0,0,0,0,1,1,1},
{1,0,0,0,3,3,0,1},
{1,0,2,2,2,4,0,1},
{1,0,0,1,0,3,0,1},
{1,1,1,1,1,1,1,1} };
int map_4[7][8] = {
{0,1,1,1,1,1,0,0},
{1,1,3,0,0,1,1,1},
{1,0,0,1,0,3,4,1},
{1,0,0,1,0,1,0,1},
{1,0,5,0,0,2,3,1},
{1,0,0,0,0,1,1,1},
{1,1,1,1,1,1,0,0} };
int map_5[6][7] = {
{1,1,1,1,1,1,0},
{1,4,5,0,0,1,1},
{1,0,2,1,0,0,1},
{1,0,2,0,3,0,1},
{1,3,0,0,0,1,1},
{1,1,1,1,1,1,0} };
int map_6[6][8] = {
{0,1,1,1,1,1,1,0},
{1,1,0,0,0,0,1,1},
{1,0,3,3,0,0,0,1},
{1,0,1,0,2,2,2,1},
{1,0,0,0,1,4,3,1},
{1,1,1,1,1,1,1,1} };
typedef struct Map
{
int longth;
int wide;
int over;
int *data;
}map;
map maps[6];
IMAGE ground,choose1,choose2,wall1,wall2,end1,end2,box1,box2,okbox1,okbox2,person,okperson;
IMAGE ma1, ma2, ma3, ma4, ma5, ma6;
int main()
{
maps[0].longth = 7, maps[0].wide = 7, maps[0].over = 2, maps[0].data = &map_1[0][0];
maps[1].longth = 7, maps[1].wide = 7, maps[1].over = 3, maps[1].data = &map_2[0][0];
maps[2].longth = 6, maps[2].wide