Witam. Mam kod od programu, który semigraficznie opisuje ruch dwóch obiektów do momentu ich zetknięcia. Ponieważ jestem w tym nowym, to proszę o pomoc. Mianowicie:

  1. Zmienne globalne muszą być zamienione na wskaźniki
  2. To jest pisane pod windowsa, a ma być odpalone pod unixem. Co trzeba zmienić i dodać przy kompilacji/uruchamianiu na unixie, aby wszystko było w porządku?
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>

//Program przedstawia animację zesztrzelenia semolotu przy pomocy rakiety

int x_samolot, y_samolot, x_rakieta, y_rakieta;
void rysuj()
{ char a[25][80]; int i,j;
for (i=0;i<22;i++)
for (j=0;j<80;j++)
a[i][j]=' ';
for (i=22;i<25;i++)
for (j=0;j<80;j++)
a[i][j]='V';

//Tablica 1 - Tlo
//wygląd chmurek:
         //  oo
         // oooo
         //  oo
//chmura 1
a[10][15]='o';
a[10][16]='o';
a[11][14]='o';
a[11][15]='o';
a[11][16]='o';
a[11][17]='o';
a[12][15]='o';
a[12][16]='o';

//chmura 2
a[10][31]='o';
a[10][32]='o';
a[11][30]='o';
a[11][31]='o';
a[11][32]='o';
a[11][33]='o';
a[12][31]='o';
a[12][32]='o';

//chmura 3
a[10][62]='o';
a[10][63]='o';
a[11][61]='o';
a[11][62]='o';
a[11][63]='o';
a[11][64]='o';
a[12][62]='o';
a[12][63]='o';

//Tablica 2 - samolot
//Wygląd samolotu:
         //   |
         // | |
         //-----
         // | |
         //   |
a[x_samolot][y_samolot]='-';
a[x_samolot][y_samolot-3]='-';
a[x_samolot][y_samolot-1]='-';
a[x_samolot][y_samolot+1]='-';
a[x_samolot][y_samolot-2]='-';
a[x_samolot-1][y_samolot-3]='|';
a[x_samolot+1][y_samolot-3]='|';
a[x_samolot-2][y_samolot]='|';
a[x_samolot-1][y_samolot]='|';
a[x_samolot+1][y_samolot]='|';
a[x_samolot+2][y_samolot]='|';


//Tablica 3 - rakieta
//Wygląd rakiety:
         //zwrócona w lewo (y_rakieta>y_samolot):
         //--<
         //zwrócona w prawo (y_rakieta<y_samolot):
         //>--
//warunek po to, by nie zdarzyło się, że rakieta leci tyłem
if (y_rakieta>y_samolot)
{
a[x_rakieta][y_rakieta]='-';
a[x_rakieta][y_rakieta+1]='-';
a[x_rakieta][y_rakieta+2]='<';
}
else
{
a[x_rakieta][y_rakieta]='>';
a[x_rakieta][y_rakieta+1]='-';
a[x_rakieta][y_rakieta+2]='-';
} 
system("cls");
for (i=0;i<25;i++)
{
for (j=0;j<80;j++)
printf ("%c", a[i][j]);
printf ("\n");}
}

void samolot(){
int dx,dy;
do{
dx=rand()%3-1;
dy=rand()%3-1;




}while ((dx==0&&dy==0)||x_samolot+dx<0||x_samolot+dx>24||y_samolot+dy<0||y_samolot+dy+2>79);
x_samolot=x_samolot+dx;
y_samolot=y_samolot+dy;

}
void rakieta(){
int i,j,x,y,wynik=1000;
for (i=x_rakieta-1;i<=x_rakieta+1;i++)
for (j=y_rakieta-1;j<=y_rakieta+1;j++)
if (i>=0&&j>=0&&i+1<25&&j+2<80&&(x_samolot-i)*(x_samolot-i)+(y_samolot-j)*(y_samolot-j)<wynik)
{x=i;
y=j;
wynik=(x_samolot-i)*(x_samolot-i)+(y_samolot-j)*(y_samolot-j);
}
x_rakieta=x;
y_rakieta=y;

}
int main()
{
srand(time(NULL));
x_samolot=rand()%25;
y_samolot=rand()%78;
x_rakieta=rand()%24;
y_rakieta=rand()%78;
while(!(x_samolot>=x_rakieta&&x_samolot<=x_rakieta+1&&y_samolot>=y_rakieta-2&&y_samolot<=y_rakieta+2)){
samolot();
rakieta();
rysuj();

Sleep(100);

}


getchar();
getchar();
return 0;
}