Preciso desenhar um gato através de apenas uma função para o corpo todo do gato, que chama vários parâmetros para as diferentes partes do corpo, sendo assim, cada parte do corpo deve ser formada por caracteres distintos.
Nessa imagem, há um esboço do gato que fiz no bloco de notas.
Esse é o código do meu programa:
/* PROGRAMA QUE DESENHA UM GATO NA TELA DESENVOLVIDO POR GIOVANNA CÓPPOLA */ #include <iostream> using namespace std; void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1, int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra); int main() { cout << "\n\n\n\n"; //orelhas desenha (14, 1, 10, 1, 0, 0, 0, 0, 1, "X"); desenha (13, 3, 8, 3, 0, 0, 0, 0, 1, "X"); desenha (12, 5, 6, 5, 0, 0, 0, 0, 1, "X"); //cabeça desenha (11, 9, 0, 9, 0, 0, 0, 0, 1, "o"); desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o"); desenha (10, 5, 2, 6, 2, 5, 0, 0, 1, "o"); desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o"); desenha (10, 9, 2, 9, 0, 0, 0, 0, 1, "o"); desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o"); desenha (10, 7, 6, 7, 0, 0, 0, 0, 1, "o"); desenha (11, 8, 2, 8, 0, 0, 0, 0, 1, "o"); desenha (12, 8, 0, 8, 0, 0, 0, 0, 1, "o"); desenha (13, 7, 0, 7, 0, 0, 0, 0, 1, "o"); //rabo //corpo desenha (16, 21, 0, 21, 0, 0, 0, 0, 8, "O"); //pernas desenha (20, 4, 4, 4, 10, 4, 4, 4, 7, "U"); //finaliza cout << "\n\n\n\n" << endl; system ("PAUSE"); return 0; } void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1, int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra) { string espaco = " "; for (int a = 1; a<=qtdlinhas; a++) { for (int a = 1; a<= qtdespacos1; a++) cout << espaco; for (int a = 1; a<= qtdletrasE1; a++) cout << letra; for (int a = 1; a<= qtdletrasmeio1; a++) cout << espaco; for (int a = 1; a<= qtdletrasD1; a++) cout << letra; for (int a = 1; a<= qtdespacos2; a++) cout << espaco; for (int a = 1; a<= qtdletrasE2; a++) cout << letra; for (int a = 1; a<= qtdletrasmeio2; a++) cout << espaco; for (int a = 1; a<= qtdletrasD2; a++) cout << letra; cout << "\n"; } }
O programa está gerando a seguinte imagem:
Como podem ver no esboço, o rabo do gato pega algumas linhas da cabeça. Estou tendo dificuldades em desenhá-lo, já que preciso inserir novos parâmetros para o programa desenhar o rabo com a letra "V". Como posso fazer isso nas mesmas linhas da cabeça?
Obrigada desde já!
EDITANDO:
Consegui, consegui!
Resolvi o problema com inserções de variáveis. Aproveitei e dei uma inclinada no rabo do bichano.
/* PROGRAMA QUE DESENHA UM GATO NA TELA DESENVOLVIDO POR GIOVANNA CÓPPOLA */ #include <iostream> using namespace std; void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1, int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra, int qtdespacos1a, int qtdletrasE1a, int qtdletrasmeio1a, int qtdletrasD1a, int qtdespacos2a, int qtdletrasE2a, int qtdletrasmeio2a, int qtdletrasD2a, int qtdlinhasa, string letraa); int main() { cout << "\n\n\n\n"; //orelhas desenha (14, 1, 10, 1, 0, 0, 0, 0, 1, "X", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); desenha (13, 3, 8, 3, 0, 0, 0, 0, 1, "X", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); desenha (12, 5, 6, 5, 0, 0, 0, 0, 1, "X", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); //cabeça e rabo desenha (11, 9, 0, 9, 0, 0, 0, 0, 1, "o", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); desenha (10, 5, 2, 6, 2, 5, 0, 0, 1, "o", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); desenha (10, 9, 2, 9, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); desenha (10, 7, 6, 7, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); desenha (11, 8, 2, 8, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); desenha (12, 8, 0, 8, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); desenha (13, 7, 0, 7, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V"); //corpo desenha (16, 21, 0, 21, 0, 0, 0, 0, 8, "O", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); //pernas desenha (20, 4, 4, 4, 10, 4, 4, 4, 7, "U", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); //finaliza cout << "\n\n\n\n" << endl; system ("PAUSE"); return 0; } void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1, int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra, int qtdespacos1a, int qtdletrasE1a, int qtdletrasmeio1a, int qtdletrasD1a, int qtdespacos2a, int qtdletrasE2a, int qtdletrasmeio2a, int qtdletrasD2a, int qtdlinhasa, string letraa) { string espaco = " "; for (int a = 1; a<=qtdlinhas; a++) { for (int a = 1; a<= qtdespacos1; a++) cout << espaco; for (int a = 1; a<= qtdletrasE1; a++) cout << letra; for (int a = 1; a<= qtdletrasmeio1; a++) cout << espaco; for (int a = 1; a<= qtdletrasD1; a++) cout << letra; for (int a = 1; a<= qtdespacos2; a++) cout << espaco; for (int a = 1; a<= qtdletrasE2; a++) cout << letra; for (int a = 1; a<= qtdletrasmeio2; a++) cout << espaco; for (int a = 1; a<= qtdletrasD2; a++) cout << letra; for (int a = 1; a<= qtdespacos1a; a++) cout << espaco; for (int a = 1; a<= qtdletrasE1a; a++) cout << letraa; for (int a = 1; a<= qtdletrasmeio1a; a++) cout << espaco; for (int a = 1; a<= qtdletrasD1a; a++) cout << letraa; for (int a = 1; a<= qtdespacos2a; a++) cout << espaco; for (int a = 1; a<= qtdletrasE2a; a++) cout << letraa; for (int a = 1; a<= qtdletrasmeio2a; a++) cout << espaco; for (int a = 1; a<= qtdletrasD2a; a++) cout << letraa; cout << "\n"; } }
Edição feita por: Giovanna Cóppola, 31/08/2011, 18:10.