Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/06/2011, 13:39
reethok
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Programa simulador de LOGO...

Ya lo terminé :D

Aquí tienen el código para que vean cómo quedó ^^

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     int piso[50][50] = {0};
  6.     int a;
  7.     int b;
  8.     int c;
  9.     int d;
  10.     int comando = 0;
  11.     int pluma = 1;
  12.     int direccion = 1;
  13.     int pasos;
  14.  
  15.     printf("Simulador de LOGO v0.1\n");
  16.     printf("By Reethok\n\n");
  17.  
  18.     for(a = 0; a < 50; a++){
  19.         for(b = 0; b < 50; b++){
  20.             printf("%d", piso[a][b]);
  21.             }
  22.         printf("\n");
  23.         }
  24.  
  25.     a = 0; b = 0;
  26.  
  27.     while(comando != 9){
  28.         printf("Ubicacion (%d,%d)\n", a, b);
  29.         printf("Pluma: ");
  30.  
  31.         if(pluma == 1)
  32.             printf("Arriba\n");
  33.         else
  34.             printf("Abajo\n");
  35.  
  36.         printf("Direccion: ");
  37.  
  38.         switch(direccion){
  39.             case 1:
  40.                 printf("Arriba\n");
  41.                 break;
  42.             case 2:
  43.                 printf("Derecha\n");
  44.                 break;
  45.             case 3:
  46.                 printf("Abajo\n");
  47.                 break;
  48.             case 4:
  49.                 printf("Izquierda\n");
  50.                 break;
  51.             }
  52.  
  53.         printf("\nTabla de comandos:\n\n");
  54.         printf("Comando\tSignificado\n\n");
  55.         printf("1\tPluma arriba\n");
  56.         printf("2\tPluma abajo\n");
  57.         printf("3\tVuelta a la derecha\n");
  58.         printf("4\tVuelta a la Izquierda\n");
  59.         printf("5\tCaminar\n");
  60.         printf("6\tDesplegar imagen\n");
  61.         printf("9\tSalir\n\n");
  62.         printf("Comando: ");
  63.         scanf("%d", &comando);
  64.  
  65.         switch(comando){
  66.             case 1:
  67.                 pluma = 1;
  68.                 break;
  69.             case 2:
  70.                 pluma = 2;
  71.                 break;
  72.             case 3:
  73.                 direccion += 1;
  74.                 if(direccion == 5)
  75.                     direccion = 1;
  76.                 break;
  77.             case 4:
  78.                 direccion -= 1;
  79.                 if(direccion == 0)
  80.                     direccion = 4;
  81.                 break;
  82.             case 5:
  83.                 printf("Cantidad de pasos: ");
  84.                 scanf("%d", &pasos);
  85.                 if(pluma == 1){
  86.                     switch(direccion){
  87.                         case 1:
  88.                             while(a > 0 && pasos > 0){
  89.                                 a--;
  90.                                 pasos--;
  91.                                 }
  92.                             break;
  93.                         case 2:
  94.                             while(b < 49 && pasos > 0){
  95.                                 b++;
  96.                                 pasos--;
  97.                                 }
  98.                             break;
  99.                         case 3:
  100.                             while(a < 49 && pasos > 0){
  101.                                 a++;
  102.                                 pasos--;
  103.                                 }
  104.                             break;
  105.                         case 4:
  106.                             while(b > 0 && pasos > 0){
  107.                                 b--;
  108.                                 pasos--;
  109.                                 }
  110.                             break;
  111.                         }
  112.                     }
  113.                 else{ // Si Pluma es = 2 (Pluma esta abajo)
  114.                     switch(direccion){
  115.                         case 1:
  116.                             while(a > 0 && pasos > 0){
  117.                                 piso[a][b] = 1;
  118.                                 a--;
  119.                                 pasos--;
  120.                                 }
  121.                             break;
  122.                         case 2:
  123.                             while(b < 49 && pasos > 0){
  124.                                 piso[a][b] = 1;
  125.                                 b++;
  126.                                 pasos--;
  127.                                 }
  128.                             break;
  129.                         case 3:
  130.                             while(a < 49 && pasos > 0){
  131.                                 piso[a][b] = 1;
  132.                                 a++;
  133.                                 pasos--;
  134.                                 }
  135.                             break;
  136.                         case 4:
  137.                             while(b > 0 && pasos > 0){
  138.                                 piso[a][b] = 1;
  139.                                 b--;
  140.                                 pasos--;
  141.                                 }
  142.                             break;
  143.                         }
  144.                     }
  145.                 break;
  146.             case 6:
  147.                 for(c = 0; c < 50; c++){
  148.                     for(d = 0; d < 50; d++){
  149.                         printf("%d", piso[c][d]);
  150.                         }
  151.                     printf("\n");
  152.                     }
  153.                 break;
  154.  
  155.             }
  156.         }
  157.  
  158.     printf("\nHasta luego!\n");
  159.  
  160.     fflush(stdin);
  161.     getchar();
  162.     return 0;
  163. }

Que tal quedó? ^^

Saludos!