Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - sebastian1114

#1
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

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.
    }
}





#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 !   :huh:
#2
Programación C/C++ / Re: Holaaaa !!!
6 Julio 2014, 23:23 PM
Muchísimas gracias en serio !

era lo que necesitaba :)

Y bueno , tendré en cuenta lo de subir el código , es que nunca había usado este foro :) muchas gracias de verdad

:)

#3
Programación C/C++ / Holaaaa !!!
6 Julio 2014, 20:06 PM
Soy más o menos nuevo en programación y estoy usando c++

Tengo el problema de que necesito intercambiar 2 elementos de una matriz.

he buscado información y no he dado con como hacerlo :C

si me pudiesen explicar con este código


#include <iostream>
#include <stdio.h>
#include <cstring>
#include <stddef.h>

using namespace std;


int tablero [2][5] = {{0,0,2,1,7}, {1,1,2,3,4}};

void imprimir(){     //imprimir matriz
       for (int i= 0;i<2; i++){  
   for (int j= 0; j<5; j++){
   cout<<tablero[j]<<"             ";
   
   }
   cout << endl << endl << endl;
   }}
   
   
int main(int argc, char *argv[]) {
 
 int i1,j1,i2,j2;
 
 
 imprimir ();

 cout<<"posicion 1= i ; j"<<endl;
 cin>>i1>>j1;
 cout<<"posicion j= i ; j"<<endl;
 cin>>i2>>j2;  
   
   

   
system ("PAUSE");
return 0;
}


El código no es importante , yo se que está a medias solo lo pongo porque es simple y puedo entender mejor ;
esto lo necesito para aplicarlo a un codigo más grande ;


Gracias adelantadas :) ;

ayy !  y si alguien sabe mucho de matrices y me puede ayudar sería muy bueno que me diera un contacto , no sé correo o whatsapp o algo , para que me pudiera ayudar a crear una funcion para que luego de borrar una fila en una matriz los elementos de arriba caigan , algo asi como un candy crush :S

por favor no criticas , es que ya no hallo como seguir y necesito ayuda

Gracias ! :)))