1.首先利用printf函数在屏幕上显示一个静止的小球‘o’。
#include <stdio.h>
int main(){
int i,j;
int x = 5;
int y = 10;
//输出小球上面的空行
for(i=0;i<x;i++)
printf("\n");
//输出小球左边的空格
for(j=0;j<y;j++)
printf(" ");
//输出小球o
printf("o");
printf("\n");
return 0;
}
2.在每次循环执行输出小球前,执行一次清屏函数system("cls"),并增加小球的x坐标,实现小球从上下落。
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
int x = 1;
int y = 10;
for(x=1;x<10;x++){
//清屏函数
system("cls");
//输出小球上面的空行
for(i=0;i<x;i++)
printf("\n");
//输出小球左边的空格
for(j=0;j<y;j++)
printf(" ");
printf("o");
printf("\n");
}
return 0;
}
3.增加记录小球速度的变量,利用while无限循环,更新小球位置,当小球到达上下边界时反转。
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
int x =5;
int y =10;
int height = 20;
int velocity = 1;
while(1){
x = x+velocity;//新位置
system("cls");
//输出小球前的空行
for(i=0;i<x;i++)
printf("\n");
for(j=0;j<y;j++);
printf(" ");
printf("o");
printf("\n");
if(x ==height)
velocity = -velocity;
if(x ==0)
velocity = -velocity;
}
return 0;
}
4.增加两个变量分别控制小球x、y方向速度,在小球碰到边界时反转,实现小球斜向弹跳。
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
int x = 0;
int y = 5;
int velocity_x = 1;
int velocity_y = 1;
int left = 0;
int right = 30;
int top = 0;
int bottom = 20;
while(1){
x = x+velocity_x;
y = y+velocity_y;
system("cls");
for(i=0;i<x;i++)
printf("\n");
for(j=0;j<y;j++)
printf(" ");
printf("o");
printf("\n");
if((x==top)||(x==bottom))
velocity_x = -velocity_x;
if((y==left)||(y==right))
velocity_y = -velocity_y;
}
return 0;
}
这样就显示了一个在屏幕上四处弹跳的小小小小球……