码文不易,望点赞、收藏、留言、打赏随意

目录

  • 最终的游戏效果
  • 代码
  • 资源地址

最终的游戏效果

代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<Windows.h>
#include<conio.h>
#include<MMSystem.h>
#pragma comment(lib,"Winmm.lib")
//定义图形变量
//加载图片
//显示图片
#define n 6    //关卡数
#define m 10   //地图大小
int index=0;     //当前关卡
IMAGE img[6];定义图形变量
int imgIndex[6]={0,1,3,4,5,7};
int map[n][m][m]={{1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,3,0,0,1,3,1,1,1,0,0,0,0,4,0,0,0,1,1,1,0,1,5,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,4,1,0,0,1,0,0,1,1,0,0,1,4,0,0,0,3,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,},{1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,4,4,0,1,1,3,3,1,0,0,1,0,1,1,1,3,3,0,0,4,0,4,0,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,1,1,5,1,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,},{1,1,1,1,1,1,1,1,1,1,1,3,0,1,0,0,0,0,3,1,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,4,0,4,0,1,1,0,0,1,0,0,1,0,0,1,1,0,0,0,3,4,0,4,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,4,0,1,5,1,1,1,3,0,0,0,0,0,0,3,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,0,1,3,0,1,1,0,3,1,1,0,3,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,4,0,3,0,4,3,1,1,1,0,1,1,0,0,0,1,0,1,1,0,4,0,0,4,3,0,0,1,1,1,0,0,4,0,1,5,0,1,1,0,0,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,},{1,1,1,1,1,1,1,1,1,1,1,3,0,0,3,0,3,0,0,1,1,0,0,0,1,4,1,1,0,1,1,0,0,3,0,0,0,3,0,1,1,0,4,1,3,0,0,1,0,1,1,0,4,0,0,1,4,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,0,4,0,1,4,0,1,1,1,5,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,},{1,1,1,1,1,1,1,1,1,1,1,5,1,0,3,0,0,3,0,1,1,7,0,4,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,4,0,4,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,0,0,4,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0,3,1,0,0,0,3,0,1,1,1,1,1,1,1,1,1,1,1,}
};
void loadResoure()
//函数作用:加载图片
{int i=0;for(i=0;i<6;i++){char filename[20]="";sprintf(filename,"%d.bmp",imgIndex[i]);loadimage(img+i,filename);//加载图片//如果错误,就将项目的属性里的-》常规-》字符串设置为多字符}
}
void printf_map(int map[][m][m])
//函数作用:初始化地图
{int i,j;int x,y;for(i=0;i<m;i++){for(j=0;j<m;j++){x=j*64;//y=i*64;//switch(map[index][i][j]){case 0://代表路putimage(x,y,img+0);break;case 1://代表墙putimage(x,y,img+1);break;case 3://目的地putimage(x,y,img+2);break;case 4://箱子putimage(x,y,img+3);break;case 5:case 8://人putimage(x,y,img+4);break;case 7://箱子推进了目的地putimage(x,y,img+5);break;}}printf("\n");}
}
//按键交互
void keydown()
{int i,j;//找到人的位置for(i=0;i<m;i++){for(j=0;j<m;j++){if(map[index][i][j]==5||map[index][i][j]==8){break;}}if(map[index][i][j]==5||map[index][i][j]==8){break;}}char userkey=_getch();switch(userkey){case'w':case'W':case 72://小键盘的键值//只是人走if(map[index][i-1][j]==0||map[index][i-1][j]==3){map[index][i-1][j]+=5;//移动到的位置加5map[index][i][j]-=5;//原来位置减5}//人推箱子走if(map[index][i-1][j]==4||map[index][i-1][j]==7){//箱子移动的条件if(map[index][i-2][j]==0||map[index][i-2][j]==3){map[index][i-2][j]+=4;//箱子来了map[index][i-1][j]+=1;//箱子走了,人来了map[index][i][j]-=5;//人走了}}break;case's':case'S':case 80://只是人走if(map[index][i+1][j]==0||map[index][i+1][j]==3){map[index][i+1][j]+=5;//移动到的位置加5map[index][i][j]-=5;//原来位置减5}//人推箱子走if(map[index][i+1][j]==4||map[index][i+1][j]==7){//箱子移动的条件if(map[index][i+2][j]==0||map[index][i+2][j]==3){map[index][i+2][j]+=4;//箱子来了map[index][i+1][j]+=1;//箱子走了,人来了map[index][i][j]-=5;//人走了}}break;case'a':case'A':case 75://只是人走if(map[index][i][j-1]==0||map[index][i][j-1]==3){map[index][i][j-1]+=5;//移动到的位置加5map[index][i][j]-=5;//原来位置减5}//人推箱子走if(map[index][i][j-1]==4||map[index][i][j-1]==7){//箱子移动的条件if(map[index][i][j-2]==0||map[index][i][j-2]==3){map[index][i][j-2]+=4;//箱子来了map[index][i][j-1]+=1;//箱子走了,人来了map[index][i][j]-=5;//人走了}}break;case'd':case'D':case 77://只是人走if(map[index][i][j+1]==0||map[index][i][j+1]==3){map[index][i][j+1]+=5;//移动到的位置加5map[index][i][j]-=5;//原来位置减5}//人推箱子走if(map[index][i][j+1]==4||map[index][i][j+1]==7){//箱子移动的条件if(map[index][i][j+2]==0||map[index][i][j+2]==3){map[index][i][j+2]+=4;//箱子来了map[index][i][j+1]+=1;//箱子走了,人来了map[index][i][j]-=5;//人走了}}break;}
}
int check()
{int cnt=0;for(int j=0;j<m;j++)for(int z=0;z<m;z++)if(map[index][j][z]==4) cnt++;if(cnt) return 0;else return 1;
}
int main(void)
{loadResoure();//加载图片initgraph(64*m,64*m);//设置图形窗口的大小PlaySound(TEXT("sounds\\1.wav"),NULL,SND_FILENAME | SND_ASYNC| SND_LOOP);while(1){if(check()){system("cls");printf_map(map);//初始化地图index++;if(index==6){settextstyle(80,0,"consolas");//字体大小 outtextxy(220,260,"通关了");while(1);}else{settextstyle(80,0,"consolas");//字体大小 outtextxy(220,260,"过关了");settextstyle(50,0,"consolas");//字体大小 outtextxy(160,350,"正在进入下一关");Sleep(1200);}}printf_map(map);//初始化地图keydown();//键盘交换system("cls");}_getch();closegraph();return 0;
}

资源地址

链接:https://pan.baidu.com/s/1S_sbJDhzrWCh0kBxzHVcPg
提取码:1234

项目: 推箱子图形化游戏 【C++ / C】相关推荐

  1. JAVA 实现《推箱子升级版》游戏

    前言 <推箱子>推箱子是一个古老的游戏,目的是在训练你的逻辑思考能力.在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限 ...

  2. c#推箱子小游戏代码_C#做的一个推箱子的小游戏

    C#做的一个推箱子的小游戏 c# 2021-1-6 下载地址 https://www.codedown123.com/59125.html 本推箱子游戏使用数组实现,用不同的数字标识不同的物体,从而简 ...

  3. vue3 项目创建(UI图形化界面方式,可视化操作Vue项目,vue ui)

    vue3 项目创建 (UI图形化界面方式,可视化操作Vue项目,vue ui) 目录 一.图形化界面方式搭建vue3 项目前提条件 1.检查node 和 @vue/cli 版本信息 2.升级你的 No ...

  4. 移动平台开发项目(推箱子小游戏)

    项目目的:实现一个推箱子小游戏 项目架构:使用三个活动类 项目功能: 能在touch中的Action_down动作下,实现小人推着箱子走的效果,全部箱子到达旗帜为过关. 能使用底部Button键来前后 ...

  5. 项目: 推箱子游戏【c/c++】

    很早之前写的一个推箱子的游戏 目录 最终效果 代码 最终效果 代码 #include<stdio.h> #include<stdlib.h> #include<graph ...

  6. 一步一步教你开发《松鼠推箱子》手机游戏

    这类游戏大家肯定都玩过,一个很有趣味性的小游戏.操作简单,具有一定的逻辑性.很适合无聊的时候消遣时间.:) 首先简单介绍下手机游戏的一般性开发过程.首先需要策划出一个游戏方案,也就是要给出一个游戏的整 ...

  7. VS 游戏:推箱子对战游戏

    推箱子 //只做了两关 class Program{static void Main(string[] args){int x = 1;int y = 8;int z = 0;int end1x = ...

  8. 如何用C语言开发图形化游戏

    原文:https://www.toutiao.com/i6951600048111190532/ 当你C语言学到一段时间后,也许对命令行程序感到厌倦了,也许你想要做一款游戏,但是光目前的知识,无法用命 ...

  9. 使用codeblock开发图形化游戏

    假设你已经安装了codeblcok 20.03,若还没有安装请先安装 1.下载  easyx4mingw_20220901 下载和安装参见  https://codebus.cn/bestans/ea ...

最新文章

  1. HDU1978 记忆化搜索
  2. 在Flex中使用HTTPService传递参数
  3. mac删除ssh key_SecureCRT for mac(好用的终端SSH仿真工具)
  4. python中count的作用_python中内置的.count是什么?
  5. 标签生成-基于标签的的推荐系统
  6. 我不是在吓你,但是区块链,可能真的是普通人弯道超车的最后一个机会了。
  7. Node.js meitulu图片批量下载爬虫1.051
  8. 【题解】生日蛋糕-C++
  9. java实现预览图片,点击实现下一张
  10. vim globle
  11. 【博弈论】翻硬币游戏8种模型
  12. 在线长图片自动裁剪工具
  13. 第一个安卓app应用的开发--环境配置和第一项目创建
  14. 当网站关键词优化到搜索引擎首页后,是否还要继续优化呢?
  15. 计算机网络期末复习(谢希仁 第五版)
  16. MSB8003: 未定义 WindowsSDKDir 属性
  17. Windows junction
  18. 网络安全入门必学内容有哪些?网络安全最全知识点汇总来了
  19. ATP Public 001直播回顾:偶然与必然,从中医药大学到微软
  20. 【数据结构】哈希应用

热门文章

  1. uc/os-II(source)各种文件含义集锦
  2. linux sort 命令详解(转 )
  3. centos 7 Chrony 集群同步时间
  4. loadRUnner常用函数
  5. docker 在esx上的网络配置
  6. 软件工程作业----个人读后感
  7. ubuntu软件位置(安装位置, 运行文件位置, 缓存位置)
  8. nrf51822蓝牙芯片ble_app_proximity程序总结
  9. LeetCode5377. 将二进制表示减到1的步骤数
  10. Apache2配置SSL