跳動的星星

第一步,設置好界面大小;
第二步,設置星星初始位置,和移動速度;
第三步,利用循環實現移動,設置好什麼時候需要改變速度方向;
顏色的話,變不變都無所謂,關鍵是要知道怎麼實現五角星移動和速度的改變;
用的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;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章