Bom galera meu professor de programaçao da facul finalmente deu um projeto para nos fazer-mos!!
Bom basicamente eu tenho que fazer um programa para desenhar em shell não grafico!!
o codigo do programa é
#include <stdlib.h>
#include <stdio.h>/*biblioteca do system("pause") se for salvar em .cpp, essa biblioteca é dispensavel quando salva em c usando o dev-C++*/
#define max 50
//////////TODAS AS FUNCOES ESTAO DESCRITAS A BAIXO DA FUNÇÃO MAIN()!////////
void Messagem_erro(void);
//////////
void Mudar_Posicao(int *b_ptr,int *q_ptr, int tales, char *posicao_ptr);
/////////////
void Tartaruga(char *A ,char posicao);
///////////
void Virar_Tartaruga(char *posicao_ptr , char);
///////////
main(){
char jim = 'h';//variavel para não ir pro menu depois de mostrar o array!
int tales;//casas para a tartaruga andar
char posicao = '^';/*posicao da tartaruga, as posicoes possiveis são ^(olhando pra cima)
>(olahndo para direita) V(olhando para baixo <(olhando para esquerda)*/
int k;
int x; //eixo x(que vale como se fosse o y de uma funçao)
int y; //eixo y(que vale como se fosse o x de uma funçao)
int que = 0;//posiçao da tartaruga
int b = 0;//posiçao da tartaruga
char Table[max][max];
do{//loop para gerar menu, ateh o usuario digitar 0 para sair
printf("\n\n\n#################MENU####################\n");
printf("#\t");
printf("1-Caneta p/ cima\t\t");
printf("#\n");
printf("#\t");
printf("2-Caneta para baixo \t\t");
printf("#\n");
printf("#\t");
printf("3-Vire 90graus para direita\t");
printf("#\n");
printf("#\t");
printf("4-Vire 90graus para esquerda\t");
printf("#\n");
printf("#\t");
printf("5-Entre com espacos para andar\t");
printf("#\n");
printf("#\t");
printf("6-Imprima o array\t\t");
printf("#\n");
printf("#\t");
printf("0-Terminar o programa\t\t#\n");
printf("#################MENU####################\n\n");
scanf("%d", & k);
printf("\n");
switch (k){
case 1://parar de pintar
break;
case 2://pintar
break;
case 3://Virar a tartaruga para direita
if (posicao == '^')
Virar_Tartaruga(&posicao, '>');
else if (posicao == '>')
Virar_Tartaruga(&posicao,'V');
else if (posicao == 'V')
Virar_Tartaruga(&posicao,'<');
else if (posicao == '<')
Virar_Tartaruga(&posicao,'^');
break;
case 4://virar a tartaruga para esquerda
if (posicao == '^')
Virar_Tartaruga(&posicao,'<');
else if (posicao == '<')
Virar_Tartaruga(&posicao,'v');
else if (posicao == 'V')
Virar_Tartaruga(&posicao,'>');
else if (posicao == '>')
Virar_Tartaruga(&posicao,'^');
break;
case 5://andar com a tartaruga
printf("Quantos espacos voce deseja andar?\n");
scanf("%d", & tales);
Mudar_Posicao(&b,&que ,(tales-1),&posicao);
break;
case 6://Imprime array
for(x=0;x < max; x++){
for(y=0;y < max; y++){
if (y == (max - 1)){
Table[x][y] = '0';
Tartaruga(&Table[que][b], posicao);
printf("%c" , Table[x][y]);
printf("\n");
}
else {
Table[x][y] = '0';
Tartaruga(&Table[que][b], posicao);
printf("%c" , Table[x][y]);
}
}
}
while(jim != 'n'){
printf("\nDigite a letra \"n\" para continuar! \n");
jim = getchar();
}
break;
case 0://Sair do programa, porem antes imprime uma menssagem
printf("Obrigado por usufruir deste lindo gerador de imagens para shell não grafico!\n");
break;
default://Imprime menssagem se o usuario não entrar com um valor valido
printf("Voce não escolheu uma opcao valida\n");
break;
}
}while(k != 0);
system("Pause");
return 0;
}
/////////////////////////////////////////////////////////////////////
void Mudar_Posicao(int *b_ptr,int *q_ptr, int tales, char *posicao_ptr){//Funcao para andar com a tartaruga
if(*posicao_ptr == '^' && *q_ptr == 0 ){
Messagem_erro();
}
if(*posicao_ptr == '^' && *q_ptr != 0 ){
*q_ptr = tales;
}
if(*posicao_ptr == '<' && *b_ptr == 0 ){
Messagem_erro();
}
if(*posicao_ptr == '<' && *b_ptr != 0 ){
*b_ptr = tales;
}
if(*posicao_ptr == '>' && *b_ptr == 49 ){
Messagem_erro();
}
if(*posicao_ptr == '>' && *b_ptr != 49 ){
*b_ptr = tales;
}
if(*posicao_ptr == 'V' && *q_ptr == 49 ){
Messagem_erro();
}
if(*posicao_ptr == 'V' && *q_ptr != 49 ){
*q_ptr = tales;
}
}
///////////////////////////////////////////////////////////////////////////////
void Tartaruga(char *A ,char posicao){ //Funçao que altera a posiçao x,y da tartaruga
*A = posicao;
}
///////////////////////////////////////////////////////////////////////////////////
void Virar_Tartaruga(char *posicao_ptr ,char posicao){//Função para virar a tartaruga
*posicao_ptr = &posicao;
*posicao_ptr = posicao;
}
////////////////////////////////////////////////////////////////////////////////
void Messagem_erro(void){//Função que retorna uma menssagem de erro
printf("#################ERROR#############################################\n");
printf("# ");printf("não foi possivel efetuar a acao, pois não há espaco para andar. ");printf("# \n");
printf("###################################################################\n\n\n");
}
//////////////////////////////////////////////////////////////////////////////////
Esta quase tdo pronto mais eu não consigo dejeito nenhum fazer a tartaruga pintar, quando o lapis esta para baixo...estou sem ideias!!!
alguém poderia me dar uma idea de como começar a fazer isso???
E criticas no programa também ajudariam!!
Tambem estou com um problema nessa linha para não ir direto para o menu depois que mostra o array em modo grafico!
while(jim != 'n'){
printf("\nDigite a letra \"n\" para continuar! \n");
jim = getchar();
}
Ele imprime printf("\nDigite a letra \"n\" para continuar! \n"); 2 vezes!!
Pergunta
Chaves
Bom galera meu professor de programaçao da facul finalmente deu um projeto para nos fazer-mos!!
Bom basicamente eu tenho que fazer um programa para desenhar em shell não grafico!!
o codigo do programa é
Esta quase tdo pronto mais eu não consigo dejeito nenhum fazer a tartaruga pintar, quando o lapis esta para baixo...estou sem ideias!!! alguém poderia me dar uma idea de como começar a fazer isso??? E criticas no programa também ajudariam!! Tambem estou com um problema nessa linha para não ir direto para o menu depois que mostra o array em modo grafico!Ele imprime printf("\nDigite a letra \"n\" para continuar! \n"); 2 vezes!!
Obrigado desde já!!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.