第一步,设置好界面大小;
第二步,设置星星初始位置,和移动速度;
第三步,利用循环实现移动,设置好什么时候需要改变速度方向;
颜色的话,变不变都无所谓,关键是要知道怎么实现五角星移动和速度的改变;
用的VS2019,部分函数可能会不一样
#include<stdio.h>
#include<windows.h>
void Change(char x); //变化五角星的颜色
int main() {
system("color 0E"); //调整控制台颜色和星星颜色
char a[8] = { '8','9','A','B','C','D','E','F' }; //变换星星颜色
int i, j;
int t = 0; //变色标记
//初始位置
int x = 0;
int y = 10;
//速度
int velocity_x = 1;
int velocity_y = 1;
//四个边界
int left_boundary = 0;
int right_boundary = 40;
int top_boundary = 0;
int bottom_boundary = 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("★\n");
Sleep(50); //控制星星移动频率
if ((y == left_boundary) || (y == right_boundary)) { //撞到边界改变速度方向,同时变色的标记变化
velocity_y *= -1;
Change(a[t++]);
}
if (x == top_boundary || x == bottom_boundary) {
velocity_x *= -1;
Change(a[t++]);
}
if (t > 7)
t = 0;
}
return 0;
}
void Change(char x) { //改变星星的颜色
switch (x) {
case '8':system("color 08");
break;
case '9':system("color 09");
break;
case 'A':system("color 0A");
break;
case 'B':system("color 0B");
break;
case 'C':system("color 0C");
break;
case 'D':system("color 0D");
break;
case 'E':system("color 0E");
break;
case 'F':system("color 0F");
break;
}
}