Ciao, non riesco a capire dove è l'errore, mi potete aiutare?
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#define RIGHE 14
#define COLONNE 11
///movimento macchina
void MCar1();
void MCar2();
void MCar3();
///stampa frame
void PrintAll();
///blocchi random 1
void block1_1();
void block1_2();
void block1_3();
///blocchi random 2
void block2_1();
void block2_2();
void block2_3();
///cancela al termine della strada
void deleteline();
char
moove, ///spostamento di corsia (variabile usata nel getch())
destra='d', ///per muoversi a destra
sinistra='a', ///per muoverti a sinistra
mainframe[RIGHE][COLONNE]={"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| {O} |",
"| (J) |",
"| {O} |",
"| |"};
int
corsia=2, ///posizione corsia della macchina (perte al centro)
bk1=14, ///generazione 1 carreggiata 1
bk2=14, ///generazione
gen1=0, ///delay generazione 1
passed=0, ///blocchi passati
percorso1=0, ///percorso random blocchi 1
percorso2=0, ///percorso random blocchi 2
start2=0, ///fa prtire il secondo percorso
i,
j;
int main()
{
do
{
switch(corsia)
{
case 1: /// corsia 1
{
MCar1();
break;
}
case 2: /// corsia 2
{
MCar2();
break;
}
case 3: /// corsia 3
{
MCar3();
break;
}
switch(percorso1) ///percorso 1 random blocchi
{
case 1: /// corsia 1
{
block1_1();
break;
}
case 2: /// corsia 2
{
block1_2();
break;
}
case 3: /// corsia 3
{
block1_3();
break;
}
switch(percorso2) ///percorso 2 random blocchi
{
case 1: /// corsia 1
{
block2_1();
break;
}
case 2: /// corsia 2
{
block2_2();
break;
}
case 3: /// corsia 3
{
block2_3();
break;
}
srand(time(NULL));
if(bk1==14)
{
percorso1=rand()%3+1;
bk1=0;
}
if(bk2==14)
{
percorso2=rand()%3+1;
bk2=0;
}
}
if(kbhit())
{
moove = getch(); ///tasto premuto che ti fa spostare a destra o a sinistra (destra=d, sinistra=a)
if(corsia==2) ///controllo se il veicolo si trova al centro (corsia=2)
if(moove==destra)///si muove a destra
corsia=3;
else if(moove==sinistra)///si muove a sinistra
corsia=1;
if(corsia==1) ///controllo se il veicolo si trova a sinistra (corsia=1)
if(moove==destra) ///si muove a destra
corsia=2;
else if(moove==sinistra)///si muove a sinistra
corsia=1;
if(corsia==3) ///controllo se il veicolo si trova a destra (corsia=3)
if(moove==destra) ///si muove a destra
corsia=3;
else if(moove==sinistra)///si muove a sinistra
corsia=2;
}
system("cls");
PrintAll();
Sleep(40);
}while(1); ///continua finche il veicolo non si scontra contro qualcosa
return 0;
}
void PrintAll()
{
for(i=0;i<RIGHE;i++)
{
for(j=0;j<COLONNE;j++)
printf("%c",mainframe[j]);
printf("\n");
}
}
void MCar1()
{
for(i=10;i<=12;i++)
for(j=1;j<=9;j++)
mainframe[j]=' ';
mainframe[10][1]='{';
mainframe[10][2]='O';
mainframe[10][3]='}';
mainframe[11][1]='(';
mainframe[11][2]='J';
mainframe[11][3]=')';
mainframe[12][1]='{';
mainframe[12][2]='O';
mainframe[12][3]='}';
}
void MCar2()
{
for(i=10;i<=12;i++)
for(j=1;j<=9;j++)
mainframe[j]=' ';
mainframe[10][4]='{';
mainframe[10][5]='O';
mainframe[10][6]='}';
mainframe[11][4]='(';
mainframe[11][5]='J';
mainframe[11][6]=')';
mainframe[12][4]='{';
mainframe[12][5]='O';
mainframe[12][6]='}';
}
void MCar3()
{
for(i=10;i<=12;i++)
for(j=1;j<=9;j++)
mainframe[j]=' ';
mainframe[10][7]='{';
mainframe[10][8]='O';
mainframe[10][9]='}';
mainframe[11][7]='(';
mainframe[11][8]='J';
mainframe[11][9]=')';
mainframe[12][7]='{';
mainframe[12][8]='O';
mainframe[12][9]='}';
}
void block1_1()
{
if(gen1==8)
{
mainframe[bk1][1]='*';
mainframe[bk1][2]='*';
mainframe[bk1][3]='*';
gen1=0;
bk1++;
start2++;
}
gen1++;
}
void block1_2()
{
if(gen1==8)
{
mainframe[bk1][4]='*';
mainframe[bk1][5]='*';
mainframe[bk1][6]='*';
gen1=0;
bk1++;
start2++;
}
gen1++;
}
void block1_3()
{
if(gen1==8)
{
mainframe[bk1][7]='*';
mainframe[bk1][8]='*';
mainframe[bk1][9]='*';
gen1=0;
bk1++;
start2++;
}
gen1++;
}
void block2_1()
{
if(start2==8)
{
start2=0;
mainframe[bk2][1]='*';
mainframe[bk2][2]='*';
mainframe[bk2][3]='*';
bk2++;
}
}
void block2_2()
{
if(start2==8)
{
start2=0;
mainframe[bk2][4]='*';
mainframe[bk2][5]='*';
mainframe[bk2][6]='*';
bk2++;
}
}
void block2_3()
{
if(start2==8)
{
start2=0;
mainframe[bk2][7]='*';
mainframe[bk2][8]='*';
mainframe[bk2][9]='*';
bk2++;
}
}
void deleteline()
{
if((mainframe[13][1]=='*')||(mainframe[13][4]=='*')||(mainframe[13][7]=='*'))
{
for(i=1;i<10;i++)
mainframe[13]=' ';
passed++;
}
}