第一步,設置好界面大小;
第二步,設置星星初始位置,和移動速度;
第三步,利用循環實現移動,設置好什麼時候需要改變速度方向;
顏色的話,變不變都無所謂,關鍵是要知道怎麼實現五角星移動和速度的改變;
用的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;
}
}