Me podrías explicar como usar tu programa. Porque sinceramente no tengo ni idea de que hacer con él.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include<stdio.h> //Declara las librerias, variables y definiciones
#include<windows.h>
#include<conio.h>
#include<stdlib.h>
#include<list>
#include<iostream>
using namespace std;
#define ARRIBA 72
#define IZQUIERDA 75
#define DERECHA 77
#define ABAJO 80
bool fina = false; //Esta variable pone fin al programa si es necesario
int recorrido[20]; //En este array se almacena el recorrido en forma de numeros
void gotoxy(int x, int y) //Funcion para situar el cursor en el lugar deseado
{
HANDLE hCon;
hCon = GetStdHandle (STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X =x;
dwPos.Y =y;
SetConsoleCursorPosition(hCon, dwPos);
}
void OcultarCursor()//Oculta el cursor
{
HANDLE hCon;
hCon = GetStdHandle (STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
cci.dwSize = 2;
cci.bVisible = false;
SetConsoleCursorInfo (hCon,&cci);
}
class Inicio //Es el objeto que se mueve por el camino
{
private:
int x, y;
public:
Inicio(int _x,int _y): x(_x), y(_y){}
void pintar();
void mover();
};
void Inicio::mover()//Esta es la funcion mas importante, permite hacer el camino y lo traduce a numeros
{ int i;
if(kbhit() && recorrido[20] == 0)//Detecta si se a presionado una tecla y si la ultima cifra del recorrido es cero
{
char tecla = getch();
if(tecla == ARRIBA )//Detecta que flecha se a pulsado(en este caso arriba)
{
y--;
for(i=0;i<21;i++)//En este for se recorre el arreglo y se guarda el numero correspondiente en el siguiente hueco distinto a cero
{
if(recorrido[i] == 0)
{
recorrido[i] = 72;
break;
}
}
}
if(tecla == IZQUIERDA )
{
x--;
for(i=0;i<21;i++)
{
if(recorrido[i] == 0)
{
recorrido[i] = 75;
break;
}
}
}
if(tecla == DERECHA )
{
x++;
for(i=0;i<21;i++)
{
if(recorrido[i] == 0)
{
recorrido[i] = 77;
break;
}
}
}
if(tecla == ABAJO )
{
y++;
for(i=0;i<21;i++)
{
if(recorrido[i] == 0)
{
recorrido[i] = 80;
break;
}
}
}
gotoxy(x,y); printf("*");//Imprime un asterisco para que la trayectoria sea visible
gotoxy(0,0);//Situa el cursor en la esquina superior izquierdaa
for(i=0;i<21;i++)//Imprime la secuencia en el margen
{
cout<< recorrido[i]<<"\n";
}
}
if(recorrido[20] != 0)//Comprueba si la ultima cifra del recorrido es distinta de cero, en tal caso, el programa le manda la secuencia al robot
{
fina = true;
gotoxy(0,0); printf("Se ha completado la trayectoria, puedes mandar los datos al robot");
}
}
void Inicio::pintar()//Pone el primer objeto para que sea visible
{
gotoxy(x,y); printf("%c",223);
}
int main()
{
OcultarCursor();
int recorrido[20];
int i;
for(i=0;i<21;i++)//Despues de mandar la secuencia al robot vuelve el recorrido a cero para poder volver a utilizarla
{
recorrido[i]=0;
}
Inicio In(60,60);
In.pintar();
while(!fina)//Inicia el bucle que permite la creacion del recorrido
{
In.mover();
}
return 0;
}