用C语言写一群鱼游动的代码
时间: 2024-04-29 18:27:13 浏览: 74
以下是一个简单的用 C 语言编写的鱼游动的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_FISH 10
typedef struct {
int x; // 鱼的 x 坐标
int y; // 鱼的 y 坐标
int vx; // 鱼的 x 轴速度
int vy; // 鱼的 y 轴速度
} Fish;
int main()
{
int i;
Fish fish[MAX_FISH];
srand(time(NULL));
// 初始化鱼的坐标和速度
for (i = 0; i < MAX_FISH; ++i) {
fish[i].x = rand() % 80;
fish[i].y = rand() % 25;
fish[i].vx = rand() % 3 - 1;
fish[i].vy = rand() % 3 - 1;
}
while (1) {
// 清屏
system("cls");
// 更新鱼的位置和速度
for (i = 0; i < MAX_FISH; ++i) {
fish[i].x += fish[i].vx;
fish[i].y += fish[i].vy;
if (fish[i].x < 0 || fish[i].x >= 80) {
fish[i].vx *= -1;
fish[i].x += fish[i].vx;
}
if (fish[i].y < 0 || fish[i].y >= 25) {
fish[i].vy *= -1;
fish[i].y += fish[i].vy;
}
}
// 绘制鱼的位置
for (i = 0; i < MAX_FISH; ++i) {
printf("%c[%d;%dH", 0x1B, fish[i].y, fish[i].x);
printf("<><");
}
// 等待一段时间再进行下一次更新
usleep(50000);
}
return 0;
}
```
这个程序使用了 Linux 下的 ANSI 控制台功能,可以在 Windows 下使用 Cygwin 或者 MSYS2 等模拟 Linux 终端的环境运行。程序的功能是模拟一群鱼在水中游动的效果。每个鱼具有一个随机的起始位置和速度,程序会不断更新鱼的位置和速度,并在屏幕上绘制出鱼的形状。程序会一直循环运行,直到手动强制停止程序。