Un algo qui ne marche pas!
Posté le 19/05/2015 23:12
Salut, ça faisait longtemps que j'avais pas posé de question ici, mais là je bloque:
Cet algo est censé me remplir 3 listes avec des données mais les listes restent désespérément vides ! (zéro partout)
int output1, output2, output3;
[purple]int[/purple] const X0=[maroon]1580160[/maroon];
[purple]int[/purple] const Y0=[maroon]2144640[/maroon];
[purple]int[/purple] const Z0=[maroon]2745088[/maroon];
[purple]int[/purple] X=[maroon]1580160[/maroon];
[purple]int[/purple] Y=[maroon]2144640[/maroon];
[purple]int[/purple] Z=[maroon]2745088[/maroon];
[purple]int[/purple] planetStorageX1[125];
[purple]int[/purple] planetStorageY1[125];
[purple]int[/purple] planetStorageZ1[125];
[purple]char[/purple] i = [maroon]0[/maroon];
void generateOutputs(){
[purple]int[/purple] local, local1;
local = X0-(X/128);
[b][blue]while[/blue][/b] (output1>1000){
local1 = local%10;
local = (local-local1)/10;
}
output1 = local;
local = Y0-(Y/128);
[b][blue]while[/blue][/b] (output1>1000){
local1 = local%10;
local = (local-local1)/10;
}
output2 = local;
local = Z0-(Z/128);
[b][blue]while[/blue][/b] (output1>1000){
local1 = local%10;
local = (local-local1)/10;
}
output3 = local;
local = output1;
output1 = output3*output2;
local1 = output2;
output2= local*output3;
output3= local*local1;
[b][blue]do[/blue][/b]{
local1 = output1%10;
output1 = (output1-local1)/10;
} [b][blue]while[/blue][/b] (output1>1000);
[b][blue]do[/blue][/b]{
local1 = output2%10;
output2 = (output2-local1)/10;
} [b][blue]while[/blue][/b] (output1>1000);
[b][blue]do[/blue][/b]
{
local1 = output3%10;
output3 = (output3-local1)/10;
} [b][blue]while[/blue][/b] (output1>1000);
}
void useOutputs(){
[purple]int[/purple] planetDensity = [maroon]16[/maroon] + (output1 / 10);
[purple]int[/purple] planetX, planetY, planetZ;
[b][blue]for[/blue][/b] (i = [maroon]26[/maroon]; i == planetDensity+26; ++i){
planetX = (i/2) + (output1/10) -33;
planetY = (i/2) + (output2/10) -33;
planetZ = (i/2) + (output3/10) -33;
planetStorageX1[i-26] = planetX;
planetStorageY1[i-26] = planetY;
planetStorageZ1[i-26] = planetZ;
}
}
Rien de mieux que le code lui-même pour me faire comprendre...
Et au passage depuis un moment déjà quand je compile et que je lance sur le SDK, je fais exe sur le debug et là l’émulation s’arrête
Citer : Posté le 20/05/2015 06:16 | #
local1 = local%10;
local = (local-local1)/10;
}
Bon, il faut bien voir deux choses. Un int est tronqué après division donc partout où tu l'as fait, tu peux remplacer les deux lignes du milieu par
Maintenant, regarde la condition de cette boucle. Et regarde si le code dans la boucle est susceptible de briser la condition. Conclusion ?
Citer : Posté le 20/05/2015 13:21 | #
J'y suis presque...
Hey mais j'ai fait n'importe quoi la!
Bon voila c'est en peu mieux comme ca, parcotre les listes retent toujours vides!
[purple]int[/purple] local, local1;
local = X0-(X/128);
[b][blue]while[/blue][/b] (local>1000){
local /= [maroon]10[/maroon];
}
output1 = local;
local = Y0-(Y/128);
[b][blue]while[/blue][/b] (local>1000){
local /= [maroon]10[/maroon];
}
output2 = local;
local = Z0-(Z/128);
[b][blue]while[/blue][/b] (local>1000){
local /= [maroon]10[/maroon];
}
output3 = local;
local = output1;
output1 = output3*output2;
local1 = output2;
output2= local*output3;
output3= local*local1;
[b][blue]do[/blue][/b]{
local1 = output1%10;
output1 = (output1-local1)/10;
} [b][blue]while[/blue][/b] (output1>1000);
[b][blue]do[/blue][/b]{
local1 = output2%10;
output2 = (output2-local1)/10;
} [b][blue]while[/blue][/b] (output2>1000);
[b][blue]do[/blue][/b]
{
local1 = output3%10;
output3 = (output3-local1)/10;
} [b][blue]while[/blue][/b] (output3>1000);
useOutputs();
}
void useOutputs(){
[purple]int[/purple] planetDensity = [maroon]16[/maroon] + (output1 / 10);
[purple]int[/purple] planetX, planetY, planetZ;
[b][blue]for[/blue][/b] (i = [maroon]26[/maroon]; i == planetDensity+26; ++i){
planetX = (i/2) + (output1/10) -33;
planetY = (i/2) + (output2/10) -33;
planetZ = (i/2) + (output3/10) -33;
planetStorageX1[i-26] = planetX;
planetStorageY1[i-26] = planetY;
planetStorageZ1[i-26] = planetZ;
}
}
Citer : Posté le 20/05/2015 17:32 | #
C'est quoi cette condition ? Tant que i est égal à planetDensity+26 ?
Tu penses que ça va se produire souvent vu que i est initialisé à 26 et que planetDensity ne va pas être plus souvent nul que output1 égal à -160 ?
Citer : Posté le 20/05/2015 21:59 | #
comment j'ai fait pour rater ca ? *mind blown*
Merci Lephe , je vais voir ou je me suis embrouillé et corriger ce bazar, j'ai de grandes ambitions pour ce projet la!
Ajouté le 22/05/2015 à 18:52 :
bon, j ai réussi a faire marcher l'affichage aussi! Les résultats ne sont pas parfaits mais voila les premiers points jamais traces par mon générateur pro. rien de très impressionnant mais ce n'est qu'un début:
Citer : Posté le 23/05/2015 10:29 | #
Ce n'est pas que je veux être démoralisant, mais... ça représente quoi ? Au moins juste, pour le programme ?
Citer : Posté le 24/05/2015 15:52 | #
Attend que je finisse le tout, pour l'instant ce ne sont que des points