IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C 图形推箱子游戏代码,供参考,不可以运行。 -> 正文阅读

[C++知识库]C 图形推箱子游戏代码,供参考,不可以运行。

//标准的输入输出头文件
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <graphics.h>  //图形库
#include <mmsystem.h>  //多媒体设备接口 
#pragma comment(lib,"winmm.lib")

IMAGE people, end, blank, wall, redbox, box;

int map[7][9] = {
		{0,0,0,0,0,0,0,0,0},  //0  空地
		{1,1,1,0,0,1,0,0,0},  //1  墙
		{0,0,3,3,0,0,0,0,1},  //3  目的地
		{1,0,7,3,7,0,0,0,0},  //4  箱子
		{1,5,4,4,3,4,4,0,1},  //5  人
		{1,0,0,0,0,0,0,0,1},  //7  箱子+目的地 
		{1,0,0,0,0,0,0,0,0}}; //8  人+目的地
//游戏的初始化
void GameInit()
{
	//初始化一个界面
	initgraph(700, 900);   //创建一个窗口
	//初始化音乐
	PlaySound(L"music.wav", NULL, SND_LOOP | SND_ASYNC | SND_FILENAME);
	//加载图片
	people, end, blank, wall, redbox, box;
	loadimage(&people, L"people.jpg", 100, 100);
	loadimage(&end, L"end.jpg", 100, 100);
	loadimage(&blank, L"blank.jpg", 100, 100);
	loadimage(&wall, L"wall.jpg", 100, 100);
	loadimage(&redbox, L"redbox.jpg", 100, 100);
	loadimage(&box, L"box.jpg", 100, 100);
}
//绘制地图
void DrawMap()
{
	//遍历二维数组
	for (int i = 0; i < 7; i++)
	{
		for (int j = 0; j < 9; j++)
		{
			switch (map[i][j])
			{
			case 0:
				putimage(i * 100, j * 100, &blank);
				break;
			case 1:
				putimage(i * 100, j * 100, &wall);
				break;
			case 3:
				putimage(i * 100, j * 100, &end);
				break;
			case 4:
				putimage(i * 100, j * 100, &box);
				break;
			case 5:
				putimage(i * 100, j * 100, &people);
				break;
			case 7:
				putimage(i * 100, j * 100, &redbox);
				break;
			case 8:
				putimage(i * 100, j * 100, &people);
				break;
			}
		}
		printf("\n");
	}	
	//Fun(map);
}
//玩游戏
void PlayGame()
{
	char key;    //按键
	//找人的位置  人的标志是 5 8
	int r, c;  //记录人当前的行和列.
	for (int i = 0; i < 7; i++)
	{
		for (int j = 0; j < 9; j++)
		{
			if (map[i][j] == 5 || map[i][j] == 8)
			{
				r = i;
				c = j;
			}
		}
	}
	//map[r][c]   当前人的位置
	//map[r-1][c] 人前面的位置
	//map[r-2][c] 人前面的前面的位置
	key = _getch(); //接收按键
	switch (key)
	{
	case 72:
		//1.人的前面是空地(可以)//2.人的前面是目的地(可以)
		if (map[r][c - 1] == 0 || map[r][c - 1] == 3)
		{
			map[r][c - 1] += 5;
			map[r][c] -= 5;
		}
		if (map[r][c - 1] == 4 || map[r][c - 1] == 7)
		{
			//4.1 箱子的前面是空地(可以)
			//4.2 箱子的前面是目的地(可以)
			if (map[r][c - 2] == 0 || map[r][c - 2] == 3)
			{
				map[r][c - 2] += 4;
				map[r][c - 1] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	case 80:
		if (map[r][c + 1] == 0 || map[r][c + 1] == 3)
		{
			map[r][c + 1] += 5;
			map[r][c] -= 5;
		}
		if (map[r][c + 1] == 4 || map[r][c + 1] == 7)
		{
			if (map[r][c + 2] == 0 || map[r][c + 2] == 3)
			{
				map[r][c + 2] += 4;
				map[r][c + 1] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	case 75:
		if (map[r - 1][c] == 0 || map[r - 1][c] == 3)
		{
			map[r - 1][c] += 5;
			map[r][c] -= 5;
		}
		if (map[r - 1][c] == 4 || map[r - 1][c] == 7)
		{
			if (map[r - 2][c] == 0 || map[r - 2][c] == 3)
			{
				map[r - 2][c] += 4;
				map[r - 1][c] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	case 77:
		if (map[r + 1][c] == 0 || map[r + 1][c] == 3)
		{
			map[r + 1][c] += 5;
			map[r][c] -= 5;
		}
		if (map[r + 1][c] == 4 || map[r + 1][c] == 7)
		{
			if (map[r + 2][c] == 0 || map[r + 2][c] == 3)
			{
				map[r + 2][c] += 4;
				map[r + 1][c] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	}
}
//主函数
int main()
{
	GameInit();
	while (1)
	{
		system("cls");
		DrawMap();
		PlayGame();
	}
	return 0;
}





  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:30:43  更:2022-04-30 08:31:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:01:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码