#include <stdio.h>
#include <conio.h>
#include<stdlib.h> int map[9][11] = {{0,1,1,1,1,1,1,1,1,1,0},  //0代表空地{0,1,0,0,0,1,0,0,0,1,0},  //1代表墙{0,1,0,4,4,4,4,4,0,1,0},  //3代表目的地{0,1,0,4,0,4,0,4,0,1,1},  //4代表箱子{0,1,0,0,0,0,0,0,4,0,1},  //5代表人 {1,1,0,1,1,1,1,0,4,0,1},{1,0,8,3,3,3,3,1,0,0,1},  //2 3 4 5 6 7 8 9 1 0{1,0,3,3,3,3,3,0,0,1,1},{1,1,1,1,1,1,1,1,1,1,0} };//绘制地图  //二维数组+switch()
void DrawMap()
{//遍历二维数组  //0 打印空格  //1 墙   //3 目的地  //什么结构?for (int i = 0; i < 9; i++){for (int j = 0; j < 11; j++){//if  else  switchswitch (map[i][j]){case 0:printf("  ");break;case 1:printf("■");break;case 3:printf("☆");break;case 4:printf("□");break;case 5:printf("♀");  //5人break;case 7:     //4 + 3  箱子在目的地中printf("★");break;case 8:     // 5 + 3  人在目的地当中   人?printf("♀");break;}}printf("\n");}
}void PlayGame()
{int r, c;  //人的下标  //for (int i = 0; i < 9; i++){for (int j = 0; j < 11; j++){if (map[i][j] == 5||map[i][j]==8)   //i j 人的下标?{r = i;c = j;}}}char ch;  //字符变量ch = getch();  //键盘的输入保存到字符中// getch()     getchar()  接收键盘字符// getch()直接接收 不显示回文   getchar()显示回文可以修改 enter键结束//根据不同的按键  改变不同的值. 分支.switch (ch){case 'W':  //W A S D方向   72  80  75  77 虚拟键值 ascii  windowVK_UP VK_TAB VK_RETUNEcase 'w':case 72:if (map[r - 1][c] == 0|| map[r - 1][c] == 3) {map[r - 1][c] += 5;map[r][c] -= 5;}else 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 'S':  //enter按键的作用  确认 返回case 's':case 80:if (map[r + 1][c] == 0 || map[r + 1][c] == 3){map[r + 1][c] += 5;map[r][c] -= 5;}else 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 'A':case 'a':case 75:if (map[r ][c - 1] == 0 || map[r ][c - 1] == 3){map[r ][c - 1] += 5;map[r][c] -= 5;}else 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 'D':case 'd':case 77:if (map[r][c + 1] == 0 || map[r][c + 1] == 3){map[r][c + 1] += 5;map[r][c] -= 5;}else 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;}
}//
int main()  //主函数
{while (1){system("cls");DrawMap();PlayGame();}return 0;
}

C++小游戏——推箱子相关推荐

  1. 用JAVA制作小游戏——推箱子(三)

    本篇博客主要是对推箱子地图编辑器功能的代码讲解. 首先给出这段代码的部分运行截图: 重难点: 地图编辑器主要有三个重难点: 需要有一个绘制地图的界面 能够实现地图绘制的功能 地图绘制完成后需要将地图内 ...

  2. 用JAVA制作小游戏——推箱子(二)

    本篇博客主要是推箱子游戏界面功能的代码讲解. 首先先给出这段代码的部分运行截图: 重难点: 游戏界面主要有五个重难点: 固定好地图的位置 地图的显示 构建菜单栏 读取地图数据 玩家操作功能实现 地图的 ...

  3. 用JAVA制作小游戏——推箱子(一)

    本篇博客是对推箱子游戏首页代码的展示 效果图: 难点: 在背景图上添加按钮. 由于直接使用add方法,会变成图片一块区域,按钮一块区域,彼此互不重叠,形成的界面效果不太好,因此用了JLayeredPa ...

  4. C语言小游戏 ——推箱子

    文章目录 (1)内容描述 (2)功能 (3)设计目的 (4)总体设计 (5)明显缺点 (6)个人总结 7. 实例 实例一 实例二 实例三 实例四 实例五: (1)内容描述 描述:用户进入页面后可以进行 ...

  5. c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  6. Python游戏开发,Python实现童年小游戏推箱子 附带源码

    开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 上效果图 原理简 ...

  7. python小游戏——推箱子代码开源

    ♥️作者:小刘在这里 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放,愿所有的美好,再疫情结束后如约而至. 目录 一.效 ...

  8. 一个简单的c 游戏编程语言,编程达人 c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  9. Java小游戏-推箱子

    摘要 推箱子是来自于日本的一个古老游戏,目的是在于训练逻辑思维能力,在一个狭小的空间里,要把木箱推到指定的位置,稍不小心箱子就会无法移动或者被通道堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安 ...

  10. 用C语言写一个可以选择关卡添加关卡的小游戏,推箱子

    目录 关于用C语言写一个可以选择关卡的小游戏 代码部分 所有代码 Tui_Xiang_Zi.h Tui_Xiang_Zi.cpp 关卡数据 关卡数据规则 思路和建议 建议 警告 关于用C语言写一个可以 ...

最新文章

  1. Java项目:精品酒店管理系统(java+SSM+mysql+maven+tomcat)
  2. idea用token登陆github_用python和她一起唐诗宋词
  3. 面试官,别再问高并发了!
  4. linux 抓包 tcpdump和Wireshark
  5. win10内核linux,windows 10中发布完整的Linux内核
  6. python调用 matlab库_python调用matlab的搜索结果-阿里云开发者社区
  7. matlab搭建的应用层架构逻辑,软件设计的三层架构
  8. 南邮计算机学院答辩,南京邮电大学答辩PPT模板讲述.pptx
  9. 安装指定的vue-router版本
  10. Newtonsoft.Json.Compact
  11. 菲波那切数列java_斐波那契数列—java实现
  12. 《和平精英》迎来史上最严封号:模拟器过检测、手机外设全部凉凉?
  13. 中国广电即将放号,感受到压力的中国移动率先推出19元5G套餐
  14. 软件实施工程师职业规划
  15. 微软.NET平台OA办公解决方案
  16. PoisonIvy Rat 远程溢出实战
  17. 运维如何学习、自我提升价值?
  18. 第一次找工作/实习前需要准备的东西(互联网行业)
  19. SEO优化:6个方法提升网站排名
  20. vue openlayers 加载高德地图等 gcj02 的图层偏移问题

热门文章

  1. python基础学习
  2. Go Get设置代理
  3. docker管理神器—kubernetes—直接路由篇
  4. 配置Android应用开发环境
  5. PHP get_class_methods函数用法
  6. [资源整理]关于前端设计的那些博客儿~
  7. Eclipse常用的一些设置
  8. PL/SQL 连接Oracle 11g
  9. 设计模式实现一个简单的缓存
  10. postman:Could not get any response解决方法