跳至正文
View Categories

< 1 min read

主要内容 #

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;
}

习题 #

课后练习