Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/07/2015, 13:28
veravluis
 
Fecha de Ingreso: julio-2015
Mensajes: 15
Antigüedad: 8 años, 9 meses
Puntos: 0
Como evitar el parpadeo

Hola amigos tengo este pequeño juego comenzandolo pero me gustaria evitar un poco el parpadeo y olvide el comando en si alguien se lo sabe me podria decir , gracias de antemano .
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4.  
  5. void jugar (int matriz [20][30]);
  6. void imprimir (int matriz [20][30]);
  7.  
  8. int i,j;
  9.  
  10. int main (){
  11.    
  12.  
  13. int matriz[20][30]= {6,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,6,1,1,1,1,1,1,1,1,1,1,1,1,3,
  14.                      2,7,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
  15.                      2,0,6,1,1,1,1,3,0,6,1,1,3,0,2,0,2,0,6,1,1,1,3,0,6,1,1,3,0,2,
  16.                      2,0,5,1,1,1,1,4,0,5,1,1,4,0,5,1,4,0,5,1,1,1,4,0,5,1,1,4,0,2,
  17.                      2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
  18.                      2,0,6,1,1,3,0,6,1,3,0,1,1,1,3,0,6,1,1,1,0,6,1,3,0,6,1,3,0,2,
  19.                      2,0,5,1,1,4,0,2,0,2,0,0,0,0,2,0,2,0,0,0,0,2,0,2,0,5,1,4,0,2,
  20.                      2,0,0,0,0,0,0,2,0,5,1,1,3,0,2,0,2,0,6,1,1,4,0,2,0,0,0,0,0,2,
  21.                      2,0,6,1,1,3,0,2,0,6,1,1,4,0,5,1,4,0,5,1,1,3,0,2,0,6,1,3,0,2,
  22.                      2,0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,
  23.                      4,0,5,1,1,4,0,5,1,4,0,0,0,0,6,1,3,0,0,0,0,5,1,4,0,5,1,4,0,5,
  24.                      0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,
  25.                      3,0,6,1,0,1,1,1,1,1,0,1,3,0,2,0,2,0,6,1,1,1,1,1,1,1,1,3,0,6,
  26.                      2,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
  27.                      2,0,2,0,6,1,1,1,1,1,3,0,0,0,2,0,2,0,5,1,1,1,1,1,1,1,1,4,0,2,
  28.                      2,0,0,0,5,1,1,1,1,1,4,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
  29.                      2,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,6,1,1,1,1,1,1,1,1,3,0,2,
  30.                      2,0,5,1,1,0,1,1,1,1,1,1,4,0,5,1,4,0,5,1,1,1,1,1,1,1,1,4,0,2,
  31.                      2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
  32.                      5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4};
  33.                      
  34.         jugar (matriz);              
  35.    
  36.     return 0;
  37. }
  38.  
  39.         void jugar (int matriz[20][30]){
  40.         char tecla;
  41.         int filas,columnas;
  42.         int i,j;
  43.        
  44.     for ( i=0;i<20;i++){
  45.         for( j=0;j<30;j++){
  46.             if (matriz[i][j]==7){
  47.                 filas=i; columnas=j;
  48.             }
  49.         }
  50.     }  
  51.            
  52.        
  53.         imprimir (matriz); 
  54.        
  55.         do{
  56.    
  57.    
  58.         matriz[filas][columnas]=0;
  59.         if (_kbhit()){
  60.             tecla=getch();     
  61.         }
  62.        
  63.         switch (tecla){
  64.             case 'w':{
  65.                 if(matriz[filas-1][columnas]==0){
  66.                     filas--;
  67.                 }
  68.                 break;
  69.             }
  70.             case 's':{
  71.                 if (matriz[filas+1][columnas]==0){
  72.                     filas++;
  73.                 }
  74.                 break;
  75.             }
  76.             case 'd':{
  77.                 if (matriz[filas][columnas+1]==0){
  78.                     columnas++;                
  79.                 }
  80.                 break;
  81.             }
  82.             case 'a':{
  83.                 if (matriz[filas][columnas-1]==0){
  84.                     columnas--;
  85.                 }
  86.                 break;
  87.             }
  88.            
  89.            
  90.         }
  91.         matriz [filas][columnas]=7;
  92.         imprimir (matriz);
  93.         tecla='p';
  94.     }while(tecla!='x');
  95.    
  96. }    
  97.  
  98. void imprimir(int matriz[20][30]){
  99.  
  100.     system ("cls");
  101.     for ( i=0;i<20;i++){
  102.         printf ("\n");
  103.         for ( j=0;j<30;j++){
  104.             switch (matriz[i][j]){
  105.                 case 0:{
  106.                     printf ("%c",0);
  107.                     break;
  108.                 }
  109.                 case 1:{
  110.                     printf ("%c",205);
  111.                     break;
  112.                 }
  113.                 case 2:{
  114.                     printf ("%c",186);
  115.                     break;
  116.                 }
  117.                 case 3:{
  118.                     printf("%c",187);
  119.                     break;
  120.                 }
  121.                 case 4:{
  122.                     printf("%c",188);
  123.                     break;
  124.                 }
  125.                 case 5:{
  126.                     printf("%c",200);
  127.                     break;
  128.                 }
  129.                 case 6:{
  130.                     printf("%c",201);
  131.                     break;
  132.                 }
  133.                 case 7:{
  134.                     printf("%c",189);
  135.                     break;
  136.                 }
  137.             }
  138.         }
  139.     }
  140.    
  141.     printf ("\n\n moverse: \nArriba: 'W' \nAbajo: 'S' \nIzquierda: 'A' \n Derecha: 'D' ");
  142.    
  143. }