文章目录

  • 1效果展示
  • 2.设计过程
  • 3代码
  • 4.更新的内容链接

1效果展示

2.设计过程



3代码

#include "game.h"void ShowMap(char arr[][LINE])//打印地图
{for (int i = 0; i < ROW; i++){for (int j = 0; j < LINE; j++){if (arr[i][j] == 0)printf("■");//打印墙壁else if (arr[i][j] == 1)//打印空白printf("  ");else if (arr[i][j] == 2)//打印箱子printf("●");else if (arr[i][j] == 3)//打印目的点printf("¤");else if (arr[i][j] == 4)printf("♀");}printf("\n");}
}
void Move(char arr[][LINE],int *row,int *line)//移动小人儿
{while (1){int newrow = *row;int newline = *line;int quit = 0;printf("请通过w,s,a,d,控制上下左右\n");int move=0;int c = 0;while (!quit){move = getchar();//从标准输入读取字符while((c=getchar())!='\n');//吃掉多余的字符以及空格switch (move){case 'w':newrow--;//向上移动quit = 1;break;case 's':newrow++;//向下移动quit = 1;break;case 'a':newline--;//向左移动quit = 1;break;case 'd':newline++;//向右移动quit = 1;break;default:printf("输入有误,请从新输入\n");break;}}if (arr[newrow][newline] == 0 || arr[newrow][newline]==3)//下一个坐标为墙壁或者目标点{printf("禁止前行\n");}else//前面为空白,箱子,或者目标点{if (arr[newrow][newline] == 1)//为空白{arr[newrow][newline]= 4;//将小人移动到坐标点arr[*row][*line]= 1;//小人的地方变为空白*row = newrow;*line = newline;break;}else if (arr[newrow][newline] == 2)//下一个目标点为箱子{int nextrow = newrow;int nextline = newline;if (move == 'w')//上nextrow = newrow - 1;else if (move == 's')//下nextrow = newrow + 1;else if (move == 'a')//左nextline = newline - 1;else//右nextline = newline + 1;if (arr[nextrow][nextline] == 0 || arr[nextrow][nextline] == 2)//箱子前面是墙壁或者箱子printf("移动不了,箱子前方有障碍\n");else//箱子前面不是墙壁{arr[nextrow][nextline]= 2;//箱子前挪arr[newrow][newline]= 4;//箱子位置变为人arr[*row][*line]= 1;//小人的地方变为空白*row = newrow;*line = newline;break;}}}}}
void  Judge(char arr[][LINE],int *boxs)
{int temp = 0;for (int i = 0; i < ROW; i++){for (int j = 0; j < LINE; j++){if (arr[i][j] == 3)//剩余目标点数temp++;}}*boxs = temp;
}
void Game()
{char arr[10][10] = {  //0位墙壁■,1位空白,2为箱子●,3为目的点¤,4为人♀{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },{ 0, 0, 3, 1, 0, 0, 0, 1, 0, 0 },{ 0, 0, 1, 1, 1, 1, 1, 3, 1, 0 },{ 0, 1, 1, 1, 2, 1, 1, 1, 0, 0 },{ 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 },{ 0, 1, 2, 1, 0, 1, 2, 0, 0, 0 },{ 0, 0, 0, 1, 1, 1, 1, 1, 0, 0 },{ 0, 0, 0, 1, 1, 1, 1, 1, 3, 0 },{ 0, 3, 1, 2, 1, 4, 1, 1, 0, 0 },{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }};//初始化地图ShowMap(arr);int row = 8, line = 5;//小人初始横纵坐标int boxs= 4;//还未到达目标点的盒子数while (boxs){Move(arr, &row, &line);//移动小人system("cls");ShowMap(arr);Judge(arr, &boxs);//剩余目标点数if (boxs == 0)printf("恭喜你,通关成功\n");}}
#ifndef _GAME_H_
#define _GAME_H_#include <stdio.h>
#include <windows.h>#define ROW 10
#define LINE 10void Game();#endif
#include "game.h"int main()
{Game();system("pause");return 0;
}

4.更新的内容链接

1. 功能完善版,点击文字即可进入.
2.增加图形界面的推箱子链接,点击文字即可进入;

c语言小游戏之一看就会的推箱子相关推荐

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

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

  2. c#推箱子小游戏代码_用C#制作推箱子小游戏

    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading. ...

  3. c语言小游戏代码矿井逃生_如何选择编程语言和逃生教程炼狱

    c语言小游戏代码矿井逃生 A few weeks ago, I posted about my experience attempting to learn JavaScript, C#, Pytho ...

  4. c语言min函数_C语言探索之旅 | 第一部分第十课:第一个C语言小游戏

    内容简介 前言 准备工作和建议 我的代码 改进方案 第一部分第十一课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分第九课:循环语句 . 经过前面这么多课的努力,我们终于迎来了第一个比较正式的 ...

  5. C语言小游戏之扫雷完整版

    C语言小游戏之扫雷 一.游戏介绍 二.游戏步骤及实现的功能 1.初始化雷盘 2.打印雷盘 3.随机布置雷 4.玩家排雷 5.防止玩家第一次被炸死 6.统计所选位置周围八个位置中雷的个数 7.递归拓展已 ...

  6. 我的第一个C语言小游戏

    文章目录 前言 一.我的小介绍 二.解决问题 目前还未解决的问题 三.代码如下 前言 一.我的小介绍 大家好,我是一位大一小白,之前并没有想到我会和编程打交道,接触C语言后,我才发现C语言如此有趣,今 ...

  7. c语言程序设计小球弹跳,c语言小游戏程序之弹跳小球的实现代码

    现在说一下其中一个最简单的小程序:弹跳小球 ---------------LINE---------------- 首先我们知道,在窗口的坐标系原点是在窗口左上角的,如图所示 然后我们如果想在这个坐标 ...

  8. c语言小游戏猜数字学习完函数后的小练习。

    今天为大家分享一个简单的C语言小游戏--猜数字:对于刚学习完函数的小伙伴这是一个简单的练手游戏:其中唯一超纲的内容就是随机数的生成:下面为大家简单介绍这个小游戏的实现思路.希望大家看完以后亲自实践一下 ...

  9. C语言小游戏:文字冒险游戏

    这是一个用Dev新写的游戏:冒险4.0,可选角色,可买彩票,可抽奖... 资源我放在了C语言小游戏.文字冒险-cocos2D文档类资源-CSDN文库,适合初学者学习

最新文章

  1. Objective-C非正式协议与正式协议
  2. Java中使用memcache缓存
  3. 灵雀云容器PaaS平台助力知名股份制银行金融科技革新
  4. [c#]Dll自定义目录
  5. JS如何制作图形验证码
  6. js将时间戳格式化为HH:ii:ss的格式
  7. CF946D Timetable 背包dp + 思维转换
  8. 用redis实现延迟队列
  9. nc个人实战使用总结
  10. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合
  11. java中osend,如何从java o javafx向windows任务栏发送信息
  12. C#版-百度网盘API的实现(二)
  13. Android中的GraphicBuffer同步机制-Fence
  14. cflow——C语言函数调用关系生成器
  15. iOS开发中使用代码控制横竖屏的切换
  16. python七段数码管的绘制 获取系统时间
  17. EXT combobox赋值
  18. 2023电工杯数学建模A题B题思路模型
  19. 大数据(分布式计算框架+分布式存储)
  20. 聊聊高效的与第三方合作方沟通的一些技巧

热门文章

  1. java加密框架_Java加密解密(一)Java加密体系基础
  2. 互链周报 | 上周区块链新项目披露17个,融资项目7个,扶持政策中国占大半
  3. 互链月报|政策“催熟”区块链应用,11月中国落地项目量环比大增110%
  4. Dell笔记本,硬盘从Raid on切换为AHCI
  5. 解决别人打不通你电话 总是提示在通话中
  6. 程序员的爱情数字表白
  7. ARP协议 地址解析协议:IP地址转换为MAC地址
  8. 小程序 当前线上版本过低,无法使用(示例:直播组件)
  9. 电脑上自己的账户被删了,使用之前的密码无法登录
  10. MongoDB按条件查找并求和