1 显示静止的小球
在很久很久以前,一个小球出生了,这是它的样子:O。
它出生在一片漆黑的荒原上,作为它的创造者,我用代码选择它出生的位置。
(水平向右是x轴正方向,竖直向下是y轴正方向)
#include <stdio.h>
int main()
{
int x; //横坐标
int y; //纵坐标
int i, j;
x = 20; //横坐标
y = 10; //纵坐标
for (i = 0; i < y-1; i++)
printf("\n"); //光标在y轴移动
for (j = 0; j < x-1; j++)
printf(" "); //光标在x轴移动
printf("O"); //打印小球
return 0;
}
运行结果:
(位于(20,10)位置)
2 小球下落
现在想让这个小球自己从y=0的位置自己下落,可以用这样的代码:
#include <stdio.h>
#include <stdlib.h>//这个头文件是为了使用清屏函数system("cls")
int main()
{
int x;
int y;
int i, j;
x = 20;
for (y = 1; y < 10; y++)
{
system("cls");//清屏函数,即清空整个小黑框
for (i = 0; i < y; i++)
printf("\n");
//每循环一次,y的值都会加1,使得小球每次出现的位置都比上一次要低一行
//由于清屏函数,使得其看起来就像是小球在下落
for (j = 1; j < x; j++)
printf(" ");//控制小球的横坐标
printf("O");//打印小球
}
return 0;
}
运行之后会发现是一个小球在以很快的速度下落。为了更清楚地观察,可以使用Sleep函数来放慢其速度。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>//需要引用windows.h头文件
int main()
{
int x;
int y;
int i, j;
x = 20;
for (y = 1; y < 10; y++)
{
Sleep(100);//放缓函数
system("cls");
for (i = 0; i < y; i++)
printf("\n");
for (j = 1; j < x; j++)
printf(" ");
printf("O");
}
return 0;
}
再运行会发现小球的速度明显变慢了很多。
3 上下弹跳的小球
光下落是挺没劲的,让小球上下弹跳吧!
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int x;
int y;
int i, j;
int v = 1; //定义速度变量
x = 20;
y = 1; //给个初值
while(1)
{
Sleep(50);
system("cls");
if (y < 1 || y>10)v *= -1;//判断y值来确定小球是否到边界
y += v; //到边界则让速度反转,改变其运动方向
for (i = 0; i < y; i++)
printf("\n");
for (j = 1; j < x; j++)
printf(" ");
printf("O");
}
return 0;
}
左右动类似哦。
4 四处弹跳的小球
光上下弹跳是挺没劲的,让小球四处弹跳吧!
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int x;
int y;
int i, j;
int v_x = 1;
int v_y = 1;
x = 1;
y = 1;
while(1)
{
Sleep(50);
system("cls");
if (x < 1 || x>20)v_x *= -1;
if (y < 1 || y>10)v_y *= -1;
x += v_x;
y += v_y;
for (i = 0; i < y; i++)
printf("\n");
for (j = 1; j < x; j++)
printf(" ");
printf("O");
}
return 0;
}
故事就先到这里啦!