该代码主要应用了’\r’的知识和printf可以输出颜色字符的知识;
#include<stdio.h>
#include<windows.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
void ProBar()
{
char bar[101] = { 0 };
char ch[] = { "|/-\\" };
int i = 0;
int y = 0;
while (i <= 100)
{
y = rand() % 8 + 40;
int x = rand() % 8 + 30;
//利用格式化字符让printf输出不同的颜色
printf("[\033[1;%d;%dm%-100s\033[0m][\033[1;%d;%dm%2d\033[0m%%][%c]\r", x, 40, bar, y - 10, 40, i, ch[i % 4]);
fflush(stdout);
Sleep(100);//这里控制进度条的每一次进度条的刷新时间(注意是以毫秒为单位!)
if (i < 100)
{
bar[i] = '=';
}
i++;
if (i < 100)
bar[i] = '>';
}
printf("\n");
}
double func(float x, float y)
{
float a = (x * x + y * y - 1) * (x * x + y * y - 1) * (x * x + y * y - 1);
return a - x * x * y * y * y;
}
void Love()
{
float x = 0.0f;
float y = 0.0f;
char key = '*';
for (y = 1.5f; y >= -1.0f; y -= 0.1f)
{
key = '*';
for (x = -1.5f; x < 1.5f; x += 0.05f)
{
if (func(x, y) <= 0.0)
{
int x = rand() % 8 + 30;
printf("\033[1;%d;40m%c\033[0m", x, key);
}
else
{
printf(" ");
}
}
fflush(stdout);
Sleep(1000);//这里控制每一行爱心出现的时间间隔
printf("\n");
}
//这里可以留言,'\t'字符相当于Tab,将我们的字顶到爱心的中间位置,可以根据实际情况适当添加或减少
printf("\t\t\t Hello World!\n");
}
int main()
{
srand((unsigned int)time(NULL));
ProBar();
Love();
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
总结
如果小伙伴们还想学习更加厉害的游戏欢迎移步至我的博客:
扫雷小游戏
三子棋小游戏
里面有详细的讲解过程!!!😁😁😘😘