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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dibujar con putchxy
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dibujar con putchxy  (Leído 2,438 veces)
julianbesso1

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Dibujar con putchxy
« en: 23 Agosto 2014, 23:26 pm »

Hola gente. Vengo con 2 dudas que surgieron en un ejercicio.
Tenía que hacer algo parecido al insaniquarium (solo las animaciones de los pescaditos)

Ya tengo el código correspondiente al movimiento, pero a la hora de mostrarlo en pantalla, obtengo un resultado extraño.

Este es el cuerpo del pescado mirando hacia la izquierda: (por mostar un caso)


Código
  1. array_b[0][0]=32;array_b[0][1]=32;array_b[0][2]=32;array_b[0][3]=32;array_b[0][4]=32;array_b[0][5]=32;array_b[0][6]=95;array_b[0][7]=44;array_b[0][8]=13;array_b[0][9]=10;array_b[0][10]=32;array_b[0][11]=32;
  2. array_b[1][0]=32;array_b[1][1]=32;array_b[1][2]=95;array_b[1][3]=47;array_b[1][4]=123;array_b[1][5]=95;array_b[1][6]=32;array_b[1][7]=32;array_b[1][8]=13;array_b[1][9]=10;array_b[1][10]=32;array_b[1][11]=46;
  3. array_b[2][0]=96;array_b[2][1]=32;array_b[2][2]=32;array_b[2][3]=32;array_b[2][4]=32;array_b[2][5]=96;array_b[2][6]=46;array_b[2][7]=47;array_b[2][8]=39;array_b[2][9]=62;array_b[2][10]=32;array_b[2][11]=32;
  4. array_b[3][0]=32;array_b[3][1]=13;array_b[3][2]=10;array_b[3][3]=47;array_b[3][4]=32;array_b[3][5]=101;array_b[3][6]=32;array_b[3][7]=40;array_b[3][8]=40;array_b[3][9]=32;array_b[3][10]=32;array_b[3][11]=32;
  5. array_b[4][0]=61;array_b[4][1]=60;array_b[4][2]=32;array_b[4][3]=13;array_b[4][4]=10;array_b[4][5]=32;array_b[4][6]=96;array_b[4][7]=46;array_b[4][8]=44;array_b[4][9]=95;array_b[4][10]=95;array_b[4][11]=44;
  6. array_b[5][0]=46;array_b[5][1]=39;array_b[5][2]=92;array_b[5][3]=95;array_b[5][4]=62;array_b[5][5]=32;array_b[5][6]=32;array_b[5][7]=13;array_b[5][8]=10;array_b[5][9]=32;array_b[5][10]=32;array_b[5][11]=32;
  7. array_b[6][0]=32;array_b[6][1]=32;array_b[6][2]=32;array_b[6][3]=92;array_b[6][4]=41;array_b[6][5]=32;array_b[6][6]=32;array_b[6][7]=32;array_b[6][8]=32;array_b[6][9]=32;array_b[6][10]=32;array_b[6][11]=32;
  8. array_b[7][0]=32;array_b[7][1]=32;array_b[7][2]=32;array_b[7][3]=32;array_b[7][4]=32;array_b[7][5]=32;array_b[7][6]=32;array_b[7][7]=32;array_b[7][8]=32;array_b[7][9]=32;array_b[7][10]=32;array_b[7][11]=32;
  9.  

Y lo dibujo de esta manera:

Código
  1. void Pescado1::Dibujar_Pescado1(){
  2.  
  3. Pescado1::Borrar_Pescado1();
  4. Pescado1::Cuerpo_Pescado1();
  5.  
  6. for(int i=0; i<8; i++){
  7. for(int j=0; j<12; j++){
  8. putchxy(pos_x+j,pos_y+i,array_b[i][j]);
  9. }
  10. }
  11.  
  12. }
  13.  

Creo que el código está bien, pero el pescado sale desfigurado. Pareciera como que se corren algunos elementos o no se imprime la cantidad correcta de espacios.

La otra pregunta que tenía era si existía alguna manera de evitar tanto parpadeo al borrar y dibujar el pescado en la nueva posición.

