Jump to content
Fórum Script Brasil
  • 0

Dúvidas para termina um jogo da forca sem o uso


jhonatas
 Share

Question

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
char letra, letra_dig[26], palavra[20], bancodados[20][20]= {"quarto", "apartamento", "mochila", "colchao", "cachorro", "televisor", "guardanapo", "celular", "cadeira", "refrigerante", "impressora", "abajur", "retrato", "fotografia","condicionador", "calendario","nuvem", "travessura", "travesseiro", "tapete"};
int tam=0, sorteio, cont=0, erro=0;
int main()
{
//DESENHO ASCII DA FORCA
cout<<endl<<endl<<" JOGO DA FORCA"<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
//FUNCAO RANDOMICA PARA SORTEIO DA PALAVRA SECRETA
srand(time(NULL));
sorteio=rand() % 20;
//LAÇO PARA CONTAGEM DO TAMANHO DO VETOR PALAVRA
for (int i=0; i < 20; i++){
palavra = bancodados[sorteio];
if(palavra != NULL ) {
tam++;
}
}
cout<<"A palavra secreta possui "<<tam<<" letras"<<endl;
//LAÇO DE EXIBIÇÃO DA PALAVRA SECRETA
for (int i=0; i<tam; i++) {
cout<<" _";
}
//LAÇO DA FORCA
while (erro<8){
cout<<endl<<endl;
cout<<"Digite uma letra "<<endl<<endl;
//LAÇO ENTRADA DAS LETRAS
for(int i=0; i<=7; i++){
cin>>letra;
letra_dig=letra;
//DESENHO ASCII
switch (erro) {
case 0:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<palavra;
}else {
cout<<" _";
}
}
break;
case 1:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<palavra;
}else {
cout<<" _";
}
}
break;
case 2:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | / "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<palavra;
}else {
cout<<" _";
}
}
break;
case 3:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | /| "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<palavra;
}else {
cout<<" _";
}
}
break;
case 4:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | /|\\ "<<endl;
cout<<" | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<letra;
}else {
cout<<" _";
}
}
break;
case 5:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | /|\\ "<<endl;
cout<<" | | "<<endl;
cout<<" | "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<letra;
}else {
cout<<" _";
}
}
break;
case 6:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | /|\\ "<<endl;
cout<<" | | "<<endl;
cout<<" | / "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<letra;
}else {
cout<<" _";
}
}
break;
case 7:
system("cls");
cout<<endl<<"JOGO DA FORCA";
cout<<endl<<endl;
cout<<" ___ "<<endl;
cout<<" | | "<<endl;
cout<<" | 0 "<<endl;
cout<<" | /|\\ "<<endl;
cout<<" | | "<<endl;
cout<<" | / \\ "<<endl;
cout<<" _|____ "<<endl;
for (int i=0; i<tam; i++){
if (palavra==letra){
cout<<" "<<letra;
}else {
cout<<" _";
}
}
cout<<endl<<endl<<"Fim de jogo, JOGADOR, você errou "<<erro<<" vezes"<<endl<<endl<<"A palavra secreta era ";
for (int i=0; i<=tam; i++){
cout<<palavra;
}
cout<<endl<<endl;
break;
}
cout<<endl<<endl;
cout<<"Letras digitadas ";
cout<<" "<<letra_dig;
erro++;
}
}
return 0;
}
1. Especificação da primeira etapa A primeira etapa do projeto de programação é o desenvolvimento de uma versão eletrônica básica do Jogo Forca. Abaixo segue uma lista de requisitos e especificações que devem ser seguidas no desenvolvimento do programa. Quaisquer questões não contempladas por este documento devem ser levadas ao professor para esclarecimentos. • O programa deve ser desenvolvimento na linguagem C++, e a interface (comunicação com o usuário) deve ser realizada pelo terminal (linux) ou prompt (windows). É vetado o uso de funções, alocação dinâmica, ponteiros, o comando goto e estruturas. • O programa deve permitir o Jogo da Forca (não o jogo completo) para um jogador. O jogador é nomeado de “Jogador”. • O código de conter um vetor ou matriz com todas as palavras secretas disponíveis, no mínimo 20. • O programa deve escolher aleatoriamente uma destas palavras. • O programa deve exibir a forca (desenho via ASCII), atualizando-a após cada jogada. • O programa deve indicar os traços de cada letra abaixo da forca. • No momento da jogada, o programa deve receber uma letra. Verificar se ela pertence a palavra e modificar o traço correspondente a ela. • O programa deve verificar quando o jogador vence. Ao final da partida, o programa deve exibir uma mensagem de congratulações para o jogador vencedor e então perguntar se ele deseja jogar novamente. 2. Dicas de implementação Segue uma lista de dicas para implementação do projeto. • Limpar a tela. Você pode limpar a tela do prompt utilizando o comando system(“cls”), da biblioteca cstdlib. Uma boa estratégia é usar o comando sempre antes de redesenhar a forca e apagar dados secretos. • Pausar o programa. Você pode pausar a execução do seu programa utilizando o comando system(“pause”), da biblioteca cstdlib. Este comando vai pausar a execução até que o usuário digite alguma tecla. • Para obter números aleatórios utilize as bibliotecas cstlib e ctime, antes do sorteio execute o comando srand(time(NULL)); observe que o número sorteado não pode ser maior que a quantidade de palavras
Parte 2
1. Especificação da segunda etapa A segunda etapa do projeto de programação adicionará novas funcionalidades ao jogo da Forca, além de complementar algumas funcionalidades que foram simplificadas na primeira etapa. Abaixo segue uma lista de requisitos que devem ser desenvolvidos. Quaisquer questões não contempladas por este documento devem ser levadas ao professor para esclarecimentos. • As seguintes funcionalidades deve ser complementadas para ficarem de acordo com a descrição do jogo: ◦ Até quatro jogadores podem jogar ◦ O programa deve receber o nome de cada um no inicio da execução. ◦ Sempre exibir o nome de quem é a vez de jogar acima do desenho da forca ◦ Contar a pontuação de cada jogador, o valor de cada palavra é igual a quantidade de letras não repetidas nela. ◦ Ao errar um determinado número de palavras um jogador é desclassificado, o jogo termina quando houver apenas um jogador. • O programa deve permitir que se realize várias partidas do jogo, mesmo havendo um vencedor e todas as palavras secretas serem utilizadas, o jogo pode começar de novo, desde a recepção da quantidade de jogadores e seus nomes. Até os jogadores decidirem sair. • Ao final de cada jogo o programa deve exibir a classificação dos jogadores, esperar um comando do usuário então voltar a tela inicial de boas vindas. • No início da execução do programa deve ser exibida uma tela de boas vindas que contém o nome do jogo em arte ASCII (ver seção 2 abaixo). Esta tela deve ser apresentada por 3 segundos (ver seção 2 abaixo). • Após a tela de boas vindas, deve ser exibido um menu com as seguintes opções: ◦ Iniciar novo jogo. O programa limpa a tela e então é iniciado um novo jogo. ◦ Definir a quantidade de jogadores. O programa deve receber um número de 1 a 4 e definir os nomes dos jogadores padronizadamente (ex. Jogador 1, Jogador 2 etc) ◦ Mudar o nome dos jogadores. Exibir os nomes atuais para escolher qual dos nomes deve ser alterado, então receber um nome incluindo espaços. ◦ Editar jogo. Neste campo deve-se poder escolher quantas palavras podem ser erradas até o jogador ser desclassificado. (Extra) Cadastrar novas palavras secretas. • (Extra) Arquivo com as palavras secretas. Em vez de declarar um vetor ou matriz definido(a) no código, o programa deve ser capaz de ler e salvar arquivos, em um arquivo salvar as palavras secretas e editá-lo quando desejado. • (Extra) Guardar pontuação. Salvar em um arquivo todas as pontuações e no menu inicial acrescentar a opção “Melhores Resultados”, o qual deve mostrar as dez melhores pontuações já obtidas. 2. Dicas de implementação Segue uma lista de dicas para implementação do projeto. • Paralizar o jogo durante um tempo. Você pode paralizar a execução do programa utilizando o comando Sleep(N), da biblioteca Windows.h. Nesse caso o programa ficará pausado por N milisegundos, e depois voltará a executar normalmente. Obs.: no linux o comando é sleep(N), com o “s” minúsculo, a biblioteca é a unistd.h e o valor de N é dado em segundos. • Arte ASCII. Use um gerador de arte ASCII para criar uma tela de boas vindas ou uma mensagem de vitória diferentes. Basta selecionar a fonte, escrever o texto e então copiar e colar o conteúdo em vários comandos cout, sendo um por l
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...