Por el que tiene actualmente no puedo guiarme?
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úsystem("clear")
me pasa esto? #include <stdio.h>
#define alto 50
#define ancho 50
void escribir(int, int, int);
void imprimir();
int estLapiz = 0; //El estado del lapiz 0 para levantado 1 para escribir;
int dirlapiz = 0; // Direccion del lapiz para evitar confuciones como las manecillas del reloj
//0 para arriba, 3 para la derecha, 6 para abajo, 9 para la izquierda.
int posLapiz [2] = {0}; /* la posicion del lapiz posLapiz[0] para la coordenada X y posLapiz[1] para la coordenada y */
int plano[alto][ancho] = {0};
int main(void)
{
int op = 0;
int pasos;
while (op != 9)
{
printf("introduzca una opcion");
printf("\n1) Levantar lapiz\n2) Escribir \n3) Girar a la derecha \n4) Girar a la izquierda \n5) Escribir \n6) Imprimir \n9) SALIR\n");
scanf("%d", &op);
system("clear");
switch (op)
{
case 1 :
estLapiz = 0;
break;
case 2 :
estLapiz = 1;
break;
case 3 :
if (dirlapiz == 9)
dirlapiz = 0;
else
dirlapiz += 3;
break;
case 4 :
if (dirlapiz == 0)
dirlapiz = 9;
else
dirlapiz -= 3;
break;
case 5 :
printf("introduzca la cantidad de pasos que desea dar: ");
scanf("%d", &pasos);
escribir(estLapiz, dirlapiz, pasos);
break;
case 6 :
imprimir();
break;
case 7 :
printf("estado %d, direccion %d, pos x %d, pos y %d \n", estLapiz, dirlapiz, posLapiz[0], posLapiz[1] );
case 9 : printf("Gracias por usar el programa! \n");
break;
default : printf("Introdujo una opcion erronea por favor seleccione una correcta\n");
break;
}
}
return 0;
}
void escribir (int estLapiz, int dirlapiz, int pasos)
{
int i;
if (dirlapiz < 0)
dirlapiz *= (-1);
switch(dirlapiz)
{
case 0 :
while(pasos > 0)
{
if (posLapiz[1] > 0)
{
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
posLapiz[1]-=1;
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
}
pasos -= 1;
}
break;
case 3 :
while(pasos > 0)
{
if (posLapiz[0] < (ancho - 1))
{
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
posLapiz[0] += 1;
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
}
pasos -= 1;
}
break;
case 6 :
while(pasos > 0)
{
if (posLapiz[1] < (alto-1))
{
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
posLapiz[1]+=1;
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
}
pasos -= 1;
}
break;
case 9 :
while(pasos > 0)
{
if (posLapiz[0] > 0)
{
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
posLapiz[0] -= 1;
plano[posLapiz[0]][posLapiz[1]] = estLapiz;
}
pasos -= 1;
}
break;
}
}
void imprimir ()
{
int i, j;
for (i=0; i < ancho; i++)
{
for (j=0; j < alto; j++ )
{
if(plano[j][i] == 0)
printf(" ");
else
{
if (posLapiz[0] == j && posLapiz[1] == i )
printf("I ");
else
printf("x ");
}
}
printf("\n");
}
}