Codigo de Grafico de Tortuga en lenguage de Programacion C.
Enviado por Luis Angel Cariño Bravo • 14 de Octubre de 2018 • Apuntes • 8.662 Palabras (35 Páginas) • 477 Visitas
CODIGO DE TIB.C
#include
#include
#include
void mostrarM(void);//se declarael prototipo de la funcion que realizaremos para mostrar el menu de comandos de la tortuga//
void printmovs(int *,int *,int);
void *gestmem(int); //el prototipo de la funcion para poder gestionar o reservar memoria para nuestra estructura//
void tortuga(int *,int **,int,int *); //el prototipo de nuestra funcion de tortuga//
void vD(int *); //el prototipo para saber la derccion que tendra nuestra tortuga//
void vI(int *); //el prototipo para saber la derccion que tendra nuestra tortuga//
void avanza(int **,int,int,int *,int *,int);//el prototipo para realizar los comandos en la tortuga//
void imprime(int **); //prototipo de la funcion para imprimir la matriz de la tortuga//
void playTortuga(void); //prototipo de la funcion para leer comandos ingresados de la tortuga//
int main(void){//funcion principal del prgorama//
int n;//se declra un entero para la opcion de continuar o terminar el programa//
do{//se utiliza un ciclo para realizar el programa hasta que el usuario ingrese el centinela//
playTortuga(); //se manda a llamar la funcion para validar las opciones de comando que ingrese el usuario//
system("cls"); //es una funcion para limpia la pantalla //
printf("¿DESEA INTENTAR DE NUEVO?\n");//se pregunta si desea realizarlo nuevamente//
printf("0.-NO.\n1.-SI.\n");//son los valores para salir o para intentar nuevamente//
scanf("%d",&n);//se lee el dato para saber si continua o desea salir del programa//
} while(n!=0);//se coprueva la vandera para continuar o salir del programa//
return 0;//final de la funcion principal//
}
//esta funcion lee y valida los comnandos ingresados para realizar en nuestra tortuga//
void playTortuga(void){
int m=0,j=0,a,cont=0,n,i;//se declaran y se inicializan las variales las cuales ocuparemos para la funcion//
int **ARRAY,*comando,*desplazamiento; //se declara el areglo de apuntadores para nuestra matriz y dso arreglos para almacenar comandos y movimientos de la tortuga//
ARRAY=(int **) gestmem(sizeof(int *)*50);//se llama a la funcion para reservar memoria para ARRAY//
for(a=0;a<50;a++){//se utiliza un ciclo de 1 a 50 para reservar memoria//
*(ARRAY+a)=(int *)gestmem(sizeof(int)*50);//se manda a llamar la funcion para gestionar memoria para nuestro arreglo de 50//
}
desplazamiento=(int *)malloc (sizeof (int)*100);//se llama a nuestra funcion para reservar memoria para nuestro desplazamiento//
comando=(int *) malloc(sizeof(int)*100);//se llama a nuestra funcion para reservar memoria para nuestros comanos//
do{ //se crea un ciclo para que continue validando comandos hasta que se ingrese el valor centinela//
mostrarM();//se llama a la funcion para poder mostrar en pantalla nuestro menu de comandos//
do{//se crea un ciclo para validar que los comandos ingresados //
printf("\n INGRESE COMANDO: \n");//se imprime en pantalla para pedirle al usuario que ingrese los comandos//
scanf("%d",&m);//se lee el comando ingresado//
if(m==10){//se evalua si el comando es igual a 10//
m=5;//si el comando es igual entonces se camvia el valor a 5 por que ambos comandos realizan la misma accion//
}
if(m==5){//se compara la opocion si es para realizar movimientos//
do{//se crea un cilo para pedirle los movimientos de la tortuga//
printf("*");
//printf("\ningrese cuanto desea que se mueva la tortuga\nun numero mayor a 0 y que sea menor a 10:::\n");//se pide al suario la cantida de movimientos que se desplazara la tortuga//
scanf("%d",&n);//se lee la variable para saber la cntidad de movimientos//
if(n>0 && n<11){//se evalua la cantidad que sea menor a n y mayor a n//
*(desplazamiento+cont)=n;//se llama a la funion para realizar los movimientos de la tortuga//
cont++;//se aumenta en uno a nuestro contador de movimientos//
}
}while(n<0 || n>10);//se evalua si elvalor n es mayor a 0 o si en menor a 10//
}
if(m<0 || m<7){//se evalua si el comando es menor a 0 o si es menor a 7//
comando[j]=m;//se agrega el comando a nuestro vector de comandos en la posocion correspondiente//
j++;//se aunmenta el contador en uno//
}
} while(m<1 || m>10 || m==7 || m==8);//se comprueba que el comando este dentro del rango impreso en pantalla si no se repite el ciclo hasta que se ingrese un comando valido
...