主要内容 #
1. 坐标 #
1.1 生活中的坐标 #
在生活中,我们是怎么确定自己的位置呢?

其实我们无形中,使用了一个概念,叫做“坐标”。
为了方便说明,我们用象棋的棋盘,来做一个简单说明。

假设,每个格子的长宽都是1。横轴用X表示,纵轴用Y表示,
则每个棋子的位置,可以用坐标(x,y)表示。
请试着说出,“红炮”和“黑卒”的坐标。
/* */
参考答案:
红炮 (3, 3) 黑卒 (-1, 2)
1.2 屏幕中的坐标 #

习惯上,我们依然将横轴用X表示,纵轴用Y表示,
则每个字符的显示位置,也可以用坐标(x,y)表示。
有了这样的基本约定,我们就可以尝试着,在屏幕上移动字符,做一个动画。
2. 在指定位置显示星号 #
请编程,在窗口坐标(10,5)的位置,显示一个星号(*)。
/* 请编程完成后,查看示例程序。 */
示例程序:
#include < iostream >
int main()
{
int x(10), y(5);
for(int j=0; j <= y; j++) // 移动到第 5 行
std::cout << std::endl;
for(int i=0; i <= y; i++) // 移动到第 10 列
std::cout << " " ;
std::cout << "*";
return 0;
}
3. 移动字符 #
结合上节课学到的知识,尝试实现:星号逐渐向上移动的效果。
提示:可以使用 system(“cls”) 和 Sleep();
/* 请编程完成后,查看示例程序。 */
示例程序:
#include < iostream >
#include < Windows.h >
int main()
{
// 定义点的初始位置
int x(10), y(5);
for(int k=0; k <= 5; k++)
{
// 1. 清除屏幕
system("cls");
// 2. 变换下一次点的位置
x = 10;
y = y-1;
// 3. 绘制星号
for(int j=0; j <= y; j++)
std::cout << std::endl;
for(int i=0; i <= x; i++)
std::cout << " " ;
std::cout << "*";
// 4. 延时
Sleep(200);
}
return 0;
}
习题 #
