background image

如下:

if (map[…][…] == '#') break;

/*如果前面是墙壁,就不执行下去*/ 

哇噻!真棒,我们做出了一个完整的游戏了.当然你还可以通过修改二维数组 map 来修改

迷宫的地图,让它更有挑战性.不过,我们要设计一个更好玩的游戏——

5. 聪明的搬运工

大家一定玩过"搬运工"的游戏吧!这是在电脑和电子字典上较流行的益智游戏,让我们

动手做一个属于自己的"搬运工"吧!

程序依然用数组 map 来保存地图,数组元素如果为空格则表示什么也没有,'b'表示箱

子,'#'表示墙壁,'*'表示目的地,'i'表示箱子在目的地。我们以后每推一下箱子,不但
要改变屏幕的显示,也要改变 map 相应元素的值。

游戏的主循环依然是接受按键。当接收一个方向键,需要判断小人前面一格的状态,如果

是空地或目的地,则人物可以直接移动;如果是墙壁,则不可移动;如果是箱子或目的地上
的箱子,则需要继续判断箱子前面一格的状态:如果前一格是空地或目的地,则人推箱子前
进,否则不可移动。好的,我们在 switch 中增加了这些判断语句。

程序还有一个重要的功能就是判断胜利。数组 Des 用来记录全部目的地的坐标,我们每执

行一步操作后,程序就要通过 Des 数组判断这些目的地上是否都有箱子了。

真棒啊!我们可以做游戏了。而且是一个老少皆宜,趣味十足的游戏呢!当然,我们可以

通过修改 map 数组来制作不同的游戏地图,我们还可以相互分享好的游戏地图呢。

尾声: 

在 C++等高级语言还没出来的时候,很多应用程序也是 C 语言开发的。C 语言在与硬件联

系紧密的编程中,也占有重要地位。

其实我觉得学习编程,可以通过一些小游戏,实用的例子来学习。像学习音乐的人,不是

要等到把全部乐理学完后才演奏一个完整的曲子。而是刚开始学时就有一些简单的曲子让你演
奏,让你立刻就有成就感,让你很快就能卖弄出来在别人面前表现自己了。通过编游戏来学习
编程,把学习变成游戏,不失为学习计算机的一种好方法。

好了,编游戏就这么简单,希望大家也尝试用 C 语言或其他的语言来做几个自己喜欢的

小游戏。