c语言初学者使用图形界面库编写推箱子(6关卡)

本文记录了一位C语言初学者尝试使用图形界面库开发推箱子游戏的过程,虽然存在UI细节处理不佳和未实现撤回系统的问题,但已成功制作出6个关卡。
摘要由CSDN通过智能技术生成

第一次使用图形界面库编写程序,写的有点乱。
各种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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值