这段代码是我在书上学的,但是我感觉它里面一些细节不太利于理解,所以也做了一些改动,但是算法都是一样的。
我是C语言菜鸟,我们专业对C语言也要求不高,现在都是平时感兴趣写一下,所以有不好的地方请大家包含,也感谢指出
其实这个程序对于小白来说,应该就是怎么 输出小球的位置 比较困难。 这个可以参考我之前写的一个 用 * 打印菱形 的博文
#include<stdio.h>
#include<stdlib.h>
#include<windows.h> // 调用Sleep函数要用到
int main()
{
int i , j ;
int x =0 ;
int y = 0 ; // 我们用 x , y 共同确定一个点 ,即小球位置 类似于一个二维坐标面
int vx=1 ; // 向下的速度 其实我觉得这里用速度并不合适,vx其实我觉得用在单位时间内的变化量描述更合适 但是速度的定义也就是单位时间的位移,emmmm 我在这也就提一下
int vy =1 ; // 横向的速度
int bottom = 30 ; // 最下端 我们默认 x=0 是最上 y= 0 是最左
int wide = 50 ; //最右端
while(1) // 形成一个无限循环
{
x = x+vx ; //不断刷新 x 位置
y = y+vy ; // 不断刷新y 位置
system("cls"); // 清空屏幕
for(i=0 ;i<x; i++) // 将光标 移动到 x 行
printf("\n");
for(j=0;j<y;j++) // 将光标移到到y 行 , 此处为了观察 我将 空格用 短线代替
printf("-");
printf("o"); //输出小球
printf("\n");
//控制小球的回弹
if(x==bottom || x ==0)
vx = -vx ;
if(y == wide || y ==0)
vy = -vy ;
Sleep(100);
}
return 0 ;
}