推箱子游戏利用图形库实现 2019年1月12日

皮卡丘推西瓜游戏 2019年1月12日
以下内容仅供娱乐,欢迎随时探讨,请多指教

(1)游戏共有五关,由易到难,每一关都有初始化、按键处理、重置、退出功能。
(2)初始化包括屏幕初始化和每一关关卡的初始化,屏幕被初始化为宽600、高660。
(3)更新记录模块,实现学生个人信息和成绩信息的修改。
(4)按键处理包括移动小人和移动箱子,通过移动上下左右键控制小人的移动,从而推动箱子,以把箱子推到指定的目的地为完成通关。
(5)每一关都可以重置,按r键,可以重置当前关,空格回退一步。
(6)按Esc键可以在任何时候退出程序。
(7)输入信息有效性验证模块,验证用户数据输入是否有效合法。

想要源代码可以参考百度云文件,下面?

链接:https://pan.baidu.com/s/17YZvTb3512e9YmbB76IVQA 提取码:c9nz 复制这段内容后打开百度网盘手机App,操作更方便哦

以上是完整源程序代码链接。
——————————————分割线—————————————————
以下是游戏效果展示图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以下为代码:

///
// 程序名称:皮卡丘推西瓜
// 编译环境:Visual C++ 6.0

//游戏中用0表示空地,1表示人物,2表示箱子,3表示目的地,6表示围墙

#include "myhead.h"
#include "graphics.h"// 引用图形库头文件,可以置入图片
#include "conio.h"
#include "dos.h"
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
#include "time.h"
#include "windows.h"
#define M 21       			 //设置密码位数为20

/*定义结构体,储存信息*/
typedef struct winer
{
   
	struct winer *before;
	int t[10][10];
	struct winer *next;
} winer;

int x,y;							//人物坐标
int loop;							//控制是否重新开始
IMAGE img[8];                     	//定义IMAGE对象数组来保存图片
int b[10][10];						//设置当前地图数组,用来接收地图便于读写
char user[M];						//设置账户名
char password[M];					//设置密码
int count=0;                        //记录步数
int begin, end;						//定义开始和结束标志位

//游戏中用0表示空地,1表示人物,2表示箱子,3表示目的地,6表示围墙
const int map[5][10][10]=  				//定义三维地图数组
{
   
	{
   	{
   0},
		{
   0, 0, 6, 6, 6},
		{
   0, 0, 6, 3, 6},
		{
   0, 0, 6, 0, 6, 6, 6, 6},
		{
   6, 6, 6, 2, 0, 2, 3, 6},
		{
   6, 3, 0, 2, 1, 6, 6, 6},
		{
   6, 6, 6, 6, 2, 6},
		{
   0, 0, 0, 6, 3, 6},
		{
   0, 0, 0, 6, 6, 6}
	},
	{
   	{
   6, 6, 6, 6, 6},
		{
   6, 1, 0, 0, 6},
		{
   6, 0, 2, 0, 6, 0, 6, 6, 6},
		{
   6, 0, 0, 0, 6, 0, 6, 3, 6},
		{
   6, 6, 6, 2, 6, 6, 6, 3 , 6},
		{
   0, 6, 6, 0, 0, 0, 0, 0, 6},
		{
   0, 6, 0, 0, 0, 6, 0, 0, 6},
		{
   0, 6, 0, 0, 0, 6, 6, 6, 6},
		{
   0, 6, 6, 6, 6, 6}
	},
	{
   	{
   0, 6, 6, 6, 6},
		{
   0, 6, 1, 0, 6, 6, 6},
		{
   0, 6, 0, 0, 0, 0, 6},
		{
   6, 6, 6, 0, 6, 0, 6, 6},
		{
   6, 3, 6, 0, 6, 0, 0, 6},
		{
   6, 0, 2, 0, 0, 6, 0, 6},
		{
   6, 3, 0, 0, 0, 2, 0, 6},
		{
   6, 6, 6, 6, 6, 6, 6, 6}
	},
	{
   	{
   0, 6, 6, 6, 6, 6, 6, 6},
		{
   0, 6, 0, 1, 0, 3, 3, 6},
		{
   0, 6, 0, 0, 0, 6, 6, 6, 6},
		{
   6, 6, 6, 0, 0, 0, 0, 0, 6},
		{
   6, 0, 0, 0, 6, 2, 6, 0, 6},
		{
   6, 0, 2, 0, 6, 0, 0, 0, 6},
		{
   6, 0, 0, 0, 6, 6, 6, 6, 6},
		{
   6, 6, 6, 6, 6}
	},
	{
   	{
   0, 6, 6, 6, 6, 6},
		{
   0, 6, 0, 1, 0, 6, 6, 6},
		{
   6, 6, 0, 6, 2, 0, 0, 6},
		{
   6, 0, 0 ,3, 0, 3, 0, 6},
		{
   6, 0, 0, 2, 2, 0, 6, 6},
		{
   6, 6, 6, 0, 6
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值