控制台RPG开发教程3: 筹建地图工作组1


本次教程的内容有三个:

  • 1 指令的基本格式
  • 2 屏幕输出方法
  • 3 显示一个简单的地图

为了显示完整的地图,我们首先研究屏幕的输出方法。
在教程1中,我们运行了"hello world"例子,它就是在控制台世界中输出的一个例子。

# include<iostream>
using namespace std;
int main(){
    cout << "hello world.";
}

在这个程序中,真正的指令,只有一条:cout << "hello world";
在这里,我们可以看到精灵执行的指令是什么样的。
一条指令中一般包含三种成分:

  1. 名字
  2. 常数
  3. 符号

前面的cout 是一个名字,有两类比较常见的名字,一类是变量名,就是大楼中某个房间的别名。另一类是函数名,就是电话指令中某个操作的标志。
这里cout是一个变量名,但它不代表我们这栋大楼的房间,它的地址来自std大楼。这就是为什么我们的代码中有一句

using namespace std;


它虽然不是指令,但它告诉精灵,如果在本楼中找不到一个房间的名字,可以去std大楼找一找。
我们理解为那大楼中某个房间被预先起了这么个名字。
在这个房间里,存放的是它的内容,即控制台输出对象。这实际是一个套间,房屋里面还有结构,但我们此刻先忽略内部的细节。
中间的 << 是符号,它也代表一种操作,可以理解为是一类特殊的函数名。
后面的,"hello world" 是常数,具体来说是字符串常数,所有字符串常数的标志就是用两个半角双引号包括起来。
最后的半角分号,也是一个符号,代表指令结束。一般的指令都是以半角分号结尾的。

连起来这条完整的指令,是一条电话功能指令,它做的事情由符号“<<”表示,它有两个参数,一个是左边的cout,一个是右边的"hello world"。
这个功能的意思就是在 cout所代表的标准输出对象当前的光标位置开始,显示一些内容"hello world",然后把光标移动到显示内容的后面。
类似这样的以符号表示的操作还有好几个我们非常熟悉的,比如:+ - * / %。
代表让外部工作组去做响应的运算,其中最后一个是取模(余数)的运算。并把结果返回。

我们可以做个试验,看看下面几条指令的结果,也熟悉一下屏幕输出的方式。

# include<iostream>
using namespace std;
int main(){
    cout << (5+6);
    cout << (3*11);
    cout << (81 % 10);
}

这里的括号也是符号,它的意思是括号内的指令优先执行。
如果写成 cout << 5 + 6; 怕我们的精灵理解为先把5输出,再去和6做加法。
其实我们的精灵不会这么理解,它知道+符号的优先级超过<<,正如它知道*符号的优先级超过+符号。

如果运行正常,结果是11331
其实这是三道题目的结果,11,33,1,因为我们没有指示它们分开,于是输出就被连起来了。
记得<<指令含义么?在 cout所代表的标准输出对象当前的光标位置开始,显示内容并把光标移动到显示内容的后面。
为了看清结果,我们希望输出显示在三行上。
我们加入换行的标记,这样修改一下代码。

cout << (5+6) << endl;
cout << (3*11) << endl;
cout << (81 % 10) << endl;


运行,这次正常了。
endl 是另外一个名字,我们现在就把它理解为另一个电话指令,接到指定的工作组执行换行操作就可以了。
另外,我们注意到<<运算符是可以连用的,正如+ - * / 等很多运算符都可以联用。

有了前面的基础,现在让我们来显示一个简单的地图。

# include <iostream>
using namespace std;
int main(){
    cout << "■■■■■■■■■■■■" << endl; 
    cout << "♀      ■■          ■ " << endl; 
    cout << "■  ■    ■■  ■■  ■" << endl; 
    cout << "■  ■■        ■      " << endl; 
    cout << "■■■■■■■■■■■■" << endl; 
}


上面是一个简单的迷宫地图。
我们的输出受限于控制台的字符方式,为了尽量增加一些表现力,我们引入字符效果相对丰富的中文全角字符,这样可以让我们的地图效果更好看一些。
左边这个“♀”符号,代表我们的英雄,它有一个头和平伸的胳膊,身体和腿用一条竖线做简约表示。

先保存这个程序为map1.cpp,我们建立一个新程序,研究一下键盘输入。

课程小结:

这一节课,我们学习了基本的输出方法,和基本的数学运算方法。我们看到在一条指令中,经常会导致我们的精灵打很多个电话。

发布了24 篇原创文章 · 获赞 0 · 访问量 4579

猜你喜欢

转载自blog.csdn.net/xiaorang/article/details/104728606