João Araujo
Dr. en Informatique, Université de Versailles, França.

Muito aquém do 3D!

Muitos sabem das últimas novidades do cinema. Entre essas “novidades”, nada mais espetacular que as imagens 3D! Apesar de ser uma invenção do século passado, apenas agora chega às massas. Continuamos nessa involução e anunciamos o fantástico, extraordinário, sem igual Quadrado de Rubick 2D!

Nos anos 70 foi uma febre entre os adolescentes resolver o famoso cubo mágico, sensacional quebra-cabeça imaginado pelo matemático Rubick. Agora vamos aquém indo além no passado, e criamos a empresa bablecube!

Você foi escolhido para ser o programador desta emergente empresa Web2.0!

Para isso, você terá que desenvolver o programa genial que permitirá a qualquer ser humano experimentar as maravilhas do mundo 2D do quadrado mágico!

O jogo consiste de um “quadrado de Rubick” composto de 8 quadrados iguais:

1234
8765

figura 1

O quadrado possui 3 movimentos possíveis:

A:Troca as linhas superior e inferior.

8765
1234

B: Gira o quadrado para a direita

4123
5876

C: Gira, no sentido do relógio, os 4 quadrados do meio.

1724
8635

Faça um programa que leia um arquivo com uma configuração inicial e permita que o usuário interaja usando as letras A, B e C para levar o quadrado à posição original, dada pela figura 1. Quando a posiço original for atingida, o programa termina.

A qualquer momento, o usuário pode teclar Z e o programa deve começar a calcular uma solução do quadrado, ou q, para sair do programa.

O programa tem pelo menos um parâmetro que é o nome do arquivo a ser lido no seguinte formato 8 1 7 4 5 2 6 3

que gera:

8174
3625

A saída do programa deve também gerar um arquivo de saída com as transformações usadas para chegar à situação final. A primeira linha deve ser o número de movimentos e cada linha subsequente a transformação aplicada: Por exemplo: 7
B
C
A
B
C
C
B

executando: B:

4817
5362

C:

4387
5612

A:

5612
4387

B:

2561
7438

C:

2451
7368

C:

2341
7658

B:

1234
8765

O programa tem ainda os seguintes parâmetros:

  • -r, quando ele gera uma configuração inicial aleatória, sem necessidade de arquivo de configuração inicial.
  • -a, que resolve a entrada automaticamente, sem intervençaõ do usuário. Pode estar associada com a opção -r.

Boa Sorte!

trabalho_2010-1.txt · Última modificação: 10/06/2010 17:07:07 por araujo
geomatica Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0