跳动的星星

第一步,设置好界面大小;
第二步,设置星星初始位置,和移动速度;
第三步,利用循环实现移动,设置好什么时候需要改变速度方向;
颜色的话,变不变都无所谓,关键是要知道怎么实现五角星移动和速度的改变;
用的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;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章