/*Realiza el movimiento de las manchas llamando funciones*/ void mueveOduplica(tTablero* miT,tMovimiento* mov) { double distancia; distancia = sqrt(pow((double)(mov->filaFinal- mov->filaInicial),2.0)+pow((double)(mov->colFinal- mov->colInicial),2.0)); if(distancia<2)/*Duplica*/ { duplica(miT, mov); } if(distancia>= 2)/*Se mueve*/ { mueve(miT,mov); } return; }
void MoleculaB::centraentorno (int num) //Centra un atomo en su entorno de tres vecinos { pto3D pto = susatomos.get(num)->vert; int numvert = nvec (num); pto3D posnueva = pto3D (); if (numvert == 3) { for (int i = 0; i < susatomos.size (); i++) { pto3D ptov = susatomos.get(i)->vert; if (ptov.dista (pto) < 1.6) posnueva = posnueva.mas (ptov.escala (0.333)); } mueve (num, posnueva); } }
//PRAMA FINAL(REAL) void menuprincipal () { inicializa(); mueve(); }