Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Em Programa :p!


Chaves

Pergunta

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!!

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...