Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/02/2016, 16:53
veravluis
 
Fecha de Ingreso: julio-2015
Mensajes: 15
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Mostrar ganar al tocar un numero.

Lo único que cambia en este caso es que ahora la primera y última fila y la primera y última columna han de ser muros, no como ahora.



Tienes dos opciones... o haces una función genérica que te indique si un movimiento es legal (y si no lo es no mueves el muñeco) o haces una función específica para cada movimiento (yo voto por la genérica).

En cualquier caso tendrías que comprobar que las nuevas coordenadas son válidas y que el jugador no se coloca encima de un muro.

Me podrias ayudar con un ejemplo para que todos los bordes sean muros? osea como haria la condicion.

Mi code en este momento.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. #define maxfilas 10
  7. #define minfilas 3
  8. #define maxcolum 10
  9. #define mincolum 3
  10.  
  11. int main(){
  12.    
  13.     int filas,columnas,i ,j,a,num,num2,num3,num4,num5,num6;
  14.     int matriz[400][400];
  15.     srand(time(NULL));
  16.  
  17.     printf("Bienvenido.\n");
  18.    
  19.     do  {
  20.         fflush(stdin);
  21.         printf("Ingrese el numero de filas que tendra el juego\n");
  22.         scanf("%d",&filas);
  23.         a = isdigit(filas);
  24.        
  25.     }while(filas > maxfilas || filas < minfilas);
  26.    
  27.     do  {
  28.         fflush(stdin);
  29.         printf("Ingrese el numero de columnas para el juego\n");
  30.         scanf("%d",&columnas); 
  31.         a = isdigit(columnas);
  32.    
  33.     }while(columnas > maxcolum || columnas < mincolum);
  34.    
  35.    
  36.     //Random de posiciones Filas & columnas jugador 1 == \1
  37.     num = rand()%filas-1;
  38.     num2 = rand()%columnas-1;
  39.     //Random de posiciones Filas & columnas jugador 2 == \2
  40.     num3 = rand()%filas-1;
  41.     num4 = rand()%columnas-1;
  42.     //Random de posiciones Filas & columnas Jugador 3 == \3
  43.     num5 = rand()%filas-1;
  44.     num6 = rand()%columnas-1;
  45.    
  46.     //Cargamos la matriz
  47.     for(i = 0; i < filas; i++)  {
  48.         for(j = 0; j < columnas; j++)   {
  49.             matriz[i][j]=0;
  50.             matriz[num][num2]=8;
  51.             matriz[filas][columnas]=3;
  52.             matriz[num3][num4]=1;
  53.             matriz[num5][num6]=2;
  54.         }
  55.     }
  56.     imprimir(filas,columnas,matriz);
  57.     movimiento(filas,columnas,matriz);
  58.    
  59.  
  60.     return 0;
  61. }
  62.  
  63.     void imprimir(int filas,int columnas,int matriz[maxfilas][maxcolum])    {
  64.        
  65.         system("cls");
  66.         //int matriz[filas][columnas];
  67.         int num,num2,i,j;
  68.  
  69.         //Imprimiendo la matriz
  70.         for(i = 0; i < filas; i++)  {
  71.             printf("\n");
  72.             for(j = 0; j < columnas; j ++)  {
  73.                 if(matriz[i][j]==0) {
  74.                     printf("0",matriz[i][j]);
  75.                 }
  76.                 if(matriz[i][j]==8) {
  77.                     printf("\1",matriz[i][j]);
  78.                 }
  79.                 if(matriz[i][j]==3) {
  80.                     printf("3",matriz[i][j]);
  81.                 }
  82.                 if(matriz[i][j]==1) {
  83.                     printf("\2",matriz[i][j]);
  84.                 }
  85.                 if(matriz[i][j]==2) {
  86.                     printf("\3",matriz[i][j]);
  87.                 }
  88.             }
  89.         }
  90.        
  91.     }// cierre funcion imprimir.
  92.  
  93.     void movimiento(int filas,int columnas,int matriz[maxfilas][maxcolum])  {
  94.        
  95.  
  96.     int num,num2,num3,num4,num5,num6;
  97.     char tecla;
  98.    
  99.     //int matriz[filas][columnas];
  100.     //Yo numero (1)
  101.     num = rand()%filas-1;
  102.     num2 = rand()%columnas-1;
  103.     matriz[num][num2]=8;
  104.    
  105.     //Jugador 2
  106.     num3 = rand()%filas-1;
  107.     num4 = rand()%columnas-1;
  108.     matriz[num3][num4]=1;
  109.    
  110.     //Jugador 3
  111.     num5 = rand()%filas-1;
  112.     num6 = rand()%columnas-1;
  113.     matriz[num5][num6]=2;
  114.    
  115.     //Posicion de llegada
  116.     matriz[filas-1][columnas-1]=3;
  117.            
  118.     do  {
  119.    
  120.     tecla = getch();
  121.    
  122.     matriz[filas][columnas]=0;
  123.     matriz[num][num2]=0;
  124.     matriz[num3][num4]=0;
  125.     matriz[num5][num6]=0;
  126.  
  127.     switch (tecla)  {
  128.        
  129.        
  130.         case 'w':   {
  131.             if (matriz[num-1][num2]==0) {
  132.                 num--;
  133.             }
  134.             break;
  135.         }
  136.         case 's':   {
  137.             if (matriz[num+1][num2]==0 || matriz[num+1][num2]==3 || matriz[num3+1][num4]==0 || matriz[num3+1][num4]==3 || matriz[num5+1][num6==0] || matriz[num5+1][num6]==3){
  138.                 num++,num3++,num5++;
  139.             }
  140.             break;
  141.         }
  142.         case 'a':   {
  143.             if (matriz[num][num2-1]==0) {
  144.                 num2--;
  145.             }
  146.             break;
  147.         }
  148.         case 'd':   {
  149.             if (matriz[num][num2+1]==0 || matriz[num][num2+1]==3 || matriz[num3][num4+1]==0 || matriz[num3][num4+1]==3 || matriz[num5][num6+1]==0 || matriz[num5][num6+1]==3){
  150.                 num2++,num4++,num6++;
  151.             }
  152.             break;
  153.         }
  154.        
  155.     }//cierre switch
  156.    
  157.     //Mostrar ganador al llegar al numero 3
  158.    
  159.     //Para jugador 1
  160.     if(matriz[num][num2]==matriz[filas-1][columnas-1]){
  161.         system("cls");
  162.         printf("Haz Ganado felicitaciones.");
  163.         return 0;
  164.     }
  165.     //Para jugador 2
  166.     if (matriz[num3][num4]==matriz[filas-1][columnas-1]){
  167.         system("cls");
  168.         printf("Game over.");
  169.         return 0;
  170.     }
  171.     //Para jugador 3
  172.     if (matriz[num5][num6]==matriz[filas-1][columnas-1]){
  173.         system("cls");
  174.         printf("Game over.");
  175.         return 0;
  176.     }
  177.    
  178.     //system("cls");
  179.     matriz[num][num2]=8;
  180.     matriz[filas][columnas]=0;
  181.     matriz[filas][columnas]=3;
  182.     matriz[num3][num4]=1;
  183.     matriz[num5][num6]=2;
  184.  
  185.     imprimir(filas,columnas,matriz);
  186.    
  187.    
  188.     }while(tecla != 'x');
  189.    
  190.     }