Cześć, potrzebuję stworzyć grę Asteroidy. Napisałem kod na Widnowsie, ale po przepisaniu na Linuxa plansza źle się generuje. Wyświetlają się obiekty, ale są nie poukładane i wszędzie jest "/n".
Przejrzałem kod z 5 razy ale nic nie znalazłem. Może Wam się uda ;)

A oto kodzik:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include "KBHIT.c"
#include "conio.h"

int main(int argc, char *argv[])
{
int sizey=23;
int sizex=40;
int x, y,yi;
char world[sizey][sizex];
char gracz = 'A';
char strzal = '^';
char asteroida = 'O';
char eksplozja = 'X';
int punkty = 0;
int wygrana = 1;
int gotowoscStrzalu = 1;
int gotowoscAsteroidy = 0;

srand(time(NULL));

/*intro*/
printf("\n \n    Gra Asteroidy \n \n \n \n ");
sleep(1);
printf("         Przebij sie przez pas asteroid aby przezyc ! \n \n \n \n");
sleep(2);
printf("   Powodzenia ! \n \n \n \n");
sleep(1);
printf("         Aby zaczac nacisnij dowolny przycisk...");

getch();

/*inicjowanie swiata*/
int ogolneAsteroidy = 0;

for (x=0; x<sizex; ++x){

    for (y=0;y<sizey; ++y){

        if ((y+1) % 2 == 0 && y<7 && x>4 && x< sizex - 5 && x % 2 == 0){
        world[y][x] = asteroida;
        ogolneAsteroidy ++;

        }

        else {
        world[y][x] = ' ';
        }
    }

}
world[sizey-1][sizex /2] = gracz;
int i =1;
char kierunek = 'l';
char keyPress;
int aktualneAsteroidy = ogolneAsteroidy;

while (aktualneAsteroidy > 0 && wygrana){
int drop = 0;
int predkoscAsteroidy = 1 + 10 * aktualneAsteroidy / ogolneAsteroidy;
gotowoscStrzalu ++;

/*wyswietanie*/
system("clear");
printf ("    Punkty:   %d", punkty);
printf("/n");
    for (y=0 ; y < sizey ; ++y){
    printf("|");
        for (x=0; x< sizex ; ++x){
            printf("%c", world[y][x]);
        }
    printf("|");
    printf("/n");
    }
/*wystrzal*/
for (x=0; x<sizex; ++x) {
    if (world[y][x]==strzal && world[y-1][x] == asteroida){
    world[y][x] = ' ';
    world[y-1][x] = eksplozja;
    aktualneAsteroidy --;
    punkty = punkty + 50;
    }

    else if (world[y][x]==eksplozja){
    world[y][x] = ' ';
    }

    else if ((i+1) % 2 == 0 && world[y][x] == asteroida && world[y+1][x] == gracz){
    world[y+1][x] = eksplozja;
    world[y][x] = ' ';
    wygrana = 0;
    }

}

/*aktualizacja pozycji asteroid */
for (y=0; y< sizey; ++y){
    if (world[y][0] == asteroida){
    kierunek = 'r';
    drop = 1;
    break;
    }
    if (world[y][sizex-1] == asteroida){
    kierunek = 'l';
    drop = 1;
    break;
    }

}
/*aktualizacja planszy*/
if (i % predkoscAsteroidy == 0){
    if(kierunek == 'l'){
        for (x=0; x< sizex-1; ++x){
            for (y=0; y<sizey; ++y){
                if (drop && (world[y-1][x+1] == asteroida)){
                    world[y][x] = world[y-1][x+1];
                    world[y-1][x+1] = ' ';
                }
                else if (!drop && (world[y][x+1] == asteroida)){
                    world[y][x] = world[y][x+1];
                    world[y][x+1] = ' ';
                }
            }
        }
    }
    else {
        for (x = sizex; x > 0; --x){
            for (y=0; y< sizey; ++y){
                if (drop && (world[y-1][x-1] == asteroida)){
                    world[y][x] = world[y-1][x-1];
                    world[y-1][x-1] = ' ';
                }
                else if (!drop && (world[y][x-1] == asteroida)){
                    world[y][x] = world[y][x-1];
                    world[y][x-1] = ' ';
                }
            }
        }
    }
    for (x = 0; x < sizex; ++x){
        if (world[sizey-1][x] == asteroida){
            wygrana = 0;
        }
    }
}

/*kontrola*/

if(kbhit()){
    keyPress = getch();
}
else {
    keyPress = ' ';
}
if (keyPress == 'a'){
    for(x = 0; x< sizex; x=x+1){
        if(world[sizey-1][x+1]==gracz){
            world[sizey-1][x] = gracz;
            world[sizey-1][x+1]= ' ';
        }
    }
}
if (keyPress == 'd'){
    for(x=sizex -1; x>0;x=x-1){
        if(world[sizey-1][x-1]==gracz){
            world[sizey-1][x] = gracz;
            world[sizey-1][x-1]= ' ';
        }
    }
}
if (keyPress == 'm' && gotowoscStrzalu > 2){
    for(x=0; x<sizex;x=x+1){
        if(world[sizey-1][x]==gracz){
            world[sizey-2][x] = strzal;
            gotowoscStrzalu=0;
        }
    }
}
i++;
usleep(50);
}
system("clear");
    printf("     Punkty :    %d", punkty);
    printf("\n");
        for (y=0;y<sizey;y++){
            printf("|");
            for (x=0;x<sizex;x++){
                printf("%c",world[y][x]);
            }
            printf("|");
            printf("\n");
        }
    sleep(1);
    system("clear");
    if(wygrana != 0){
        printf("\n\n\n\n\n\n            Gratulacje !!! \n\n\n\n\n");
        sleep(1);
        printf("\n\n             Punkty: %d", punkty);
        sleep(1);
        int bonus = ogolneAsteroidy*20 - i;
        printf("\n\n             Bonus: %d",bonus);
        sleep(1);
        printf("\n\n             Cakowity Wynik: %d", punkty+bonus);
        getch();
    }
    else{
        printf("\n\n\n\n\n\n         Przegrales :(");
        sleep(1);
        printf("\n\n\n\n\n\n         Twoj wynik: %d", punkty);
        getch();
    }
}