(童晶老师的mooc视频)弹跳小球
上下弹跳
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j;
int x=1;
int y=20;
int velocity=1;
while(1)
{
if(x>10||x<1)
velocity=-1*velocity;
x=x+velocity;
system(“cls”);
for(i=0;i<x;i++)//坐标里的-y
printf("\n");
for(j=0;j<y;j++)//坐标里的x
printf(" ");
printf(“O”);}
return 0;
}
上下左右
#include<stdio.h>
#include<stdlib.h>
#include<windows.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=20;
int top=0;
int bottom=10;
while(1)
{
x=x+velocity_x;
y=y+velocity_y;
system(“cls”);//清屏函数
//空行与输出小球
for(i=0;i<x;i++)//坐标里的-y
printf("\n");
for(j=0;j<y;j++)//坐标里的x
printf(" “);
printf(“O”);
printf(” \n");
Sleep(50);
if((xtop)||(xbottom))//小球碰到上下底面的时候 速度会发生变化
velocity_x=-velocity_x;
if((yleft)||(yright))//速度变化逆向运动
velocity_y=-velocity_y;
}
return 0;
}
运行
1 不用sleep函数,利用循环语句实现小球速度变慢
2 为反弹绘制边框,利用printf("\a");边界 时响一声提示音
逐行打印
#include<stdio.h>
#include<stdlib.h>
#include<windows.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=20;
int top=0;
int bottom=10;
while(1)
{
x=x+velocity_x;
y=y+velocity_y;
system(“cls”);//清屏函数
printf("********************");//在每次运行的第一行. 画一排#作为上边界
printf("\n");
/画出运行至小球前一行的边框/
for (i = 0; i < x; i++)
{
printf(""); //第一个字符为 即左边框
for (j = 0; j < right - 1; j++) // 用循环画空格
printf(" “);
printf(”\n"); //用 再画一个右边框
}
/画出运行到小球这一行时左右边框和小球/
printf(""); //左边框
for (j = 0; j < y - 1; j++) //小球之前的空格
printf(" “);
printf(“o”); //小球
for (; j < right - 2; j++) //小球右边的空格
printf(” “);
printf(”\n"); //右边框, 并且换行
/画出小球的下一行到底部边界前一行的界面/
for (i > x+1; i < bottom; i++)
{
printf("");
for (j = 0; j < right - 1; j++)
printf(" “);
printf(”\n");
}
printf("********************\n");// 画一排# 作为下边界
Sleep(100);
if((xtop)||(xbottom))//小球碰到上下底面的时候 速度会发生变化
{printf("\a");
velocity_x=-velocity_x;};
if((yleft)||(yright))//速度变化逆向运动
{velocity_y=-velocity_y;
printf("\a");};
}
return 0;
}