每天学习一点点,每天容易一点点。一个简单的C语言程序,用来复习c语言,代码通俗易懂。有什么问题望各位不吝赐教。

本文用最简单的C语言语句写个推箱子的程序,分享给大家:

/*******************************************

用最简单的C语言语句写个推箱子的程序。

********************************************/

#include

#include

#include

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 switch

switch (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_RETUNE

case '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;

}

//通过按键来实现游戏 ---> 通过按键来改变二维数组的排列顺序.

//思考一个问题? 地图是二维数组来决定的. 人在哪里 二维数组来决定?

/************************************************

//人推箱子

可以动. 怎么办. 改变元素

1.人的前面是空地

2.人的前面是目的地

3.人的前面是箱子

3.1 箱子的前面是空地

3.2 箱子的前面是目的地

//盘断二维数组中有几个7

//没有目的地 不对.. 人站在目的地

//有没有4.

****************************************/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

推箱子完整c语言程序,C语言实现推箱子游戏相关推荐

  1. 棱形旋转c语言程序_C 语言时隔 5 年重回巅峰,这 20 个热门项目拿去练手!

    在上个月的 TIOBE 编程语言排名中,C 语言和 Java 的差距只有 0.01%.在近日 TIOBE 公布的 2020 年 5 月编程语言排行榜中,C 语言成功超越了 Java,重返第一的王者宝座 ...

  2. 关于工资结算的C语言程序,C语言程序设计,纳税工资系统

    <C语言程序设计,纳税工资系统>由会员分享,可在线阅读,更多相关<C语言程序设计,纳税工资系统(30页珍藏版)>请在人人文库网上搜索. 1.第一章课程设计的目的和要求1.1课程 ...

  3. 蜂鸣器发出7种音阶c语言程序_C语言编程新思路

    第一章 单元测试 1.单选题: 关于一个C语言程序执行的起点和终点,以下选项正确的是 ( ). 选项: A: main 任意 B: main 最后一个 C: main main D: 第一个 最后一个 ...

  4. 文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx

    c 语言程序学生籍贯信息记录簿设计 学生籍贯信息记录簿 课程设计报告书 班 级: 方 0909-1 学 号:姓 名: 苑 小 叶 指导教师 : 康 亚 男 石家庄铁道大学四方学院 2010年 07月 ...

  5. 学生实验平台搭建c语言程序,c语言程序设计实验学生用.doc

    c语言程序设计实验学生用 C语言程序设计 实验指导 (学生用) 计算机基础教研室 <C语言程序设计>课程组 2012年9月 前 言 <C语言程序设计>是计算机科学技术系面向全校 ...

  6. 插入法排序c语言程序,C语言之插入排序算法

    一.什么是直接插入算法? 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列. 选择 ...

  7. 青花瓷音乐的单片机c语言程序,c语言曲谱_单片机c语言音乐简谱代码

    51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...

  8. 框图c语言程序,C语言程序设计框图

    <C语言程序设计框图>由会员分享,可在线阅读,更多相关<C语言程序设计框图(86页珍藏版)>请在人人文库网上搜索. 1.第三章控制结构,返回总目录,目录,3.1节目结构框,3. ...

  9. 简单谱子C语言程序,c语言曲谱_单片机c语言音乐简谱代码

    51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...

最新文章

  1. SSM实现个人博客系统
  2. 人工智能听了很多遍,都应用在哪些领域了你知道吗?
  3. linkedin总共能加30000个好友
  4. 检索数据_19_按照字符串对结果排序
  5. mac php-frm xampp_XAMPP for Mac(Apache服务器环境套件)
  6. 垃圾邮件分类 python_在python中创建SMS垃圾邮件分类器
  7. zs040蓝牙模块使用方法_如何使用车载蓝牙播放手机音乐的方法
  8. 【Elastischearch】Elastischearch bulk 请求源码
  9. 黄聪:WordPress动作钩子函数add_action()、do_action()源码解析
  10. C语言:运行中获取宏名字的技巧
  11. 计算机实验室安全员责任书,实验室人员安全责任书
  12. 学习官方SSIS教程的错误总结
  13. Java学习路线-1:编程入门
  14. 直播类app开发,如何实现直播的相关功能
  15. dell台式机安装centos7网卡设置
  16. MATLAB数学建模 回归与内插
  17. 计算机无法识别u盘,usb不能识别u盘怎么办_电脑usb突然无法识别u盘修复方法-win7之家...
  18. php语言中的符号,php语言中的面向对象
  19. 雨听 | 英语学习笔记(十一)~作文范文:公园的免费入口
  20. 2017届南京富士通南大软件校招软件工程师面经

热门文章

  1. 基于Python实现的医疗知识图谱的知识问答系统
  2. 【经验】tf1.x迁移到tf2.x教程
  3. D. Complete Tripartite(三分图+枚举)
  4. linux终端命令make,Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略...
  5. HTML-CSS小知识——box-shadow的使用
  6. 添加槽函数出现no documents matching “ui_xxx.h“
  7. Android系统静默安装预置应用宝
  8. 电池包预充RC电路仿真
  9. domain adapation 初步理解
  10. sqqyw(淡然点图标系统)漏洞复现和74cms漏洞复现