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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mensaje en Movimiento Borland C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mensaje en Movimiento Borland C++  (Leído 11,745 veces)
Black Lotus

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Mensaje en Movimiento Borland C++
« en: 15 Marzo 2013, 22:23 pm »

Tengo que hacer un programa que me nuestre en pantalla un mensaje en movimiento que recorra toda la pantalla (arriba abajo, izquierda derecha) y que al presionar una tecla especifica(definida por el programador) se detenga... Yo solo se mover el texto en forma vertical y horizontal pero sin embargo no se como mezclar ambos movimientos...

ESTE ES PARA EL MOVIMIENTO EN VERTICAL(ESTE CODIGO USO YO)

Código
  1. #include <iostream> //usar cout
  2. #include <conio>    //usar getch ()
  3. #include <windows>  //usar la función sleep
  4. int main ()
  5. {
  6. int i;
  7. for (i==1; i<24; i++) //que inicie en la posición 1(ya sea x,y en este caso en y) y que al llegar a la posición 24 se detenga
  8. { clrscr();gotoxy(32,i);cout<<"Hola";  //borropantalla y coloco texto sin dejar rastro del texto
  9. Sleep(100);
  10. }getch();
  11. }
  12.  

Y ESTE CODIGO ES PARA EL MOVIMIENTO EN HORIZONTAL
Código
  1. #include <iostream> //usar cout
  2. #include <conio>    //usar getch ()
  3. #include <windows>  //usar la función sleep
  4. int main ()
  5. {
  6. int i;
  7. for (i==1; i<75; i++) //que inicie en la posición 1(ya sea x,y en este caso en x) y que al llegar a la posición 75 se detenga
  8. { clrscr();gotoxy(i,12);cout<<"Hola";
  9. Sleep(100);
  10. }getch();
  11. }
  12.  

Entonces me darian idea o codigo(si en caso pueden o tengan ganas) para hacer un movimiento que recorra toda la pantalla (arriba abajo, izquierda derecha)


En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Mensaje en Movimiento Borland C++
« Respuesta #1 en: 16 Marzo 2013, 00:27 am »

Creo que esto debería funcionar ( no lo he comprobado pues estoy en Ubuntu y no sé como va aquí lo de mover las cosas por la pantalla, supongo que con ncurses EDITADO: funciona solo en Windows ). Bueno te he corregido algunas cosas como las asignaciones de los for's al valor de la variable "i" ya que lo haces usando el operador "==" (comparador lógico, lo cual conlleva error) y tienes que usar este "=" (operador de asignación). Bueno te dejo el código a ver si funciona:
Código
  1. ##include <iostream> //usar cout
  2. #include <cstdio>
  3. #include <cstdlib>
  4.  
  5.  
  6. #ifdef _WIN32
  7. #include <windows.h>
  8. #define cls system("CLS");
  9. void sleep(unsigned milliseconds)
  10. {
  11.    Sleep(milliseconds);
  12. }
  13. void gotoxy( int column, int line )
  14. {
  15.    COORD coord;
  16.    coord.X = column;
  17.    coord.Y = line;
  18.    SetConsoleCursorPosition(
  19.        GetStdHandle( STD_OUTPUT_HANDLE ),
  20.        coord
  21. );
  22. }
  23.  
  24. #elif defined  __unix__
  25.  
  26. #include <unistd.h>
  27. #define cls system("clear");
  28. void sleep(unsigned milliseconds)
  29. {
  30.    usleep(milliseconds * 1000); // takes microseconds
  31. }
  32. void gotoxy(int x, int y)
  33. {
  34.    printf("\033[%d;%df", y, x);
  35.    fflush(stdout);
  36. }
  37. #endif
  38.  
  39.  
  40.  
  41. using namespace std;
  42.  
  43. struct pos
  44. {
  45.    bool arriba;
  46.    bool abajo;
  47.    bool izquierda;
  48.    bool derecha;
  49.    int x;
  50.    int y;
  51. } posicion;
  52.  
  53. void moverHorizontalDerecha     ();
  54. void moverHorizontalIzquierda   ();
  55. void moverVerticalAbajo         ();
  56. void moverVerticalArriba        ();
  57.  
  58. int main (int argc, char * argv[])
  59. {
  60.  
  61.    posicion.arriba     = true;
  62.    posicion.izquierda  = true;
  63.    posicion.derecha    = false;
  64.    posicion.abajo      = false;
  65.    posicion.x          = 0;
  66.    posicion.y          = 0;
  67.  
  68.    for(;;)
  69.    {
  70.        if((posicion.arriba == true && posicion.izquierda == true))
  71.        {
  72.            moverHorizontalDerecha();
  73.            posicion.izquierda  = false;
  74.            posicion.derecha    = true;
  75.            moverVerticalAbajo();
  76.            posicion.arriba     = false;
  77.            posicion.abajo      = true;
  78.        }
  79.        else if((posicion.abajo == true) && (posicion.derecha == true))
  80.        {
  81.            moverHorizontalIzquierda();
  82.            posicion.izquierda  = true;
  83.            posicion.derecha    = false;
  84.            moverVerticalArriba();
  85.            posicion.arriba     = true;
  86.            posicion.abajo      = false;
  87.        }
  88.    }
  89.    getchar();
  90. }
  91. void moverVerticalArriba()
  92. {
  93.    for (; posicion.y != 0; --posicion.y)
  94.    {
  95.        cls
  96.        gotoxy(posicion.x,posicion.y);
  97.        printf("Hola");
  98.        sleep(10);
  99.    }
  100. }
  101. void moverVerticalAbajo()
  102. {
  103.    for (; posicion.y != 20; ++posicion.y)
  104.    {
  105.        cls
  106.        gotoxy(posicion.x,posicion.y);
  107.        printf("Hola");
  108.        sleep(10);
  109.    }
  110. }
  111. void moverHorizontalIzquierda()
  112. {
  113.    for(; posicion.x != 0; --posicion.x)
  114.    {
  115.        cls
  116.        gotoxy(posicion.x,posicion.y);
  117.        printf("Hola");
  118.        sleep(10);
  119.    }
  120. }
  121. void moverHorizontalDerecha()
  122. {
  123.    for(; posicion.x != 75; ++posicion.x)
  124.    {
  125.        cls
  126.        gotoxy(posicion.x,posicion.y);
  127.        printf("Hola");
  128.        sleep(10);
  129.    }
  130. }


« Última modificación: 16 Marzo 2013, 01:32 am por avesudra » En línea

Regístrate en
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Array en movimiento
Java
Morriganx 1 2,669 Último mensaje 25 Febrero 2008, 23:55 pm
por Lu15_CL4
Cada vez que hago un movimiento me salta un mensaje de alerta...
Sugerencias y dudas sobre el Foro
invisible_hack 1 3,236 Último mensaje 31 Octubre 2008, 18:41 pm
por el-brujo
Sensor de Movimiento!
Programación Visual Basic
legax 1 6,981 Último mensaje 21 Febrero 2010, 23:27 pm
por BlackZeroX
dar movimiento a una imagen
Java
bengy 2 4,285 Último mensaje 7 Septiembre 2012, 03:32 am
por bengy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines