Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Me pueden ayudar... Mover asterisco por la pantalla.

Estas en el tema de Me pueden ayudar... Mover asterisco por la pantalla. en el foro de C/C++ en Foros del Web. La cuestión en este programa es que nos debe permitir mover un asterisco por la pantalla, utilizando las teclas S (Arriba), B (Abajo), D (Derecha), ...
  #1 (permalink)  
Antiguo 13/06/2009, 21:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 20
Antigüedad: 15 años, 5 meses
Puntos: 0
Me pueden ayudar... Mover asterisco por la pantalla.

La cuestión en este programa es que nos debe permitir mover un asterisco por la pantalla, utilizando las teclas S (Arriba), B (Abajo), D (Derecha), I (Izquierda), la pantalla debe tener unas medidas y estas son 80 de ancho por 24 de alto, la anchura se mediria en espacios de caracter y la altura en saltos de línea. Y cuando el cursor llegue a estos límites se debe de mostrar un mensaje que diga que se ha llegado al límite, pero no se debe de terminar el programa, este finalizará cuando se oprima la tecla E. Se debe utilizar también la librea conio.h, debido a que se está utilizando el Turbo C++. Lo siguiente es lo que llevo del programa, el problema lo tengo con los límites (80x24). Agredesco enormemente cualquier ayuda...

#include<stdio.h>
#include<conio.h>
int cc=40,cf=12;
char tecla;
main()
{
while(tecla!='E')
{
clrscr();
gotoxy(cc,cf);printf("*") ;
tecla=getch();
switch (tecla)
{
case'D':
cc++;
break;
case'I':
cc--;
break;
case'B':
cf++;
break;
case'S':
cf--;
break;
}
}
return 0;
}
  #2 (permalink)  
Antiguo 14/06/2009, 04:25
Avatar de Danielo515  
Fecha de Ingreso: octubre-2008
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Me pueden ayudar... Mover asterisco por la pantalla.

Bueno, espero que no te hayan respondido por otros medios, y espero llegar a tiempo. Tu problema, es que antes da hacer nada, tienes que verificar que el asterisco se puede mover, y en caso contrario, no hacer nada, o mostrar el mensaje. Te dejo un pequeño fragmento de código, lo he probado y funciona.


Código:
#include<windows.h>
#define limite printf("Se ha alcanzado el límite de la pantalla");
int cc=40,cf=12;
char tecla;
main()
{
while(tecla!='x')
{
clrscr();
gotoxy(cc,cf);printf("*") ;
tecla=getch();
switch (tecla)
{
case'f':
        if(cc<79)cc++;else{ limite Sleep(200);}
break;
case's':
        if(cc>2)cc--;else { limite Sleep(200);}
break;
El sleep es para que te de tiempo de ver el mensaje en pantalla, si no , se borra antes de que lo veas.

Espero haberte sido de ayuda.
  #3 (permalink)  
Antiguo 14/06/2009, 17:19
 
Fecha de Ingreso: diciembre-2008
Ubicación: Vigo, Spain
Mensajes: 141
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Me pueden ayudar... Mover asterisco por la pantalla.

Seria mas comodo declarar la superficie como una matriz.

superficie[80][24];

Seria hasta mas facil para posicionar el asterisco.
  #4 (permalink)  
Antiguo 14/06/2009, 20:40
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Me pueden ayudar... Mover asterisco por la pantalla.

No solo declaras una superficie:
Tienes que declarar 2
-Una que sea el fondo
-Una que sea el esenario

por que si no tendrias:
[0, 0, *, 0, 0]
te mueves y tendrias
[0, 0, *, *, 0]
  #5 (permalink)  
Antiguo 15/06/2009, 04:24
 
Fecha de Ingreso: diciembre-2008
Ubicación: Vigo, Spain
Mensajes: 141
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Me pueden ayudar... Mover asterisco por la pantalla.

Cita:
Iniciado por razpeitia Ver Mensaje
No solo declaras una superficie:
Tienes que declarar 2
-Una que sea el fondo
-Una que sea el esenario

por que si no tendrias:
[0, 0, *, 0, 0]
te mueves y tendrias
[0, 0, *, *, 0]
No necesariamente, ya que al moverlo igualas la posicion anterior a 0
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:48.