elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (Ayuda) Matriz en c.
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Ayuda) Matriz en c.  (Leído 1,689 veces)
minion123456789

Desconectado Desconectado

Mensajes: 2


Ver Perfil
(Ayuda) Matriz en c.
« en: 5 Junio 2015, 15:44 pm »

Buenas, una consulta estoy programando en c y necesito realizar lo siguiente y tengo una matriz de 6x6, que el numero 1 lo ingreso en matriz[0][0]='1', y luego quiero ingresarlo en una nueva fila y columna(lo voy a cambiar una cierta cantidad de veces) y quiero que se borre el 1 anterior y se guarde en la nueva fila y columna de la misma matriz.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: (Ayuda) Matriz en c.
« Respuesta #1 en: 5 Junio 2015, 15:56 pm »

muestra codigo y lo que intentas porque realmente no lo entiendo... tambien está pendiente

Código
  1. matriz[0][0]='1';

no es lo mismo que
Código
  1. matriz[0][0]=1;


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
minion123456789

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: (Ayuda) Matriz en c.
« Respuesta #2 en: 5 Junio 2015, 16:34 pm »

Código
  1. //Cargo jugador-1
  2.    matriz[0][0]='1';
  3.    //Cargo jugador-2
  4.    matriz[5][5]='2';
  5. if(jugador%2==1)
  6.        {
  7.            system("clear");
  8.            printf("\njugador 1");
  9.            printf("\nIngrese coordenadas ej. (1-A) ");
  10.            scanf("%d - %c",&fil,&col);
  11.            fila = fil -1;// calculo la fila en base a la fila ingresada
  12.            columna = (int)col-65; // calculo la columna en base a la letra mayuscula ingresada 65=A (INT)hace que la letra se pase a ASCII
  13.            printf("\n%d %d",fila,columna); //  muestro las coordenadas que elegidas, ya transformadas en numeros
  14.            if (matriz[fila][columna]=='2' || matriz[fila][columna]=='*')
  15.            {
  16.            printf("Jugador 1 se matiene en posicion\n");
  17.            }
  18.  
  19.            else //para mover el 1 de posicion
  20.            {
  21.             for(i=0;i<fila;i++)
  22.             {
  23.                 for(j=0;j<columna;j++)
  24.                 {
  25.                     matriz[fila][columna]='1';
  26.                 }
  27.             }
  28.             printf("\n");
  29.             tablero_1();
  30.  
  31.  
  32.            }
  33.            jugador++;//para pasar al otro jugador
  34.  
  35.  
  36.        }
  37.  
  38.        else //SE UTILIZA PARA MOVER EL JUGADOR 2
  39.        {
  40.            system("clear");
  41.            printf("\njugador 2");
  42.            printf("\nIngrese coordenadas ej. (1-A) ");
  43.            scanf("%d - %c",&fil,&col);
  44.            fila = fil -1;// calculo la fila en base a la fila ingresada
  45.            columna = (int)col-65; // calculo la columna en base a la letra mayuscula ingresada 65=A (INT)hace que la letra se pase a ASCII
  46.  
  47.                printf("\n%d %d",fila,columna); //  muestro las coordenadas que elegidas
  48.        if (matriz[fila][columna]=='2' || matriz[fila][columna]=='*')
  49.        {
  50.             printf("Jugador 2 se matiene en posicion\n");
  51.        }
  52.            else//se utiliza para mover el 2 de posicion
  53.            {
  54.             for(i=0;i<fila;i++)
  55.             {
  56.                 for(j=0;j<columna;j++)
  57.                 {
  58.                     matriz[fila][columna]='2';
  59.                 }
  60.             }
  61.  
  62.  
  63.            }
  64.            jugador++;//para pasar al otro jugador
  65.  
  66.        }
  67.  
  68.        break;

Mod: códigos deben ir en etiquetas GeSHi
« Última modificación: 5 Junio 2015, 18:16 pm por engel lex » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: (Ayuda) Matriz en c.
« Respuesta #3 en: 8 Junio 2015, 18:14 pm »

tengo una matriz de 6x6, que el numero 1 lo ingreso en matriz[0][0]='1', y luego quiero ingresarlo en una nueva fila y columna(lo voy a cambiar una cierta cantidad de veces) y quiero que se borre el 1 anterior y se guarde en la nueva fila y columna de la misma matriz.
Para mover la pieza del jugador basta con sobrescribir la casilla actual con el indicador correcto (no lo indicas, bien puede ser un espacio) y escribir el carácter '1' en la nueva posición.

Lo mejor por sencillo es almacenar la posición actual y nueva del jugador en variables, con ello el fragmento termina, mas o menos, así:
Código
  1. if (matriz[fila][columna]=='2' || matriz[fila][columna]=='*'){
  2.   printf("Jugador 1 se matiene en posicion\n");
  3. } else { //para mover el 1 de posicion
  4.   /*
  5.    ** 1) Se libera la posicion actual
  6.    ** j1_fila == Jugador 1 posicion actual, fila
  7.    ** j1_col  == Jugador 1 posicion actual, columna
  8.    */
  9.   matriz[j1_fila][j1_col] = ' ';
  10.  
  11.   /* 2) Se coloca al jugador 1 en su nueva posicion */
  12.   matriz[fila][columna] = '1';
  13.  
  14.   /* 3) Se toma nota de la nueva posicion */
  15.   j1_fila = fila;
  16.   j1_col  = columna;
  17. }

Si no es posible por alguna razón (por ejemplo por los requisitos del enunciado) entonces hay que utilizar un par de bucles anidados para buscar el carácter que indique al jugador uno, sobrescribirlo con un espacio y colocar en la nueva posición un '1'.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines