Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

tablero matriz en C

Participa en el tema tablero matriz en C en el foro Programación.
Que tal... paso a comentar cual es mi problema... estoy haciendo un tp de la ...

Buscar en este tema:
 
  •  
    #1 tablero matriz en C
    Que tal...

    paso a comentar cual es mi problema...

    estoy haciendo un tp de la materia algoritmos...

    el tp en si es un juego...

    el objetivo del mismo es en un tablero de 13 x 6 tener lineas de numeros del 1 al 5 generadas aleatoriamente y en la fila 13 la proxima linea a venir...

    mi problema en si no es el algoritmo del juego... sino que no se como hacer que los numeros caigan.
    Osea que yo ingreso por ejemplo 2 coordenadas q serian (x,y) y luego ingreso otras 2. Si suman 6 tengo que borrar esos dos numeros que estan en esas coordenadas.
    pero si tienen algun numero arriba este tiene que ocupar su posicion, como si cayeran tipo tetris... no se si entienden porqeue no es facil de explicar XD
    Obviamente q para sumar el 6 y poder borrar el numero puede haber mas de 2 numeros a ingresar y por ende a borrar. Tmb hay comodines q permiten borrar todos los pares o todos los impares... x lo que se me dificulta encontrar un patron a seguir para eliminar los espacios entre los numeros...


    Si algo no quedo claro pregunten y lo contesto...

    Gracias de antemano

    un abrazo
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: tablero matriz en C

    Ponele que eliminás el número en la posición 7,4; entonces para bajar la columna 4, lo que tenés que hacer es
    t[7][4] = t[8][4]; t[8][4] = t[9][4]; t[9][4] = t[10][4]; t[10][4] = t[11][4]; t[11][4] = t[12][4]; t[12][4] = número al azar.

    ¿Entendés? La idea, por supuesto, es que lo hagas con un for o un while.
    Me gusta este mensaje
  • #3 Re: tablero matriz en C

    Muchas gracias por tu pronta respuesta pangus...

    te comento q lo q estaba intentando hacer era una funcion q me hiciera caer los numeros y me compactara la matriz...

    y creo q por ahora lo logre con esto:

    void caer(int v[][7])
    {
    int y, x, cambio;

    x = 2;
    while (x < 12)
    {
    cambio = 0;
    for (y=1;y<=6;y++)
    {
    if ((v[x-1][y] == 0) & (v[x][y] != 0))
    {
    v[x-1][y] = v[x][y];
    v[x][y] = 0;
    cambio = 1;
    }
    }
    if ((cambio == 1) & (x > 2))
    {
    x--;
    }
    else
    {
    if (cambio == 0)
    {
    x++;
    }
    }
    }
    }

    lo q hace es q si detecto un cambio le resta a x en vez de sumarle por si esa coordenada de la matriz posee mas de un espacio en blanco entre el num superior

    no se si se entendio la explicacion pero el codigo esta claro jaja

    saludos

    y gracias

    un abrazo
    -----Agregado el 27/10/2009 a las 06 : 17 : 02-----
    xq no me salio identado?? ¬¬
    Editado por pela_bersuitero - 27.10.2009 18:17 hs. | Motivo: Mensajes unidos automáticamente
    Me gusta este mensaje
  • #4 Re: tablero matriz en C

    Está bien lo que hacés, es correcto, pero es medio ineficiente... vas fila por fila hacia arriba hasta encontrar una ficha que esté colgando, la llevás fila por fila hacia abajo, volvés arriba hasta que llegás a la que tenía encima, la llevás para abajo, volvés a subir.......

    Una manera más eficiente puede ser recorrer una columna de abajo para arriba. Cuando llegás a un espacio vacío, seguir recorriendo, pero copiando v[i+n][columna] a v[i][columna] (donde n es la cantidad de espacios vacíos consecutivos).

    Saludos.

    PD: Para que el código salga indentado, usá los tags [ code ] y [ /code ].
    PDD: No uses &, que es el and binario. Usá &&, que es el and lógico.
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 3 RESPUESTAS
  • 134 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB