小时候都玩过的推箱子,原来也可以用C语言来实现
想要完成推箱子,首先我们应该明白它的原理,或者说是对于这个游戏有着一定的理解,这也是我从五子棋之后所学习到的一种全新的理念,想要编写出一个东西就应该先了解它的具体内容,就像我们单片机老师所说道的程序的编写,首先应该给自己画一个流程图,这样才能够根据流程图将我们所需要的东西进行翻译出来,具体化。
- 头文件及具体宏定义
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#define MAX_ROW 8//定义地图的行为8
#define MAX_COL 8//定义地图的列为8
int Boxs;//统计其中所剩未完成箱子的个数
int x, y;//用此坐标来定位小人的位置
int map[MAX_ROW][MAX_COL] = {
//其实这说是地图,也算是一个关卡 我自己做了三个关卡,大家也可以根据自己的需求来做
{
0, 0, 1, 1, 1, 0, 0, 0 },
{
0, 0, 1, 4, 1, 0, 0, 0 },
{
0, 0, 1, 0, 1, 1, 1, 1 },
{
1, 1, 1, 3, 0, 3, 4, 1 },
{
1, 4, 0, 3, 2, 1, 1, 1 },
{
1, 1, 1, 1, 3, 1, 0, 0 },
{
0, 0, 0, 1, 4, 1, 0, 0 },
{
0, 0, 0, 1, 1, 1, 0, 0 }
};
/**
* 0 表示空
* 1 表示墙
* 2 表示人
* 3 表示箱子
* 4 表示目的地(球)
* 5 表示已完成的箱子
*/
-
具体流程和主函数
- 打印菜单
- 选择游戏关卡
- 玩家开始移动
- 判断游戏是否成功
有了五子棋的经验,我将主函数尽可能地写的简洁一些
int main(){
int i = 0;
int choice = 0;
MenuUi(1); //选择界面
{
choice = ChoiceStart(i);
if (choice == 1){
Game();
}
}
system("pause");
return 0;
}
- 接下来就是每个函数的解析和具体的函数了
**菜单函数** 是一个小项目的主界面也是大家控制台最开始显示的所以对于这个界面一般还是设计的好一些
void MenuUi(){
printf("\t╔══════════════════════════════════════════════════════════════╗\n");
printf("\t║ ║\n");
printf("\t║ 欢迎使用推箱子游戏程序 祝您玩的愉快挑战无极限 ║\n")