Buenos días compañeros !
Tengo un problema gigante , estoy haciendo un proyecto y llegué al punto en el que no sé como bajar las filas
Es algo así como un candy crush lo que no puedo hacer la función para eliminar las coincidencias que en este caso sería el resultado de cruz_abajo y que caigan las demás ; y que luego de que caigan todas se creen más aleatorios con este código
No se si me hice entender :C
necesito ayuda urgente :C
Gracias por leer
y más gracias aún si me puedes ayudar !
Tengo un problema gigante , estoy haciendo un proyecto y llegué al punto en el que no sé como bajar las filas
Es algo así como un candy crush lo que no puedo hacer la función para eliminar las coincidencias que en este caso sería el resultado de cruz_abajo y que caigan las demás ; y que luego de que caigan todas se creen más aleatorios con este código
Código [Seleccionar]
char dulces[]= "8O"; //tipos de dulces
int numdedulces=sizeof(dulces)/sizeof(dulces[0])-1;
void iniciar(){
srand(time(0));//numeros Aleatorios en funcion del tiempo
for (int i=0;i<9;i++)//para desplazarse por las columnas
{
for (int j=0;j<9;j++)//para desplazarse por las filas
{
tablero[i][j]=dulces[rand()%numdedulces];//Agrega numero aleatorio a la posicion ij de la matriz
printf("\t%c",tablero[i][j]);//imprime elemento de la matriz en pantalla
}
cout << endl << endl << endl;//para dejar espacios entre filas.
}
}
Código [Seleccionar]
#include <iostream>
#include <utility>//swap posicion
using namespace std;
int tablero [8][4] = {{0,4,5,9},{0,4,5,9},{0,4,5,9},{0,0,2,1},{0,0,5,1}, {1,1,2,3},{1,2,0,2},{1,3,2,3}};
void imprimir () {
for (int i= 0;i<8; i++){
for (int j= 0; j<4; j++){
cout<<tablero[i][j]<<"\t";
}
cout << endl;
}
}
int cruz_abajo(int x, int y){
int contador = 1;
for (int indice = 1; indice < 8; indice++){
if ((tablero[x][y] == tablero[x+indice][y]) && ((x+indice) <=8) ){
contador++;
}
else{
indice = 8;
}
}
return contador;
}
void barrido_y_borrado(int i, int j){ ///// elimina !
if(cruz_abajo(i,j)>=3){
int coincidencia = cruz_abajo(i,j);
int bajar = 0;
for(int elemento = i; bajar < coincidencia ;elemento++){// veces
for (bajar=0; i-1-bajar >= 0 ; bajar ++){//Limite
swap (tablero[i+coincidencia-1-bajar][j],tablero[i-1-bajar][j] );
}
}
}
}
int main(int argc, char *argv[]) {
int i,j;
imprimir();
cin>>i>>j;
cout<<cruz_abajo(i,j);
barrido_y_borrado(i,j);
cout<<endl;
imprimir();
system("PAUSE");
return 0;
}
No se si me hice entender :C
necesito ayuda urgente :C
Gracias por leer
y más gracias aún si me puedes ayudar !