从锦囊妙计想到的31–让您的图形上下动起来

  categories:资料  author:

前面30中, 我们做到了让程序动起来, 但是他仅仅是动了, 我们了解了动的原理, 今天我们让程序更进一步动起来, 先从上下移, 移动到最下面后, 在像是移动, 彼此往返

一。 创建一个项目, 输出一个三角形, 如下图

完整参考代码如下:

#include <stdio.h>
#include <stdlib.h>
// 演示程序中三角形上下移动

#include <windows.h>

// 定义一个输出三角形的函数, lineCount为三角形具有的行数
int shuSanJiaoXing(int lineCount)
{
for(int i = 0; i < lineCount; i++){
shuChuHang(i);
}

// 输出倒三角形的部分代码
for(int i = 1; i < lineCount; i++)
{
shuChuHang(lineCount – i – 1);
}
}

// 输出一行的星号
int shuChuHang(int xingCount)
{
for(int i = 0; i < xingCount; i++)
{
printf(“*”);
}
printf(“\n”);
}

int main()
{
printf(“Hello world!\n”);

shuSanJiaoXing(5);
return 0;
}

 

二。 让图形从上向下移动

如下图

111

参考代码如下:

#include <stdio.h>
#include <stdlib.h>
// 演示程序中三角形上下移动

#include <windows.h>

// 定义一个输出三角形的函数, lineCount为三角形具有的行数
int shuSanJiaoXing(int lineCount)
{
for(int i = 0; i < lineCount; i++){
shuChuHang(i);
}

// 输出倒三角形的部分代码
for(int i = 1; i < lineCount; i++)
{
shuChuHang(lineCount – i – 1);
}
}

// 输出一行的星号
int shuChuHang(int xingCount)
{
for(int i = 0; i < xingCount; i++)
{
printf(“*”);
}
printf(“\n”);
}

int movieLine(int line)
{
for(int i = 0; i < line; i++)
{
printf(“\n”);
}
}

int main()
{
printf(“Hello world!\n”);

for(int i = 5; i < 15; i++){
system(“cls”);
movieLine(i);
shuSanJiaoXing(5);
Sleep(1000);
}

return 0;
}

重点代码解释如下:

 

三。让图形上下移动

添加一些使图形向下移动的代码,最终效果如下:

shangxia

参考代码如下:

#include <stdio.h>
#include <stdlib.h>
// 演示程序中三角形上下移动

#include <windows.h>

// 定义一个输出三角形的函数, lineCount为三角形具有的行数
int shuSanJiaoXing(int lineCount)
{
 for(int i = 0; i < lineCount; i++){
 shuChuHang(i);
 }

 // 输出倒三角形的部分代码
 for(int i = 1; i < lineCount; i++)
 {
 shuChuHang(lineCount - i - 1);
 }
}

// 输出一行的星号
int shuChuHang(int xingCount)
{
 for(int i = 0; i < xingCount; i++)
 {
 printf("*");
 }
 printf("\n");
}

int movieLine(int line)
{
 for(int i = 0; i < line; i++)
 {
 printf("\n");
 }
}

int main()
{
 printf("Hello world!\n");

 // 向下移动
 for(int i = 1; i < 15; i++){
 system("cls");
 movieLine(i);
 shuSanJiaoXing(5);
 Sleep(1000);
 }

 Sleep(1000);

 // 向上移动
 for(int i = 15; i > 0; i--){
 system("cls");
 movieLine(i);
 shuSanJiaoXing(5);
 Sleep(1000);
 }

 return 0;
}

上面代码中已经添加了注释部分,一部分包括向上移动的代码, 另外一部分是向下移动的代码

 四。想象中的事物和逻辑代码

对于程序就是一些列代码, 他能执行, 但是能动吗, 他一直在计算机里面,没出来过。 那么动的是什么?

是人看到了三角形, 看到了三角形先向下动,  然后三角形 向上动。

非常显然 , 对于人来说, 看到的主体是 三角形,   三角形的运动是主体的行为。

那么代码中, 有体现三角形的东西吗?   有体现主体的行为的东西吗?若是没有那么代码空间, 同我们的思维空间中的东西, 就有点 怪怪的!

 五。代码改造, 参照想象中的对象, 改造代码,尽量符合一致

1. 首先我们定义一个主体  就是三角形, 其实就是绘制三角形, 这个似乎已经有了

2. 专门有个功能是 三角形移动

3. 对三角形移动做出细分, 分为向上移动, 以及向下移动

4. 在细分一下, 向下移动多少后, 停止移动

5. 停止移动多少后, 开始向上移动

 

 

 

 



快乐成长 每天进步一点点      京ICP备18032580号-1