Jump to content
JPVis

Programa em C++ "Jogo quebra cabeças"

Recommended Posts

JPVis

Boas pessoal,

Na cadeira de programação foi-me pedido para fazer um programa que fosse o jogo quebra cabeças, para adivinhar palavras que fossem cidades ou paises, estas palavras estão num ficheiro txt.

O jogador tem duas hipóteses em cada jogada: escolher uma letra que julgue fazer parte do nome da cidade / país ou tentar acertar.

No início, o programa deve apresentar um menu com as seguintes opções:

1. Criar / Alterar password

2. Jogar

3. Inserir Nomes de Cidades / Países no ficheiro

4. Sair

A opção 2 (Jogar), ao ser escolhida, faz com que o jogo se inicie. O programa começa por escolher o nome da cidade / país, aleatoriamente, de uma lista armazenada em ficheiro. De seguida, deve apresentar o nome “escondido” por asteriscos e as letras do alfabeto por debaixo.

                                              ********

                      a b c d e f g h i j k l m n o p q r s t u v x y z

O jogador tem as seguintes hipóteses:

1. Escolher letra

2. Acertar Nome

3. Abandonar o jogo

O jogador deve ter sempre disponível informação das letras que já escolheu e de quantas letras ainda pode falhar.

Exemplo:

                        vi** *ea* de *a*to a*ton*o

                  - b c - - - - - - j k l m - - p q r s - u - x y z

Agradecia a Vossa ajuda.

Cumptos

JPVis

Share this post


Link to post
Share on other sites
xtrm0

2 coisas:

1ª Em vez de dizeres essas regras todas podias dizer que era o jogo da forca.

2ª Qual é a tua duvida?


<Signature goes here>

Share this post


Link to post
Share on other sites
JPVis

Boas,

Agradeço desde já a tua resposta.

Infelizmente a minha dúvida é quase tudo...

Queria saber se alguém tem o programa, para poder estudar e perceber. É que sou trabalhador/estudante e o tempo é bastante escasso.

Obrigado

Share this post


Link to post
Share on other sites
Amoguai

Se queres estudar e perceber, nada melhor que fazê-lo tu próprio.

Assim de repente e só porque tenho que matar tempo:

void main(){
int opcao;

do{
cout << "1. Criar / Alterar password\n
2. Jogar\n
3. Inserir Nomes de Cidades / Países no ficheiro\n
4. Sair";

switch(opcao){
case 1 : criar_pw();
break;
case 2 : jogar();
break;
case 3 : inserir();
break;
case 4 : cout << "Obrigado por jogar. Até breve!";
break;
default: cout << "Opção incorrecta. Tente novamente.";}

}while (opcao==4)
return 0;
}

Share this post


Link to post
Share on other sites
Amoguai

Para começar vais precisar de 2 strings, uma para a palavra e outra para o alfabeto.

Para criares a tua escolha aleatória sugiro leres todas a linhas do ficheiro para um array de strings e usares a função random para escolher um índice do array ao acaso, dentro dos seus limites.

Qualquer coisa do género:

array.size()*random(); //Gera um índice do array, aleatóriamente.

void jogo(){
int opcao;
string alfabeto = "abcdefghijklmnopqrstuvxz";
string palavra;

do{
cout << palavra << endl;
cout << alfabeto << endl;
cout << "1. Escolher letra\n
2. Acertar Nome\n
3. Abandonar o jogo\n";

switch(opcao){
case 1 : escolher_letra();
break;
case 2 : acertar_nome();
break;
case 3: cout << "Obrigado por jogar. Até breve!";
}
}while(opcao==3);

}

Depois as funções escolher_letra() e acertar_nome() vão fazendo as alterações necessárias às duas strings palavra e alfabeto.

Aviso: O código pode e provavelmente está sintaticamente errado, é só para te dar uma ideia do que tens que fazer.

Boa sorte!

Share this post


Link to post
Share on other sites
JPVis

Boas,

Obrigado pelas respostas, vou tentar estudar e perceber o código.

Tenho pena que o tempo seja bastante escasso, porque gostava mesmo de aprender a programar.

Cumptos e até breve

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.