C语言实现推箱子

这篇博客记录了作者使用C语言结合EasyX图形库开发推箱子小游戏的过程。文章详细介绍了游戏的实现步骤,包括初始化地图、设置二维数组、游戏初始化、贴图功能、悔棋和移动函数的实现,以及判断输赢的逻辑。读者可以参考此教程进行类似游戏的开发。
摘要由CSDN通过智能技术生成

在网上学习并完成这个推箱子的小游戏,记录下来

一、工具介绍

1、easyx图形库工具
2、vs2013及以上都可以

二、代码实现

1、用到的头文件

#include<stdio.h>
#include <stdlib.h>
#include<easyx.h>
#include"resource.h"
#include<conio.h>
#pragma comment(lib,"winmm.lib")

2、初始化地图,定义了一个二维数组,利用二维数组来对地图上的元素实现定义(如:0为空地,1是围墙,2是人物,3是目的地,4是箱子,5是箱子进入目的地,6是人进入目的地)

 int arr[10][10] = 
 {
     
     {
   1,1,1,1,1,1,1,1,1,1},
     {
   1,0,0,0,0,0,0,0,0,1},
     {
   1,0,0,0,0,0,0,0,0,1},
     {
   1,0,0,0,0,0,4,4,0,1},
     {
   1,0,0,0,0,2,3,3,0,1},
     {
   1,0,0,0,0,0,0,0,0,1},
     {
   1,0,0,0,0,0,0,0,0,1},
     {
   1,0,0,0,0,0,0,0,0,1},
     {
   1,0,0,0,0,0,0,0,0,1},
     {
   1,1,1,1,1,1,1,1,1,1},
  };

 int map[10][10];
 int map1[10][10];
 IMAGE image[6];//图片函数 定义图片数组
 int life = 0;//定义血量

3、对游戏初始化,使定义的全局变量等于定义的二维数组

void init()
{
   
for (int i = 0; i < 10; i++)
{
     
   for (int j = 0; j < 10; j++)
    {
   
      map[i][j] = arr[i][j];
    }
 }

}

4、利用贴图函数对游戏贴图,

 void drawmap()
 {
   
  BeginBatchDraw();//开始批量贴图
  putimage(0, 0, &image[0]);//贴空地的图片
  for (int i = 0; i < 10; i++)//遍历地图,寻找元素
  {
   
   for (int j = 0; j < 10; j++)
   {
   
    switch (map[i][j])
    {
   
    case 1: putimage(50 * j, 50 * i, &image[1]); break;//围墙
    case 2: putimage(50 * j, 50 * i, &image[2]); break;//人
    case 3: putimage(50 * j, 50 * i, &image[3]); break;//目的地
    case 4: putimage(50 * j, 50 * i, &image[4]); break;//箱子
    case 5: putimage(50 * j, 50 * i, &image[5]); break;//箱子进入目的地
    case 6: putimage(50 * j, 50 * i, &image[2]); break;//人进目的地
    }
   }
  }
  EndBatchDraw();//结束贴图
 }

5、悔棋的函数(就是保存上一步各个元素的位置)

    void huiqi()//返回上一步
 {
   
  for (int i 
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值