Jump to content
vanesca

Jogo da forca: lista de temas e palavras

Recommended Posts

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

Share this post


Link to post
Share on other sites
HappyHippyHippo

se sabes, então o melhor é teres listas ligadas em vez de arrays multidimensionais


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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

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.