Quando você programa você está construindo algo, e assim como todas as coisas que você
constroi, vc tem q ter o material e saber utilizar,
Por exemplo um empreiteiro, ele precisa alterar um quarto e pra isso ele tem, pregos, martelo, fita métrica e etc.
Um programador por outro lado precisa descobrir se um número é par ou não, oque ele tem de ferramentes não é o compilador e sim os for, if, else, ++, *, % e outras milhares de ferramentas.
pra explicar melhor vou pegar algo que estou fazendo.
int xtam=80, ytam=40;
int posx=200, posy=50;
int posxp=0, posyp=0;
for(i=0; i<50; i++)
{
c[i].x = posx+(posxp*(xtam/2));
c[i].y = posy+(posyp*(ytam/2));
posxp++;
posyp++;
if(posxp==10)
{
posxp=0;
posyp=0;
posx -= (xtam/2);
posy += (ytam/2);
}
}
Bom a lógica que utilizei eh a seguint, como vc pode ver aqueles números que desenhei nos pisos é a ordem na qual fui colocando, o piso número 0 está na posição int posx=200, posy=50;
Pra quem não sabe X é a horizontal e Y vertical.
Bom então eu fui adicionando um abaixo do outro formando a primeira linha, isso foi oq pensei.
mas como vc pode ver o piso 1 ele desce um pouco no eixo Y e vai pra direita no eixo X,
se olher cuidadosamente vera que ele desce a metade do tamanho dele, e vai pra direitra metade do tamanho dele, em números, a altura dele é 40 pixels ou seja desce 20 pixels, a largura dele é 40 pixels vai pra direita 20 pixels. E no pios 2 ele faz a mesma coisa só que pegando o piso 1 como refêrencia.
ou seja...sempre que eu adicionar o piso vo mandar ele adicionar outro 20 pixels mais abaixo doq o ultimo colocado e 40 pixels a direita a mais doque o ultimo que ele colocou.
c[i].x = posx+(posxp*(xtam/2));
c[i].y = posy+(posyp*(ytam/2));
Essa parte faz isso
posy é a posição inicial, posyp é o piso em que o laço do for está, ytam/2 é o valor que ele tem que ir a direita como eu disse ytam/2 = 20, ou seja posyp*(20) se for o 0 vá 0 pixels a direita, se for 1 va 20 pixels a direita, se for 2 40...e assim vai indo
posyp++;
isso significa que estou partindo para o próximo piso =)
o resto do algoritmo serve pra ele criar a nova fileira de pisos que irei falar mais tarde em outro post.



naum da uma de espertão não pq aposto que naum foi vc q fez esse alogoritmo /mal
ResponderExcluirClaro que fui eu /spin
ResponderExcluir