程序應該打印兩隻飛翔在兩次elypses中的鳥。當鳥在同一個地方時,程序應該改變它們的顏色。功能koloruj
應該這樣做,但它沒有工作。只打印開關的最後一種顏色。c部分打印在linux上不能正常工作
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define M_PI 3.14159265358979323846
char tab[30][80];
void czysc()
{
int i, j;
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
tab[i][j] = ' ';
}
}
}
typedef struct
{
char nazwa[10];
int wspolrzedna_x;
int wspolrzedna_y;
} obiekt;
void koloruj (int c)
{
int i,j;
switch(c)
{
case 0:
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
printf("\x1b[31m %c \n", tab[i][j]);
}
printf("\n");
}
break;
case 1:
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
printf("\x1b[32m %c \n", tab[i][j]);
}
printf("\n");
}
break;
case 2:
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
printf("\x1b[33m %c \n", tab[i][j]);
}
printf("\n");
}
break;
case 3:
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
printf("\x1b[34m %c \n", tab[i][j]);
}
printf("\n");
}
break;
case 4:
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
printf("\x1b[35m %c \n", tab[i][j]);
}
printf("\n");
}
break;
case 5:
for (i = 0; i < 30; i++)
{
for (j = 0; j < 80; j++)
{
printf("\x1b[36m %c \n", tab[i][j]);
}
printf("\n");
}
break;
}
}
void conv1(int mod,int x1 ,int y1)
{
char znak [3][3] = {"-.-", "/*\\", "\\./"};
int n = mod%4;
switch(n)
{
case 0:
tab[y1][x1] = znak[0][0];
tab[y1][x1+1] = znak[0][1];
tab[y1][x1+2] = znak[0][2];
break;
case 1:
tab[y1][x1] = znak[2][0];
tab[y1][x1+1] = znak[2][1];
tab[y1][x1+2] = znak[2][2];
break;
case 2:
tab[y1][x1] = znak[0][0];
tab[y1][x1+1] = znak[0][1];
tab[y1][x1+2] = znak[0][2];
break;
case 3:
tab[y1][x1] = znak[1][0];
tab[y1][x1+1] = znak[1][1];
tab[y1][x1+2] = znak[1][2];
break;
}
}
int main()
{
int x1, x2, y1, y2, a, b, i, j, rx = 18, ry = 8, z = 0, g = 0, c = 0;
float t1;
obiekt obiekt_1 = {"ptaszek", x1, y1};
obiekt obiekt_2 = {"samolot", x2, y2};
for (a = 0; a<5; a++)
{
t1 = 0;
for (b = 0; b<64; b++)
{
x1 = 106/2 + rx*cos(t1);
y1 = 24/2 + ry*sin(t1);
conv1(z, x1, y1);
x2 = 36/2 + rx*cos(t1+2.6);
y2 = 24/2 + ry*sin(t1+2.6);
conv1(g, x2, y2);
if (x1 = x2)
{
if (y1 = y2)
c++;
}
for (i = 0; i < 24; i++)
{
for (j = 0; j < 80; j++)
{
printf ("%c", tab[i][j]);
}
printf("\n");
}
koloruj(c);
czysc();
z++;
g++;
t1+ = 0.1;
usleep (100000);
system ("clear");
}
}
return 0;
}
什麼終端,你的Linux使用?程序硬編碼的終端是什麼? –
'math.h'限定M_PI –
@richard的C時的參數中'math.h'不指定'M_PI'。你指的是什麼?也許是一個Linux? – chux