Gente, foi proposto pelo meu professor, o seguinte exercicio:
BÔNUS:
(Simulação: a tartaruga e a lebre) Neste problema, você recriará a clássica corrida da tartaruga e da lebre. Você utilizará geração de números aleatórios
para desenvolver uma simulação desse memorável evento.
Nossos competidores começam a corrida no quadrado 1 de 70 quadrados. Cada quadrado representa uma possível posição ao longo do percurso da competição.
A linha de chegada está no quadrado 70. O primeiro competidor a alcançar ou passar o quadrado 70 é recompensado com um cesto de cenouras frescas e alface.
O percurso envolve subir uma montanha escorregadia, então ocasionalmente os competidores perdem terreno.
Um relógio emite um tique por segundo. A cada tique do relógio, seu aplicativo deve ajustar a posição dos animais de acordo com as regras na
Utilize variáveis para monitorar a posição dos animais (isto é, os números de posição são 1-70). Inicie cada animal na posição 1 (a 'partida').
Se um animal escorregar para a esquerda do quadrado 1, mova-o novamente para o quadrado 1.
Gere as percentagens da tabela abaixo, produzindo um inteiro aleatório i no intervalo 1 <= i <= 10. Para a tartaruga, realize uma 'caminhada rápida' quando 1 <= i <= 5, um 'escorregão' quando 6 <= i <= 7 ou uma 'caminhada lenta' quando 8 <= i <= 10. Utilize uma técnica semelhante para mover a lebre.
Comece a corrida exibindo
BANG !!!!!
A corrida começou !!!!!
Então, para cada tique do relógio (istó é, para cada repetição de um loop), exiba uma linha de 70 posições mostrando a letra T na posição da tartaruga e
a letra L na posição da lebre. Ocasionalmente os competidores aterrisarão no mesmo quadrado. Nesse caso, a tartaruga morde a lebre e seu aplicativo deve
exibir AI!!! começando nessa posição. Todas as outras posições de saída diferentes de T, L ou AI!!! (no caso de um empate) devem estar em branco.
Depois de cada linha a ser exibida, teste se o animal alcançou o quadrado 70. Se tiver alcançado, exiba o vencedor e termine a aplicação. Se a tartaruga
ganhar, exiba A TARTARUGA VENCEU!!!é!!! Se a lebre ganhar, exiba A LEBRE GANHOU. OH!
Se as duas ganharem na mesma hora, você pode querer favorecer a tartaruga (a 'coitadinha') ou pode querer exibir OCORREU UM EMPATE. Se nenhum animal
ganhar, realize o loop novamente para simular o próximo tique do relógio. Quando você estiver pronto para executar seu aplicativo, monte um grupo de fãs para
observar a corrida. Você se surpreenderá com a empolgação da sua audiência!
ANIMAL Tipo de movimento % do tempo Movimento Real
Tartaruga Caminhada rápida 50% 3 quadrados à direita
Escorregão 20% 6 quadrados à esquerda
Caminhada lenta 30% 1 quadrados à direita
Lebre Dormir 20% Nenhum movimento
Salto grande 20% 9 quadrados à direita
Escorregão grande 10% 12 quadrados à esquerda
Salto pequeno 30% 1 quadrados à direita
Escorregão pequeno 20% 2 quadrados à esquerda
Consegui fazê-lo, entretanto, meu professor quer que a cada passo que a LEBRE ou a Tartaruga de, apague o seu passo anterior, mas não estou conseguindo fazer! Alguém pode me ajudar? Obrigado!!!
Meu programa ficou:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
using namespace std;
#define CHEGADA 70
void gotoxy(int x, int y)
{
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD)
{
x-1,y-1
});
}
int main(void)
{
cout << " 333333333 " << endl;
cout << " 333 " << endl;
cout << " 333 " << endl;
cout << " 333333333 " << endl;
cout << " 333 " << endl;
cout << " 333 " << endl;
cout << " 333333333 " << endl;
Sleep(400);
system("cls");
cout << " 222222222 " << endl;
cout << " 222 " << endl;
cout << " 222 " << endl;
cout << " 222222222 " << endl;
cout << " 222 " << endl;
cout << " 222 " << endl;
cout << " 222222222 " << endl;
Sleep(400);
system("cls");
cout << " 1111 " << endl;
cout << " 11 111 " << endl;
cout << " 11 111 " << endl;
cout << " 111 " << endl;
cout << " 111 " << endl;
cout << " 111 " << endl;
cout << " 111 " << endl;
Sleep(400);
system("cls");
cout << " BBBBBBBB AAAAAAAAAAA NNN NN GGGGGGGGGGG " << endl;
cout << " B B A A NN N NN G " << endl;
cout << " B B A A NN N NN G " << endl;
cout << " B B A A NN N NN G " << endl;
cout << " BBBBBBB AAAAAAAAAAA NN N NN GGGGGGGGGGG " << endl;
cout << " B B AAAAAAAAAAA NN N NN G G " << endl;
cout << " B B A A NN N NN G G " << endl;
cout << " B B A A NN N NN G G " << endl;
cout << " BBBBBB A A NN NNNN GGGGGGGGGGG " << endl;
Sleep(1000);
system("cls");
gotoxy(28,3);
cout << " O jogo começou!!!";
gotoxy(1,6);
cout <<"-----------------------------------------------------------------------------\n";
gotoxy(1,10);
cout <<"-----------------------------------------------------------------------------\n";
char linha1[70];
char linha2[70];
int moveT, moveL;
int contT=0, contL=0;
while (contT<70 && contL<70)
{
if(contT==0)
{
gotoxy(1,8);
linha1[contT]='T'; // inicia a tartaruga
cout << (linha1[contT]);
moveT=rand()%100;
Sleep(1000);
}else{
gotoxy (contT,8);
linha1[contT]='T'; // inicia a tartaruga
cout << (linha1[contT]);
linha1[contT]=' '; // limpa posiçao apos exibir
moveT=rand()%100;
Sleep(1000);
}
if (moveT==0||moveT==1)
contT=contT-6;
else if (moveT==2||moveT==3||moveT==4)
contT=contT+1;
else
contT=contT+3;
if (contT<0)
contT=0; // termina verificação da tartaruga
if (contL==0){
gotoxy(1,8);
linha2[contL]='L'; // inicia lebre
cout << (linha2[contL]);
linha2[contL]=' '; // limpa posição
moveL= rand()%100;
Sleep(1000); }
else{
gotoxy(contL,8);
linha2[contL]='L'; // inicia lebre
cout << (linha2[contL]);
linha2[contL]=' '; // limpa posição
moveL= rand()%100;
Sleep(1000);
}
if (moveL==0) // escorregao grande
contL=contL-12;
else if (moveL==1||moveL==2) //domindo
contL=contL;
else if (moveL==3||moveL==4) //salto grande
contL=contL+9;
else if (moveL==5||moveL==6)//escorregao pequeno
contL=contL-2;
else
contL=contL+1;
if (contL<0)
contL=0; //termina lebre
} //fim laço while
gotoxy(10,20);
if (contT>=70)
cout << ("A tartaruga vence!!!");
else if (contL>=70)
cout <<("A Lebre vence!!!");
else
cout <<("Empate");
}
Consegui fazê-lo, entretanto, meu professor quer que a cada passo que a LEBRE ou a Tartaruga de, apague o seu passo anterior, mas não estou conseguindo fazer! Alguém pode me ajudar? Obrigado!!!
Pergunta
Mateus Fontanini
Gente, foi proposto pelo meu professor, o seguinte exercicio:
BÔNUS:
(Simulação: a tartaruga e a lebre) Neste problema, você recriará a clássica corrida da tartaruga e da lebre. Você utilizará geração de números aleatórios
para desenvolver uma simulação desse memorável evento.
Nossos competidores começam a corrida no quadrado 1 de 70 quadrados. Cada quadrado representa uma possível posição ao longo do percurso da competição.
A linha de chegada está no quadrado 70. O primeiro competidor a alcançar ou passar o quadrado 70 é recompensado com um cesto de cenouras frescas e alface.
O percurso envolve subir uma montanha escorregadia, então ocasionalmente os competidores perdem terreno.
Um relógio emite um tique por segundo. A cada tique do relógio, seu aplicativo deve ajustar a posição dos animais de acordo com as regras na
Utilize variáveis para monitorar a posição dos animais (isto é, os números de posição são 1-70). Inicie cada animal na posição 1 (a 'partida').
Se um animal escorregar para a esquerda do quadrado 1, mova-o novamente para o quadrado 1.
Gere as percentagens da tabela abaixo, produzindo um inteiro aleatório i no intervalo 1 <= i <= 10. Para a tartaruga, realize uma 'caminhada rápida' quando 1 <= i <= 5, um 'escorregão' quando 6 <= i <= 7 ou uma 'caminhada lenta' quando 8 <= i <= 10. Utilize uma técnica semelhante para mover a lebre.
Comece a corrida exibindo
BANG !!!!!
A corrida começou !!!!!
Então, para cada tique do relógio (istó é, para cada repetição de um loop), exiba uma linha de 70 posições mostrando a letra T na posição da tartaruga e
a letra L na posição da lebre. Ocasionalmente os competidores aterrisarão no mesmo quadrado. Nesse caso, a tartaruga morde a lebre e seu aplicativo deve
exibir AI!!! começando nessa posição. Todas as outras posições de saída diferentes de T, L ou AI!!! (no caso de um empate) devem estar em branco.
Depois de cada linha a ser exibida, teste se o animal alcançou o quadrado 70. Se tiver alcançado, exiba o vencedor e termine a aplicação. Se a tartaruga
ganhar, exiba A TARTARUGA VENCEU!!!é!!! Se a lebre ganhar, exiba A LEBRE GANHOU. OH!
Se as duas ganharem na mesma hora, você pode querer favorecer a tartaruga (a 'coitadinha') ou pode querer exibir OCORREU UM EMPATE. Se nenhum animal
ganhar, realize o loop novamente para simular o próximo tique do relógio. Quando você estiver pronto para executar seu aplicativo, monte um grupo de fãs para
observar a corrida. Você se surpreenderá com a empolgação da sua audiência!
ANIMAL Tipo de movimento % do tempo Movimento Real
Tartaruga Caminhada rápida 50% 3 quadrados à direita
Escorregão 20% 6 quadrados à esquerda
Caminhada lenta 30% 1 quadrados à direita
Lebre Dormir 20% Nenhum movimento
Salto grande 20% 9 quadrados à direita
Escorregão grande 10% 12 quadrados à esquerda
Salto pequeno 30% 1 quadrados à direita
Escorregão pequeno 20% 2 quadrados à esquerda
Consegui fazê-lo, entretanto, meu professor quer que a cada passo que a LEBRE ou a Tartaruga de, apague o seu passo anterior, mas não estou conseguindo fazer! Alguém pode me ajudar? Obrigado!!!
Meu programa ficou:
Consegui fazê-lo, entretanto, meu professor quer que a cada passo que a LEBRE ou a Tartaruga de, apague o seu passo anterior, mas não estou conseguindo fazer! Alguém pode me ajudar? Obrigado!!!
Editado por DurubAdicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites
0 respostass 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.