Posso garantirti che non è il computer o il compilatore a sbagliare, verifica gli algoritmi, metti un po di ordine nel codice, rendi le funzioni rientranti.

Ti faccio anche notare che la funzione seguente è sbagliata, prendi come paramtro due cordinate che non utilizzi mai e lavori invece su variabili globali confrontando sempre e soltanto l'elemento in posizione 0 con l'elemento in posizione 1.

Verifica quello che hai scritto. ciao.


codice:
int Compenetrazione (struct coordinate posizione, struct coordinate dimensioni)
{
int i = 0,j = 1;


if ((pacchi[j].posizione.x < (pacchi[i].posizione.x + pacchi[i].dimensioni.x)) && (pacchi[j].posizione.y < (pacchi[i].posizione.y + pacchi[i].dimensioni.y)))
{
return 1;
}

if ((pacchi[j].posizione.x < (pacchi[i].posizione.x + pacchi[i].dimensioni.x)) && (pacchi[j].posizione.z < (pacchi[i].posizione.z + pacchi[i].dimensioni.z)))
{
return 1;
}

if ((pacchi[j].posizione.z < (pacchi[i].posizione.z + pacchi[i].dimensioni.z)) && (pacchi[j].posizione.y < (pacchi[i].posizione.y + pacchi[i].dimensioni.y)))
{
return 1;
}
return 0;
}
Ciao