TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Implementação Torre De Hanoi

Pesquisas Acadêmicas: Implementação Torre De Hanoi. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  4/6/2013  •  884 Palavras (4 Páginas)  •  474 Visualizações

Página 1 de 4

Implementação da Torre de Hanoi

Primeiramente fizemos o levantamento de todas as funções básicas que o programa iria utilizar, juntamente com as variáveis necessárias.

Em seguida, construímos as 3 torres como vetores distintos, e também 3 variáveis para guardar os seus topos, para que pudéssemos

implementá-los como pilhas. Para tanto, criamos 4 funções de controle das mesmas: isEmpty, isFull, push e pop, seguindo o padrão

comum da construção de pilhas.

As próximas funções criadas foram "novo_jogo", "ver_torres" e "mover"; a novo jogo deveria reinicializar as variáveis para retornar

ao seu estado inicial – nela também pretendemos implementar algo para escolher o número de discos –, porém nos deparamos com alguns

obstáculos. Dentre estes, os principais são:

1- Os vetores precisam ter tamanhos variáveis para que se possa modificar o número de discos

2- É preciso utilizar uma variável global para guardar o número de discos

As soluções propostas pelo grupo foram:

1- Utilizar vetores de tamanho fixo, e avisar ao usuário que ele tem um range (faixa) limitado de opções para o número de discos,

de x até y - ex: (3 até 10)

2- Alterar todas as funções e blocos do código que acessem a TAM_MAX para utilizarem uma variável criada no main – para tanto é

necessário alterar os parâmetros de algumas funções, alguns for's e if's do código.

Pensamos também em criar uma função para o menu, mas como centralizamos o local onde esse é acessado, não foi necessário, visto que a função

somente seria chamada naquele local, não havendo reaproveitamento de código.

A função ver_torres foi a que mais sofreu alterações desde o início, pois cada membro pensou em uma interface diferente. No fim,

aceitamos a sugestão do professor, mas ainda precisamos retirar os 'ZEROS' e trocá-los por 'NADA' ou traços.

Pensamos em fazer o menu com diversas opções, economizando a entrada de dadosd pelo usuário, ex:

1- Mover da torre 1 para torre 2

2- Mover da torre 1 para torre 3

3- Mover da torre 2 para torre 1

E por ai vai, mas isso estava fora das especificações do programa, então alteramos para que recebesse a entrada:

dX tY tZ - ex: d1 t1 t2 (disco 1, da torre 1 para torre 2

Tivemos um pouco de dificuldade em recuperar corretamente os valores digitados pelo usuário e na consistência das informações,

mas ao que tudo indica está tudo correto agora.

Também debatemos que a primeira entrada (a especificação do disco) - dX é um tanto quanto sem sentido, visto que nas regras da

Torre de Hanoi, somente é possível mover o disco que está em cima. Acreditamos que isso só dificultou um pouco a programação

do código, pois é preciso verificar a consistência do disco que o usuário tem, e isso também afeta a usabilidade, porque é possível

que o usuário digite um disco inválido, e pelo que notamos, isso acontece com certa frequência.

A nossa sugestão é que o programa aceite apenas a entrada tY tZ, evitando esse desconforto.

Das dificuldades, a maior foi no SWITCH da opção 'Mover' do menu: nela precisávamos saber quais torres foram selecionadas,

...

Baixar como (para membros premium)  txt (5.5 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com