26/12/11 20:34
ht-never
Salve popolo di pierotofy. sto lavorando a un algoritmo per rilasciare una nuova versione di NeverPH. dovete ragionare in termini di utenti di Neverball. l'algoritmo serve per creare una fila di monete colorate distanziate l'una dall'altra di 40 punti. l'utente inserisce tre numeri rappresentanti le ccordinate dell'inizio della fila, e tre numeri rappresentanti le coordinate della fine. tramite questo algoritmo, attraverso vari cicli, dovremmo avere una linea perfetta di monete. purtroppo il codice non funziona sempre, perchè quando la differenza fra le X è più grande della differenza fra le Y, va in obliquo per un po' e poi nell'ultimo pezzo va dritto. anche viceversa.
considerate che dlight(int,int,int,int) crea una singola moneta.
considerate che dlight(int,int,int,int) crea una singola moneta.
void tlight(int x, int y, int z, int xx, int yy, int zz, int light) { int temp, l = light; if(x > xx) { temp = x; x = xx; xx = temp; } if(y > yy) { temp = y; y = yy; yy = temp; } if(z > zz) { temp = z; z = zz; zz = temp; } if((x == xx) && (zz == z) && (y != yy)) { while(y <= yy) { dlight(x, y, z, l); y += 40; } } if((y == yy) && (zz == z) && (x != xx)) { while(x <= xx) { dlight(x, y, z, l); x += 40; } } if((yy == y) && (xx == x) && (z != zz)) { while(z <= zz) { dlight(x, y, z, l); z += 40; } } if((zz == z) && (yy != y) && (xx != x)) { while(((y <= yy) || (z < zz) || (x <= xx))) { dlight(x, y, z, l); if(x <= xx) x += 40; if(y <= yy) y += 40; } } if((zz != z) && (yy == y) && (xx != x)) { while((y < yy) || (z <= zz) || (x <= xx)) { dlight(x, y, z, l); if(x <= xx) x += 40; if(z <= zz) z += 40; } } if((zz != z) && (yy != y) && (xx == x)) { while((y <= yy) || (z <= zz) || (x < xx)) { dlight(x, y, z, l); if(z <= zz) z += 40; if(y <= yy) y += 40; } } if((zz != z) && (yy != y) && (xx != x)) { while((y <= yy) || (z <= zz) || (x <= xx)) { dlight(x, y, z, l); if(z <= zz) z += 40; if(y <= yy) y += 40; if(x <= xx) x += 40; } } }
aaa