Ir para o conteúdo
vanesca

Jogo da forca: lista de temas e palavras

Mensagens Recomendadas

vanesca

Boa tarde,

Comecei à pouco tempo a aprender c++ e neste momento a minha professora deu-me um exercício para resolver que consiste em fazer um jogo da forca.

A dúvida que tenho é na parte em que temos que organizar as palavras do jogo por temas e o utilizador deve ser capaz de criar um número variado de temas, que por sua vez, contêm um número variado de palavras (p. ex., tema “Frutas”, conterá as palavras, “banana”, “maça”, “laranja” e “limão”). Deve ser possível consultar a lista de temas e palavras, além de adicionar ou eliminar temas ou palavras.

A minha dúvida é como fazer uma lista de temas e dentro de cada tema tenho palavras...

Lembrei-me de fazer uma lista de temas, e em cada tema ma lista de palavras, ou então uma lista de temas e cada tema é constituído por um vector multidimensional que irá conter as palavras. Será que estou a pensar bem? Será que me podem dar umas luzes de como resolvo esta situação?

Ainda estou numa fase inicial do exercício, mas o resto já consegui estruturar mais ou menos.

Obrigada pela atenção

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vanesca

Então faço uma classe lista animais que vai agrupar as palavras deste tema, uma classe lista cores que vai agrupar as palavras deste tema e depois faço uma classe temas que vai agrupar a classe lista animais e a classe lista cores? Será que estou a pensar bem?

Mais uma vez obrigada pela atenção.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

se queres usar classes e/ou as funcionalidades existentes na linguagem, podes usar um mapa de vectores:

// versão c++11
std::map<std::string, std::vector<std::string>> dicionario;

dicionario["animais"] = {};
dicionario["animais"].push_back("gato");
dicionario["animais"].push_back("rato");

dicionario["cores"] = {};
dicionario["cores"].push_back("amarelo");
dicionario["cores"].push_back("preto");

for (auto it = dicionario.begin(), end = dicionario.end(); it != end; it++)
{
 std::cout << "tema : " << it->first << std::endl;
 for (auto it_item = it->second.begin(), end_item = it->second.end(); it_item != end_item; it_item++)
   std::cout << "\tpalavra : " << *it_item << std::endl;
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Greemax

Nao faças uma lista "animais" ou uma lista "fruta". Isso seria hardcoded e iria limitar a novos temas criados pelos utilizadores. Das duas uma, ou usas mapas de vectores como o HappyHippyHippo disse ou então crias uma lista ligada de temas. Cada tema por si tem uma string com o nome e uma lista de strings com as respectivas palavras.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.