Este es el método que utilizo para borrar:

Código
  1. void Pescado1::Borrar_Pescado1(){
  2.  
  3. for(int k=0;k<8;k++){
  4. for(int p=0;p<12;p++){
  5. putchxy(prev_x+p,prev_y+k,' ');
  6. }
  7. }
  8.  
  9. }

Se agradece de antemano. Saludos!


En línea

Xandrete

Desconectado Desconectado

Mensajes: 210



Ver Perfil
Re: Dibujar con putchxy
« Respuesta #1 en: 24 Agosto 2014, 01:23 am »

¿Mh?

¿Seguro que está bien hecha la matriz de caracteres que representa el pescado?

Esto es lo que me sale a mi al dibujarlo:

Código:
      _,
  
  _/{_  
 .
`    `./'>  
 
/ e ((  
=<
 `.,__,
.'\_>  
  
   \)    

No creo que haya ningún problema con el código, aunque no he usado nunca el putchxy (¿alguna de estas funciones de la famosa biblioteca conio, verdad?).

Respecto al parpadeo al borrar y volver a dibujar, no estoy seguro de qué podrías hacer al respecto. Es el inconveniente de usar la consola para hacer hacer un juego/animación. ¿Sobre que tipo de consola estás trabajando? ¿Un terminal de Linux? ¿cmd.exe de Windows? Tiene más pinta de ser una limitación de la biblioteca (en este caso conio) o del terminal que estés usando que algo de tu código.

Saludos.

[EDITADO]

Acabo de fijarme en que en la matriz de caracteres hay saltos de líneas (código 10, en ASCII) que, según creo, no deberían estar (deberían ser espacios, porque el salto de línea ya viene implícito con el cambio de fila). Échale un ojo.

Por cierto, deberías buscar alguna forma menos... engorrosa de guardar la(s) representación del pescado, porque ponerlo así, tal cual en el código, es un poco feo. Podrías guardarlo en un fichero aparte y cargarlo al principio del programa.


« Última modificación: 24 Agosto 2014, 01:32 am por Xandrete » En línea

julianbesso1

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Dibujar con putchxy
« Respuesta #2 en: 24 Agosto 2014, 01:57 am »

Muchas gracias por tu respuesta. Decidí representarlo de esa manera porque es lo que estamos utilizando en las primeras clases de un curso que estoy haciendo acerca de videojuegos. Es muy básico.

La idea es que resulte algo como esto:


Código:
      
              _,
   _/{_  
         .'    './´>  
        / e ((   =<
         '.,__,.'\_>  
              \)  


No creo que esté mal la matriz, porque probé lo mismo con cout y sale perfecto.
Respecto a los elementos '10' los reemplazé por '32' pero ocurre lo mismo. Es raro..
Estoy utilizando windows por si sirve de algo.

Gracias de nuevo!!!




Ya lo solucioné. Tenías toda la razón acerca de los saltos de línea. Pasa que para obtener los equivalentes en ASCII, pasé el dibujo completo a un conversor online. Seguramente me devolvió algunos valores que no correspondían (como los saltos), pero que cout interpretaba.

Gracias por la buena predisposición! Saludos
« Última modificación: 25 Agosto 2014, 00:03 am por Eternal Idol » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No se dibujar nada :(
Diseño Gráfico
LordKevin 3 2,570 Último mensaje 12 Abril 2006, 21:21 pm
por Azielito
Dibujar Linea
Programación Visual Basic
Xaina 9 2,938 Último mensaje 31 Octubre 2007, 03:39 am
por Xaina
Dibujar Arbol AVL
Java
JDtoar 3 11,862 Último mensaje 23 Abril 2008, 06:12 am
por JDtoar
Dibujar en java!!!!
Java
danielo- 7 10,167 Último mensaje 20 Noviembre 2009, 10:54 am
por danielo-
Dibujar forma en C#
.NET (C#, VB.NET, ASP)
TomaSs 1 2,704 Último mensaje 3 Octubre 2012, 16:00 pm
por seba123neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines