prÓ-reitoria de graduaÇÃo trabalho de conclusÃo de...

114
PRÓ-REITORIA DE GRADUAÇÃO TRABALHO DE CONCLUSÃO DE CURSO CIÊNCIA DA COMPUTAÇÃO SISCUBE – SISTEMA TUTOR PARA CUBO MÁGICO Autores: Bruno Cavalcanti Freitas Carlos Alberto de Alcântara Júnior Rodrigo Maciel Galvão Orientador: Prof. Dsc. Fábio Bianchi Campos 2008

Upload: lycong

Post on 11-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

PRÓ-REITORIA DE GRADUAÇÃO

TRABALHO DE CONCLUSÃO DE CURSO

CIÊNCIA DA COMPUTAÇÃO

SISCUBE – SISTEMA TUTOR PARA CUBO MÁGICO

Autores: Bruno Cavalcanti Freitas

Carlos Alberto de Alcântara Júnior

Rodrigo Maciel Galvão

Orientador: Prof. Dsc. Fábio Bianchi Campos

2008

BRUNO CAVALCANTI FREITAS

CARLOS ALBERTO DE ALCÂNTARA JÚNIOR

RODRIGO MACIEL GALVÃO

SISCUBE – SISTEMA TUTOR PARA CUBO MÁGICO

Trabalho apresentado ao curso

de graduação em Bacharelado em

Ciência da Computação da

Universidade Católica de Brasília,

como requisito parcial para obtenção

do Título de Bacharel em Ciência da

Computação.

Orientador: Prof. Dsc. Fábio

Bianchi Campos

Brasília

2008

Trabalho de autoria de Bruno Cavalcanti Freitas, Carlos Alberto de Alcântara

Júnior e Rodrigo Maciel Galvão, intitulado SISCUBE – Sistema Tutor para Cubo

Mágico, requisito parcial para obtenção do grau de Bacharel em Ciência da

Computação, defendido e aprovado em 20/11/2008, pela banca examinadora

constituída por:

______________________________________________

Prof. Dsc. Fábio Bianchi Campos

_____________________________________________

Profª. Dra Maristela Terto de Holanda

Brasília

2008

DEDICATÓRIA

A todos que nos acompanharam, não somente neste projeto, como também

em mais esta etapa de vida, tornando possível a conquista de mais um objetivo.

AGRADECIMENTOS

“Primeiramente, agradeço a DEUS, que me deu força, ânimo, coragem e

condições de concluir esse projeto e pela grande quantidade de conhecimento

adquirido ao longo desses quatro anos. Agradeço à minha mãe, pelas palavras de

incentivo, e sempre confortantes, nas horas de dificuldades, ao meu pai, pelo apoio

e empenho, me auxiliando nessa caminhada, aos meus irmãos por saberem

entender minhas horas de nervosismo e falta de paciência, e à minha namorada, por

suportar com paciência e extrema maturidade, meus momentos de ausência.

Agradeço ao professor Fábio Bianchi Campos, que nos ajudou com paciência

e entusiasmo, sempre acreditando e confiando no nosso trabalho, a finalizar esse

projeto com sucesso e por nos ter passado tamanha quantidade de conhecimento.

Finalmente, mas não menos importante, agradeço aos meus companheiros e

amigos Carlos e Rodrigo, por termos passado esses dois semestres trabalhando

nesse projeto, enfrentando dificuldades e adversidades de forma madura e

consciente, sempre nos lembramos que acima de tudo, somos amigos...”

Bruno Cavalcanti Freitas

“Agradeço ao Orientador Prof. Bianchi pelo incentivo, simpatia e presteza no

auxílio às atividades e discussões sobre o andamento deste projeto final. Aos

colegas de projeto Bruno e Rodrigo pelo comprometimento e dedicação. Aos

colegas de classe pela espontaneidade e alegria na troca de informações e

materiais numa rara demonstração de amizade e solidariedade. A minha família pela

paciência em tolerar a ausência e por todo o auxílio por ela me dado. E, finalmente,

a Deus pela oportunidade e pelo privilégio que me foi dado em compartilhar tamanha

experiência de aprendizado.”

Carlos Alberto de Alcântara Júnior

“Agradeço a todo corpo docente do curso de Ciência da Computação da

Universidade Católica de Brasília pelo conhecimento transmitido ao longo destes

quatro anos e em especial ao Prof. Dr. Fábio Bianchi Campos por ter-nos

direcionado na aplicação deste conhecimento e nos incentivado a saber mais e a

fazer o nosso melhor. Agradeço a todos que conheci durante esta jornada e em

especial aos amigos Bruno e Carlos, por acreditarem em mim e no nosso projeto.

Agradeço aos meus amigos, aos meus irmãos consangüíneos e carinhosamente à

minha namorada pelo apoio e principalmente pelos momentos de união, alegria e

confraternização que foram essenciais para que eu tivesse força para prosseguir.

Agradeço, acima de tudo, aos meus pais, pelo amor, carinho, compreensão,

educação, enfim, por tudo que me deram e ainda me proporcionam. E é claro, a

Deus, por todas as oportunidades a mim dadas. Muito obrigado!”

Rodrigo Maciel Galvão

EPÍGRAFE

“Dar menos que o seu melhor é sacrificar o dom que recebeu.”

Steve Prefontaine

RESUMO

Este projeto apresenta o produto em desenvolvimento do trabalho de

conclusão do curso de Ciência da Computação da UCB, que consiste na criação de

um sistema tutor cuja finalidade é transmitir ao usuário a competência para resolver

o cubo mágico. Inicialmente, na disciplina de Inteligência Artificial, foi desenvolvido

um aplicativo capaz de resolver o cubo mágico a partir de qualquer configuração.

Posteriormente, devido ao interesse das pessoas em aprender sobre sua resolução,

incorporou-se a idéia de integrar um tutorial interativo ao sistema já existente.

Basicamente, o tutorial funciona da seguinte maneira: o usuário seleciona a etapa

que deseja aprender e o sistema retorna o cubo configurado conforme a opção

escolhida. A partir daí, usuário e sistema interagem até que o aprendizado da etapa

seja concluído. Este processo envolve algoritmos consideravelmente complexos,

haja visto o número de possibilidades mapeadas, a análise para a decisão dos

movimentos a serem realizados e as explicações correspondentes a serem

apresentadas.

Palavras-chave: Cubo Mágico. Sistema Tutor.

ABSTRACT

This project presents the product from the conclusion project of the of

Computer Science graduation at the UCB, which is the creation of a mentor system

whose purpose is to teach it’s user to solve the Rubik’s Cube. Initially, at the

discipline of Artificial Intelligence, an application able to solve the Rubik’s Cube from

any configuration was developed. Later, due to the interest of the people to learn

about it solution, the idea of integrating an interactive tutorial to the existing system

was incorporated. Basically, the tutorial works like: The user selects the stage which

is willing to learn and the system returns the cube configured as the preferred option.

From there, users and system interact until the learning stage is completed. This

process involves considerably complex algorithms, concerning the number of

possibilities for mapping, analyzing the decision of the rotation of the cube to be

made and the corresponding explanations.

Keywords: Rubik’s cube. Tutorial.

LISTA DE ILUSTRAÇÕES

Figura 1.1 Projeto de Inteligência Artificial em duas dimensões............................... 18

Figura 4.1 Tipo de Cubo Mágico .............................................................................. 27

Figura 4.2 Centros .................................................................................................... 28

Figura 4.3 Cantos ..................................................................................................... 28

Figura 4.4 Meios ....................................................................................................... 28

Figura 4.5 Estrutura interna do cubo mágico ............................................................ 28

Figura 4.6 Localização e orientação dos cantos ....................................................... 29

Figura 4.7 Localização e orientação dos meios........................................................ 30

Figura 4.8 Localização e orientação dos centros ..................................................... 30

Figura 4.9 Aplicativo Rubik’s Cube ........................................................................... 31

Figura 4.10 Matriz tridimensional .............................................................................. 33

Figura 4.11 Rótulos de cada posição da matriz ........................................................ 33

Figura 4.12 Resultado da execução do movimento R .............................................. 34

Figura 5.1 Representação do ciclo de vida do PU .................................................... 36

Figura 5.2 Logomarca Java ...................................................................................... 38

Figura 7.1 Modelo de Domínio ................................................................................. 52

Figura 7.2 Diagrama de Casos de Uso .................................................................... 53

Figura 7.3 Modelo de Arquitetura ............................................................................. 54

LISTA DE TELAS DO SISTEMA

Tela 1 Efetuar Login .................................................................................................. 60

Tela 2 Tela Principal do Applet, acessada nos casos de uso AcessarTutorial3D,

TreinarCuboVirtual e JogarCuboVirtual ..................................................................... 63

Tela 3 Tela de Níveis e Etapas, acessada nos casos de uso AcessarTutorial3D e

TreinarCuboVirtual .................................................................................................... 64

Tela 4 Acessar Tutorial 3D ........................................................................................ 64

Tela 5 Treinar Cubo Virtual ....................................................................................... 67

Tela 6 Jogar Cubo Virtual.......................................................................................... 71

Tela 7 Cadastrar Usuário .......................................................................................... 77

Tela 8 Editar Cadastro .............................................................................................. 83

Tela 9 Enviar Mensagem Pessoal ............................................................................. 88

LISTA DE TABELAS

Tabela 5.1 Marcos e Pontos de Controle .................................................................. 40

Tabela 5.2 Riscos ..................................................................................................... 43

Tabela 5.3 Impactos ................................................................................................. 43

Tabela 5.4 Documentos do Projeto ........................................................................... 43

Tabela 5.5 Recursos Humanos ................................................................................. 44

Tabela 5.6 Recursos de Hardware ........................................................................... 44

Tabela 5.7 Recursos de Software ............................................................................. 44

Tabela 5.8 Cronograma ............................................................................................ 47

Tabela 5.9 Glossário ................................................................................................. 48

SUMÁRIO

1 INTRODUÇÃO .......................................................................................... 17

1.1 Motivação ................................................................................................ 17

1.2 Breve Histórico ....................................................................................... 17

1.3 Problemas Diagnosticados .................................................................... 19

1.4 Usuários do Sistema............................................................................... 19

2 OBJETIVOS ............................................................................................. 20

2.1 Objetivo Geral ......................................................................................... 20

2.2 Objetivo Específico ................................................................................. 20

3 PROPOSTA DO SISTEMA ....................................................................... 21

3.1 Descrição do Sistema Proposto ............................................................ 21

3.2 Resultados Esperados ........................................................................... 21

3.3 Restrições do Sistema Proposto ........................................................... 22

3.4 Recursos Necessários para Execução ................................................. 23

3.4.1 Descrição do Hardware Ideal ................................................................. 23

3.4.2 Descrição do Hardware Mínimo ............................................................. 23

3.4.3 Descrição do Software ........................................................................... 23

3.4.4 Configuração da Rede ............................................................................ 23

3.4.5 Fontes dos Softwares Necessários ....................................................... 23

3.5 Áreas Afetadas pelo Novo Sistema ....................................................... 23

4 CONTEXTUALIZAÇÃO DO TEMA PROPOSTO ..................................... 25

4.1 Cubo mágico – Histórico e Informações ............................................... 25

4.2 Cenário do Speedcubing ........................................................................ 26

4.3 Cubos Mágicos mais conhecidos ......................................................... 26

4.4 Estrutura Física do Cubo Mágico .......................................................... 27

4.5 O Cubo Virtual ......................................................................................... 29

4.6 Interface entre Inteligência e Visão ....................................................... 32

4.7 Matriz, a parte Inteligente do Cubo ....................................................... 33

4.7.1 Representação ........................................................................................ 33

4.7.2 Execução de Movimentos ...................................................................... 34

5 PLANEJAMENTO DO PROJETO ............................................................ 35

5.1 Plano do Processo de Desenvolvimento .............................................. 35

5.1.1 Ciclo de Vida do Projeto ......................................................................... 35

5.1.2 Métodos de Desenvolvimento e Ferramentas CASE ........................... 36

5.1.3 Linguagens de Programação ................................................................. 37

5.1.4 Ambiente de Hardware para Desenvolvimento .................................... 38

5.2 Plano de Organização............................................................................. 39

5.2.1 Equipe de Gerência ................................................................................ 39

5.2.2 Equipe de Desenvolvimento .................................................................. 39

5.3 Plano de Acompanhamento ................................................................... 39

5.3.1 Marcos e Pontos de Controle ................................................................ 40

5.3.2 Métodos de Acompanhamento e Controle ........................................... 41

5.3.3 Análise e Gerência de Riscos ................................................................ 41

5.4 Plano de Documentação ........................................................................ 43

5.4.1 Documentos do Projeto .......................................................................... 43

5.5 Plano de Recursos e Produtos .............................................................. 44

5.5.1 Recursos Humanos ................................................................................ 44

5.5.2 Recursos de Hardware ........................................................................... 44

5.5.3 Recursos de Software ............................................................................ 44

5.6 Cronograma ............................................................................................. 44

5.7 Glossário ................................................................................................. 47

6 ESPECIFICAÇÃO DOS REQUISITOS DO SISTEMA.............................. 49

6.1 Descrição do Problema .......................................................................... 49

6.2 Identificação dos Interessados .............................................................. 49

6.3 Descrição das necessidades dos interessados ................................... 49

6.4 Descrição das características do sistema ............................................ 49

6.5 Requisitos do software........................................................................... 50

6.6 Restrições ................................................................................................ 51

7 DIAGRAMAS UML ................................................................................... 52

7.1 Modelo de Domínio ................................................................................. 52

7.2 Visão Geral dos Casos de Uso e Atores ............................................... 53

7.3 Modelo de Arquitetura ............................................................................ 54

7.4 Diagrama de Implantação ....................................................................... 55

8 DIFICULDES ENCONTRADAS ................................................................ 56

9 CONCLUSÃO ........................................................................................... 57

10 BIBLIOGRAFIA ........................................................................................ 58

11 ANEXOS ................................................................................................... 59

11.1 Anexo I – Especificação dos Casos de Uso ......................................... 59

11.1.1 Efetuar Login ........................................................................................... 59

11.1.2 Acessar Tutorial 3D ................................................................................ 61

11.1.3 Treinar Cubo Virtual................................................................................ 65

11.1.4 Jogar Cubo Virtual .................................................................................. 67

11.1.5 Cadastrar Usuário ................................................................................... 71

11.1.6 Editar Cadastro ....................................................................................... 77

11.1.7 Pesquisar Usuário .................................................................................. 84

11.1.8 Enviar Mensagem Pessoal ..................................................................... 86

11.1.9 Entrar Contato Administradores ........................................................... 88

11.2 Anexo II – Realização dos Casos de Uso Críticos ............................... 90

11.2.1 Acessar Tutorial 3D ................................................................................ 90

11.2.1.1 Diagrama de Classes de Análise .............................................................. 90

11.2.1.2 Diagrama de Seqüência do Sistema ......................................................... 91

11.2.1.3 Diagrama de Seqüência............................................................................ 92

11.2.2 Treinar Cubo Virtual................................................................................ 93

11.2.2.1 Diagrama de Classes de Análise .............................................................. 93

11.2.2.2 Diagrama de Seqüência do Sistema ......................................................... 94

11.2.2.3 Diagrama de Seqüência............................................................................ 95

11.2.3 Jogar Cubo Virtual .................................................................................. 96

11.2.3.1 Diagrama de Classes de Análise .............................................................. 96

11.2.3.2 Diagrama de Seqüência do Sistema ......................................................... 97

11.2.3.3 Diagrama de Seqüência............................................................................ 98

11.3 Anexo III - Notação dos Movimentos..................................................... 99

11.4 Anexo IV - Apostila Nível Básico ......................................................... 104

11.5 Anexo V - Apostila Nível Intermediário ............................................... 109

17

1 INTRODUÇÃO

1.1 Motivação

Com o decorrer dos últimos meses, o nosso interesse fez com o que o cubo

mágico se tornasse parte do nosso cotidiano e inúmeras vezes nos encontramos

com pessoas que também se interessam em aprender e brincar com o cubo mágico.

Todavia, devido à complexidade em resolvê-lo e ao fato de não existirem fontes tão

didáticas e dinâmicas de aprendizado, muitos aprendizes acabam desistindo do

desafio de concluir os passos necessários para sua resolução.

Devido a estes problemas, o projeto propõe um tutorial dinâmico, onde o

usuário poderá interagir com um cubo mágico virtual1 representado em três

dimensões, manipulando-o da forma que quiser e recebendo dicas e orientações do

sistema quanto às etapas de resolução2.

Acreditamos que com essa ferramenta de aprendizado, mais pessoas se

interessarão em conhecer um pouco mais sobre este quebra-cabeça sensacional e

sobre os benefícios mentais que ele proporciona.

1.2 Breve Histórico

O “passatempo” de resolver o cubo mágico já é praticado pelos integrantes do

grupo há algum tempo, e durante a disciplina de Inteligência Artificial (IA), na

Universidade Católica de Brasília surgiu a seguinte idéia: fazer com que o

computador resolvesse o cubo mágico a partir de qualquer configuração.

Para atingir o objetivo final deste projeto de disciplina uma primeira versão

cujo foco era criar uma estrutura que possibilitasse a resolução e tradução do

algoritmo básico de resolução3 foi desenvolvida. Esta estrutura tinha que resolver

dois problemas: representar o cubo em memória e permitir a execução dos

movimentos. Depois de criada a estrutura, foi obtido um programa que resolvia o

cubo mágico a partir de qualquer configuração e realizava movimentos feitos pelo

usuário, com uma interface em duas dimensões, conforme a figura a seguir: 1 Representação do cubo mágico em um computador. Normalmente, será referenciado

apenas como cubo virtual. 2 O método de resolução abordado no projeto é o método de resolução por camadas, que

consiste na resolução de uma camada do cubo mágico por vez. A melhor forma de aprendê-lo é dividindo o processo de aprendizado em partes, denominadas etapas de resolução. Mais detalhes podem ser vistos no Anexo III – Apostila Básica.

3 É o algoritmo que apresenta os passos mais simples e compreensíveis para resolução do cubo mágico. Em contrapartida, normalmente são executados mais movimentos.

18

Figura 1.1 Projeto de Inteligência Artificial em duas dimensões

Finalizada a primeira etapa, foi verificado que era difícil ver e compreender o

que acontecia. Com isso, foi decidido migrar a interface existente para uma que

fornecesse ao usuário maior interação e compreensão. Para desenvolvê-la, foi

iniciada uma pesquisa para descobrir como criar interfaces em três dimensões.

Numa dessas pesquisas, foi descoberto o aplicativo Rubik's Cube.

O aplicativo Rubik's Cube foi desenvolvido pelo suíço Werner Randelshofer e

se caracteriza como “software livre”, pois segue a filosofia GNU ou GPL (General

Public License). Com isso, seu código estava disponível e as alterações necessárias

puderam ser feitas. Em contrapartida, o SISCUBE deve obedecer às regras da

licença, se caracterizando também como “software livre”.

Internamente, o aplicativo de Werner possui métodos que possibilitam a

realização de movimentos no cubo virtual. Com isso, restava ao grupo descobrir

como mandar movimentos ao Rubik’s Cube a partir do projeto inicial que resolvia o

cubo mágico.

Depois de finalizada a parte de integração entre inteligência (solução do

grupo) e interface (aplicativo 3D), a proposta para o projeto da disciplina de IA

estava concluída.

19

1.3 Problemas Diagnosticados

Conforme dito no tópico 1.2, o aplicativo obtido na disciplina de IA era

constituído por duas partes: a inteligência e a interface em três dimensões, que se

integravam muito bem e possibilitavam a percepção real dos movimentos que eram

executados no cubo virtual.

No entanto, apesar de possuir uma boa representação visual, a aplicação não

permitia que o usuário aprendesse, efetivamente, a resolver o cubo mágico, pois

seus movimentos eram executados de forma seqüencial, sem intervalos e sem

explicações. Não havia divisão do processo de resolução em “partes”, dificultando o

entendimento de um leigo do que era feito e do por que era feito.

Resumindo, a aplicação apenas possibilitava que um usuário realizasse

movimentos em um cubo virtual e visse que ele está sendo resolvido pelo sistema.

1.4 Usuários do Sistema

Usuários representam as diferentes pessoas que usam o sistema ou produto.

Definindo mais formalmente, são aqueles que se comunicam com o sistema e a ele

são externos (PRESSMAN, 2006).

No SISCUBE, os usuários do sistema são aqueles que possuem acesso à

Internet e ao entrarem no sítio do projeto exploram pelo menos uma de suas

funcionalidades. Dividem-se em usuários identificados e não identificados e

administradores.

Os usuários identificados são aqueles que se cadastraram no sistema e que

através do nome de usuário e senha, definidos durante o cadastro, usufruem de

todas as funcionalidades disponíveis no sítio do projeto.

Já os usuários não identificados são aqueles que ainda não se cadastraram

ou não se identificaram no sítio do projeto. Em conseqüência, não usufruem de

muitas funcionalidades disponíveis.

Por sua vez, os administradores são aqueles que podem, além de executar

todas as funcionalidades de um usuário identificado, gerenciar o sistema (usuários,

agenda de notícias, etc.).

20

2 OBJETIVOS

2.1 Objetivo Geral

Este projeto tem como objetivo principal transmitir ao usuário a competência

para resolver o cubo mágico, dando a possibilidade do mesmo praticar os

conhecimentos recém adquiridos, para que sejam fixados à mente de forma mais

eficiente.

2.2 Objetivo Específico

Para atingir o objetivo geral de maneira eficiente, uma série de objetivos

específicos deve ser alcançada:

• Desenvolver um tutorial dinâmico e interativo sobre a resolução do cubo

mágico, que proporcione facilidades para o entendimento do usuário, como

por exemplo:

o Fazer com que uma peça seja visualmente destacada quando

pertinente.

o Ajustar os movimentos do cubo para que sejam mais bem

compreendidos por um iniciante.

o Adicionar explicações por escrito aos passos executados pelo cubo

virtual.

• Desenvolver um site para disponibilizar mais facilmente aos usuários o

acesso às funcionalidades da aplicação.

• Permitir no site que os usuários interajam entre si para trocar idéias, tirar

dúvidas, etc.

• Permitir ao usuário treinar no cubo virtual os conhecimentos adquiridos.

• Oferecer funcionalidades adicionais como cronometragem para que o

usuário acompanhe seu progresso.

21

3 PROPOSTA DO SISTEMA

3.1 Descrição do Sistema Proposto

O SISCUBE – Sistema Tutor para Cubo Mágico – é um sistema que visa

ensinar passo a passo, de forma interativa e didática como funciona o Método de

Resolução por Camadas do cubo mágico.

Sua característica interativa é justificada por dois fatores: a forma bidirecional

com que a comunicação entre o sistema e seus usuários ocorre e a disposição de

informações de forma não seqüencial, que permite que os usuários estabeleçam o

caminho a ser trilhado, “navegando” em etapas de diferentes níveis4.

Já a característica didática se justifica no próprio significado da palavra: arte

ou técnica de ensinar; elemento transformador da teoria na prática. Didaticamente, o

sistema buscará traduzir fielmente os conhecimentos do especialista no Método de

Resolução por Camadas.

Seguindo-se estes princípios, o usuário irá se deparar com diferentes casos

de resolução, que serão claramente explicados pelo sistema.

Em relação ao projeto desenvolvido na disciplina de IA – Inteligência Artificial

são notáveis os aspectos diferenciadores. Enquanto que no projeto inicial o cubo

mágico simplesmente se resolvia a partir de qualquer estado, no novo sistema será

possível aprender e compreender a resolução do cubo e de cada movimento

executado. O usuário poderá também praticar os ensinamentos adquiridos a partir

da etapa que desejar e medir a melhoria de seu desempenho através da marcação

de tempos.

3.2 Resultados Esperados

Os jogos de raciocínio lógico estão cada vez mais presentes na vida das

pessoas e o motivo é simples: além de diverti-las, são úteis no desenvolvimento de

suas habilidades mentais.

Ao observar o cubo mágico em seu estado embaralhado e sabendo qual o

objetivo de cada etapa, a visão do todo é obtida. E mais, ao observar a disposição

das cores, inicia-se o desenvolvimento do raciocínio lógico, pois é necessário pensar

4 São os níveis de aprendizado disponíveis no sistema. Dividem-se em Iniciante e

Intermediário e variam de acordo com o grau de complexidade dos algoritmos utilizados na resolução do cubo virtual.

22

em como colocar uma peça em determinado lugar, sem que com isso outras peças

já arrumadas sejam bagunçadas. Com isso, o jogador estabelece metas e à medida

que o jogo se desenvolve ele procura atingi-las.

A partir daí – da visão do todo, do objetivo final e metas – são desenvolvidas

ou melhoradas: a perspicácia, a paciência, a determinação, a competência, o

planejamento e desenvolvimento de estratégias, a concentração e o foco, a visão

espacial, a análise sistemática e matemática e a lógica de raciocínio.

Os benefícios que o cubo mágico e outros jogos de lógica, como sudoku e

xadrez trazem para o ser humano são: estímulo da atividade mental, melhoria da

memória e da clareza mental e a manutenção do cérebro mais jovem, dentre outros.

Através dos benefícios e do desenvolvimento ou melhoria das capacidades

citados, jovens e crianças podem ter seu desempenho escolar melhorados. No

entanto, os benefícios atingem também idades mais avançadas, ajudando, por

exemplo, na prevenção de doenças mentais como o Mal de Alzheimer.

Estudos comprovam que a prática deste tipo de jogo ativa os lóbulos frontais

do cérebro, responsáveis pela capacidade de processamento, em particular a

memória. O jogo pode ainda funcionar como terapia, uma vez que o estresse e

energia acumulados ao longo do dia podem ser nele descarregados.

Jogar com brinquedos ou jogos de raciocínio é ideal para estimular o

pensamento criativo, bem como para melhorar o coeficiente intelectual e emocional,

levando às pessoas uma vida melhor e mais saudável.

3.3 Restrições do Sistema Proposto

Duas restrições foram identificadas no projeto: a dimensão do cubo e o

método de resolução abordados. A primeira é caracterizada pelo foco ao cubo

mágico de dimensão 3x3x3. Já a segunda, pela implementação de um único método

de resolução: o Método de Resolução por Camadas.

Apesar de fazerem parte do escopo do projeto, as demais dimensões e

métodos de resolução não serão implementados no sistema. Detalhes sobre o

assunto são abordados no capítulo 4.

23

3.4 Recursos Necessários para Execução

3.4.1 Descrição do Hardware Ideal

Processador: Pentium D 1.66 GHz

Memória RAM: 1GB

3.4.2 Descrição do Hardware Mínimo

Processador: Pentium 4 1.3 GHz

Memória RAM: 512MB

3.4.3 Descrição do Software

Sistema Operacional: qualquer um que suporte a Máquina Virtual Java, como

Linux, Windows e MacOS.

Máquina Virtual Java 5.0 ou superior.

Browser: Internet Explorer 6 ou superior, Mozilla Firefox 2.0 ou superior.

3.4.4 Configuração da Rede

Placa de Rede Ethernet 10/100 ou superior.

Acesso à Internet.

3.4.5 Fontes dos Softwares Necessários

Máquina Virtual Java: www.java.com/pt_BR/

Internet Explorer: www.microsoft.com/brasil/windows/downloads/ie/getitnow.mspx

Mozilla Firefox: http://pt-br.www.mozilla.com/pt-BR/firefox/

3.5 Áreas Afetadas pelo Novo Sistema

Como visto no tópico 3.2, o cubo mágico traz diversos benefícios mentais

para quem o pratica. A conclusão desse projeto afetará todas as pessoas que têm

interesse em resolver o cubo mágico, seja por curiosidade, por querer exercitar a

mente ou mesmo por tentar concluir um desafio de infância. O projeto poderá ser

utilizado como atividade extracurricular nos colégios, auxiliando no desenvolvimento

24

da capacidade das crianças e adolescentes e servindo também como evidenciação

de alunos com potencial diferenciado.

Além disso, o projeto afetará na área do Speedcubing5, pois ajudará a trazer

novos atletas. A popularização do esporte fará com que os atletas tenham mais

condições de competir e realizar competições, visto que terão mais chances de

conseguir patrocínios para ajudar em viagens e acessórios.

5 Esporte em que os praticantes procuram resolver o cubo mágico no menor tempo possível.

Mais detalhes serão vistos no capítulo 4.

25

4 CONTEXTUALIZAÇÃO DO TEMA PROPOSTO

4.1 Cubo mágico – Histórico e Informações

O cubo de Rubik (ou também chamado o cubo mágico) é um quebra-cabeça

tridimensional, inventado pelo húngaro, Ernő Rubik em 1974 para ilustrar o conceito

de simetria (precursor da Teoria de Grupos da matemática):

Erno Rubik inspirou-se em quebra-cabeças já conhecidos para a criação do

cubo mágico, como o Tangram. No início, a idéia de criar um mecanismo para

sustentar os cubos parecia impossível, devido à grande quantidade de movimentos

existentes, mas Rubik acabou encontrando a solução enquanto observava o curso

do Rio Danubio.

O primeiro cubo montado por Rubik foi feito em madeira e tinha os seis lados

pintados com cores distintas, para que quando suas faces fossem giradas, uma

melhor visualização dos movimentos realizados fosse obtida.

Em 1978 o cubo começava a ser produzido sem incentivos. Mesmo sendo

inicialmente rejeitado, um ano depois, atingira uma publicidade tal que se podia ver

pessoas entretidas com seus cubos nos trens, restaurantes, etc.

Originalmente foi chamado "o cubo mágico" pelo seu inventor, mas o nome foi

alterado pela Ideal Toys para cubo de Rubik em 1980. Neste mesmo ano, ganhou o

prêmio alemão do "Jogo do Ano" (Spiel des Jahres). [WIKIPÉDIA]

Em 1985 os direitos autorais sobre o cubo foram comprados por Seven

Towns, que o relançou no mercado, obtendo muito sucesso. Atualmente Erno Rubik

e Seven Towns trabalham próximos. Rubik está engajado a descobrir novos quebra-

cabeças e continua sendo o principal beneficiado com sua invenção.

O cubo de Rubik é um cubo geralmente fabricado em plástico e possui várias

versões, sendo a versão 3x3x3 a mais comum, composta por seis faces de seis

cores diferentes com um total de 54 peças, com arestas de aproximadamente 5,5

cm. Outras versões menos conhecidas são a 2x2x2, e de 4x4x4 a 7x7x7.

É considerado um dos brinquedos mais populares do mundo, atingindo um

total de 300 milhões de unidades vendidas, bem como suas diferentes imitações.

O desejo de ver as seis faces do cubo organizadas atingia todas as idades e

profissões. Foram lançados mais de 60 livros para ajudar tais pessoas. Nenhum

outro quebra-cabeça teve tantos adeptos, o que o torna um brinquedo genial.

26

O número de combinações possíveis que pode ser obtida com o cubo mágico

é de 43.252.003.274.489.856.000 (43 quintilhões), o que demonstra como um

simples brinquedo colorido pode ser tão complexo de ser resolvido.

4.2 Cenário do Speedcubing

Quando lançado na década de 80, o cubo mágico era considerado um desafio

praticamente impossível de ser concluído. Tinha-se a impressão de que apenas as

mentes mais brilhantes conseguiriam desvendar o grande mistério que frustrou

milhares de pessoas durante décadas. De lá para cá, com ajuda da internet, as

pessoas puderam trocar conhecimentos adquiridos individualmente, que depois de

combinados, discutidos e estudados, formaram as primeiras técnicas de resolução

do brinquedo.

Com o passar do tempo, mais pessoas se interessaram em aprender esses

métodos e aos poucos as técnicas foram melhoradas, bem como novas foram

desenvolvidas.

Hoje em dia é considerado esporte, com várias modalidades: resolver com as

duas mãos, com apenas uma, vendado e até mesmo com os pés. Ganha quem

deixa apenas uma cor em cada lado do cubo em menos tempo.

Aos poucos o cenário do speedcubing (como é conhecido) vem ganhando

espaço na mídia e despertando interesse de patrocinadores. O vencedor do

campeonato mundial de 2007, disputado na Hungria, levou para casa o prêmio de

cinco mil euros.

No Brasil, esse movimento está começando e vem mostrando um grande

potencial de evolução. Já foram realizadas duas competições oficiais e há previsão

de outras para um futuro próximo.

Na televisão brasileira, algumas reportagens sobre o cubo, seus praticantes e

competições têm sido exibidas. Já existem diversos sites em português contendo

tutoriais, dicas e outras utilidades acerca do tema. E tudo isso tende a crescer

exponencialmente.

4.3 Cubos Mágicos mais conhecidos

Este projeto faz abordagem apenas do cubo mágico convencional, que possui

dimensões 3x3x3. Além dele, existem dezenas de outros quebra-cabeças

27

tridimensionais, tanto em formato de cubo como de diversos outros. Os mais

populares são os seguintes:

a) 3x3x3 convencional

b) 2x2x2

c) 4x4x4

d) 5x5x5

e) Megaminx

f) Pyraminx

g) Square-1

h) Rubik’s Magic

i) Rubik’s Master Magic

j) Rubik’s Clock

Figura 4.1 Tipo de Cubo Mágico

4.4 Estrutura Física do Cubo Mágico

Algumas pessoas passam a entender melhor o funcionamento do cubo

quando o desmontam e vêem sua estrutura interna, o que faz quebrar a idéia que

muitos têm de que cada cor se movimenta sozinha, e não três a três como no caso

dos cantos, e duas a duas no caso dos meios. Isso quer dizer que você tem que

fazer cada cor ao redor do respectivo centro.

O cubo mágico possui uma estrutura interna que permite girar qualquer uma

das faces infinitas vezes em qualquer sentido, pois as peças não são presas por

elásticos ou similares.

28

Figura 4.2 Centros

Figura 4.3 Cantos

Figura 4.4 Meios

Fonte: www.cubomagico.110mb.com

Na figura 4.2, as peças coloridas são chamadas de Centros, são seis e são

peças que não se movem entre si, o que se deve ao fato de serem fixas por

parafusos ao núcleo, que é uma peça de borracha em forma de estrela de seis

pontas.

A figura 4.3 representa as quinas do cubo, peças comumente chamadas de

Cantos e que possuem três cores cada. Estas peças são oito, logo podem ocupar

oito posições diferentes e podem estar giradas de três formas em relação a seu

próprio eixo.

Por fim, na figura 4.4 as arestas que estão coloridas são chamadas de Meios

e cada uma possui duas cores diferentes. Estas peças são doze, logo podem ocupar

doze posições diferentes e pode estar giradas de duas formas em relação a seu

próprio eixo.

Os cantos não podem ocupar o lugar dos meios e vice-versa.

Figura 4.5 Estrutura interna do cubo mágico

Fonte: www.9spuzzles.com

29

Como pode ser observado na figura 4.5, as peças possuem encaixes nas

pontas que servem tanto para segurá-las juntas ao cubo, quanto para formar uma

esfera interna que permite o livre giro das camadas.

4.5 O Cubo Virtual

Estudando com maior profundidade o aplicativo Rubik’s Cube, apresentado

no tópico 1.2, alguns pontos importantes foram observados. Segundo Christoph

[BANDELOW, Christoph. Einfuehrung in die Cubologie, Vieweg, 1981 apud

RANDELSHOFER, Werner]:

Localização e orientação dos cantos: inicialmente, cada canto do cubo possui

um identificador “n”, que está presente na matriz “cantoLocalizacao[n]”, onde “n”

varia de 0 à 7, representando as 8 peças de cantos existentes no cubo mágico.

Quanto à orientação dos cantos, o identificador “n” está presente na matriz

“cantoOrientacao[n]”, onde “n” varia entre os valores 0 (orientação inicial), 1 (canto

girado no sentido anti-horário) e 2 (canto girado no sentido horário). A figura 4.6

representa a ilustração gráfica desta parte do modelo. Nos números em ponto

flutuante, o valor antes do ponto indica a localização dos cantos (os valores da

matriz) “cantoLocalizacao[n]” e os valor depois do ponto indicam a orientação deles

(“cantoOrientacao[n]”).

6.0 4.0 5 0.0 2.0

6.1 0.2 0.1 2.2 2.1 4.2 4.1 6.2 4 0 1 3

7.2 1.1 1.2 3.1 3.2 5.1 5.2 7.1 1.0 3.0 2 7.0 5.0

Figura 4.6 Localização e orientação dos cantos

Localização e orientação dos meios: inicialmente, cada meio do cubo possui

um identificador “n”, que está presente na matriz “meioLocalizacao[n]”, onde o valor

de “n” varia de 0 à 11, representando as 12 peças de meios existentes no cubo

mágico. Quanto a orientação dos meios, o identificador “n” está presente na matriz

“meioOrientacao[n]”, onde “n” varia entre os valores 0 (orientação inicial) e 1 (meio

30

movido). A figura 4.7 representa a ilustração gráfica desta parte do modelo. Nos

números em ponto flutuante, o valor antes do ponto indica a localização dos meios

(os valores da matriz) “meioLocalizacao[n]” e os valor depois do ponto indica a

orientação deles (“meioOrientacao[n]”).

6.1 9.0 5 3.0 0.1 9.1 0.0 3.1 6.0

10.0 4 1.0 1.1 0 4.1 4.0 1 7.0 7.1 3 10.1 11.1 2.0 5.1 8.0 2.1 11.0 2 5.0 8.1

Figura 4.7 Localização e orientação dos meios

Localização e orientação dos centros: inicialmente, cada centro do cubo

possui um identificador “n” e está presente em uma matriz “centroLocalizacao[n]”,

onde os valores de “n” variam de 0 à 5, representando os 6 centros existentes no

cubo mágico e cada centro é usado como referência para a determinação de uma

face. Quanto a orientação dos centros, o identificador “n” está presente em uma

matriz “centroOrientacao[n]”, onde “n” varia entre os valores 0 (orientação inicial), 1

(face representada pelo centro movida para a esquerda), 2 (face representada pelo

centro movimentada 180°) e 3 (face representada pelo centro movimentada para a

direita). A figura 4.8 representa a ilustração gráfica desta parte do modelo. Nos

números em ponto flutuante, o valor antes do ponto indica a localização dos centros

(os valores da matriz) “centroLocalizacao[n]” e os valores depois do ponto indicam a

orientação deles (“centroOrientacao[n]”).

.1 .0 5 .2 .3 .1 .2 .3 .0

.0 4 .2 .1 0 .3 .2 1 .0 .3 3 .1 .3 .0 .1 .2 .3 .2 2 .0 .1

Figura 4.8 Localização e orientação dos centros

31

As três propriedades do modelo citadas acima descrevem as configurações

básicas sobre posicionamento das peças em relação a si mesmas e em relação às

demais. Foi fundamental entendê-las para dar prosseguimento ao projeto.

Resumindo o modelo, é possível dizer que ele se caracteriza por atribuir um

valor a cada “peça” do cubo virtual e por considerar o posicionamento de cada peça

em relação à posição inicial ocupada por elas.

A partir desse modelo, são criadas outras três estruturas necessárias para a

realização dos movimentos em um cubo, explicadas a seguir:

- Indicação do eixo (X, Y, Z) em que o movimento será realizado. Por se

tratar de um cubo mágico, as três dimensões devem ser consideradas, mesmo com

o código baseado em bibliotecas para desenhos em duas dimensões. Desse modo,

cada eixo possibilita a movimentação de três camadas do cubo, quem têm seu

centro transpassado pelo eixo em questão. Para exemplificar, considere a Figura

4.18 e também que a face frontal é a face na cor azul, a superior na cor amarela e a

direita na cor vermelha. Quando for necessária a realização de um movimento6 na

face azul (F ou F'), esse movimento deve ser sobre o eixo Z, na face amarela (U ou

U') o movimento deve ser no eixo Y e na face vermelha (R ou R') o movimento deve

ser no eixo X.

Figura 4.9 Aplicativo Rubik’s Cube

- Possibilidade de escolher qual combinação de camadas em relação a um

eixo deve ser movimentada. Por exemplo, considerando a Figura 4.9 e tendo como

6 Para melhor entendimento dos movimentos, vide Anexo III Notação dos Movimentos.

32

referência a face azul, podemos fazer desde um simples movimento F (que utiliza

apenas uma camada), até um movimento Z (que utiliza todas as camas paralelas à

face azul).

- Possibilidade de escolher o sentido do movimento entre horário e anti-

horário.

A partir das informações citadas acima, todas as operações com o cubo

virtual são implementadas e disponibilizadas ao usuário em uma tela, construída

sobre um componente JAVA, com o nome de Canvas, que faz parte do pacote

'java.awt'. Esse componente possibilita a construção de uma área na tela em que é

possível a inserção e a renderização do cubo virtual, além das ações

disponibilizadas ao usuário.

4.6 Interface entre Inteligência e Visão

A integração da parte inteligente do Sistema Tutor com o cubo virtual (parte

de interface) acontece de forma bem simples, sendo necessário conhecer as

combinações de parâmetros necessárias para a realização dos movimentos.

O método chamado para a efetivação do movimento no cubo virtual tem a

seguinte assinatura: public void transform(int axis, int layerMask, int angle). Os

parâmetros têm o seguinte significado:

• axis: indica sobre qual eixo o movimento será executado (X, Y ou Z).

Pode receber os valores 0(eixo X), 1(eixo Y) e 2(eixo Z).

• layerMask: indica qual a combinação de camadas será movimentada.

Recebe valores entre 1 e 7.

• angle: indica o sentido e a quantidade de movimentos. Pode receber os

valores 1 (volta de 90° no sentido horário), -1(volta de 90° no sentido anti-

horário), 2(volta de 180° no sentido horário) e -2(volta de 180° no anti-

sentido horário).

Através do conhecimento desta estrutura, foi possível a realização de

diversos movimentos no cubo virtual. A classe que contém esse método é criada no

momento da criação da Classe de interface com o jogador, viabilizando seu acesso.

33

4.7 Matriz, a parte Inteligente do Cubo

O cubo mágico utilizado no projeto possui dimensão 3x3x3 e é composto por

seis cores diferentes: azul, vermelho, verde, laranja, amarelo e branco – que

representam as faces do cubo. As faces, por sua vez, são compostas por nove

quadrados, que somados dão um total de 54.

A fim de tornar possível a representação de todas as peças do cubo foi

implementada uma matriz tridimensional. Sua primeira posição representa as faces,

variando de zero a cinco. As outras duas posições representam a localização do

quadrado na face, que é mais facilmente entendida quando feita uma analogia a um

plano cartesiano com pontos (x,y), onde x seria a linha em que o quadrado se

encontra e y a coluna. Com essa matriz foi possível representar os 54 quadrados do

Cubo Mágico.

4.7.1 Representação

A fim de se obter uma melhor visibilidade do que acontece com a matriz, foi

desenvolvida uma interface de duas dimensões que respeita os modelos abaixo:

Figura 4.10 Matriz tridimensional

36 37 38 39 40 41 42 43 44 27 28 29 0 1 2 9 10 11 18 19 20 30 31 32 3 4 5 12 13 14 21 22 23 33 34 35 6 7 8 15 16 17 24 25 26 45 46 47 48 49 50 51 52 53

Figura 4.11 Rótulos de cada posição da matriz

34

4.7.2 Execução de Movimentos

Independente da origem (usuário ou sistema), cada movimento é enviado à

matriz para que ela seja alterada. Supondo que o cubo esteja no estado resolvido,

conforme pode ser observado na Figura 4.11 e que o movimento R, representado no

Anexo Notação dos Movimentos seja executado, as seguintes permutações ocorrem

entre os elementos da matriz:

[0][0][2] ↔ [5][0][2];

[0][1][2] ↔ [5][1][2];

[0][2][2] ↔ [5][2][2];

[2][2][0] ↔ [4][0][2];

[2][1][0] ↔ [4][1][2];

[2][0][0] ↔ [4][2][2];

[5][0][2] ↔ [2][2][0];

[5][1][2] ↔ [2][1][0];

[5][2][2] ↔ [2][0][0];

[4][0][2] ↔ [0][0][2];

[4][1][2] ↔ [0][1][2];

[4][2][2] ↔ [0][2][2];

Resultado visual da matriz após o movimento:

Figura 4.12 Resultado da execução do movimento R

Com isso, sempre que o usuário exigir que o cubo seja resolvido, o Sistema

verificará a matriz e de acordo com os algoritmos de resolução do cubo ordenará

seus elementos.

35

5 PLANEJAMENTO DO PROJETO

5.1 Plano do Processo de Desenvolvimento

5.1.1 Ciclo de Vida do Projeto

O conjunto de fases do projeto é chamado de “ciclo de vida do projeto”. Os

modelos que o descrevem surgiram devido à necessidade de estruturar o

desenvolvimento do software e fornecer um roteiro razoavelmente efetivo para que

as equipes desenvolvedoras atinjam seus objetivos (PRESSMAN, 2006, adaptado).

Para o desenvolvimento de um software, existem modelos já estudados e

definidos, como por exemplo: o cascata, os incrementais (Incremental e RAD), os

evolucionários (Prototipagem, Espiral e de Desenvolvimento Concorrente) e o

processo unificado. No entanto, cada um deve ser adaptado para que seja usado

efetivamente em um projeto de software específico. Para o desenvolvimento do

SISCUBE foi adotado o ciclo de vida descrito no modelo do Processo Unificado, com

algumas adaptações. A seguir, seguem os motivos que levaram o grupo a utilizar

este ciclo de vida:

• Utiliza a UML – Unified Modeling Language – no preparo dos artefatos do

sistema;

• Orienta-se por casos de uso, o que permite que o processo de

desenvolvimento siga um fluxo (análise, projeto, implementação e teste)

derivado da descrição dos casos de uso;

• Tem a arquitetura como elemento central, o que facilita na construção do

projeto, pois a partir dela se obtém a estrutura que guia cada iteração.

• É iterativo e incremental, o que permite a evolução do projeto com o

decorrer do tempo.

Assim como ocorre no ciclo de vida do PU, o projeto passará pelas seguintes

fases:

• Concepção: fase em que será dada ênfase à comunicação e ao

planejamento. A comunicação ocorrerá entre os membros do grupo e

entre o grupo e o orientador, com o objetivo de definir as necessidades

daqueles que usarão o sistema e conseqüentemente suas características.

Tratando-se de planejamento, serão desenvolvidos o documento visão e

a especificação dos principais casos de uso, considerados os mais

36

críticos, Acessar Tutorial 3D, Treinar Cubo Virtual e Jogar Cubo Virtual.

Detalhes sobre os casos de uso podem ser consultados no Anexo I –

Especificação dos Casos de Uso.

• Elaboração: será subdividida em duas subfases: (1) análise, em que será

dada continuidade à comunicação, todavia com o objetivo diferente:

refinar as necessidades e características levantadas na fase de

concepção. Nela serão desenvolvidos os demais casos de uso. (2)

Projeto, cujo objetivo será modelar os casos de uso críticos com foco na

criação de modelos de análise e projeto com ênfase nas definições de

classes e representações arquiteturais.

• Construção: serão refinados e então traduzidos o modelo de projeto para

componentes de software.

• Transição: fase em que o sistema será testado e posteriormente colocado

no site (www.cubomagicobrasil.com).

• Produção: fase que terá como objetivo oferecer o monitoramento e

suporte contínuo ao sistema.

A seguir, na figura 5.1, pode ser observado a relação disciplina x fase

ocorrente em muitos projetos que utilizam o ciclo de vida descrito no modelo do

Processo Unificado:

Figura 5.1 Representação do ciclo de vida do PU

5.1.2 Métodos de Desenvolvimento e Ferramentas CASE

Para o desenvolvimento do projeto foi utilizada a técnica de Descrição do

Documento Visão, técnica de Descrição de Caso de Uso e a Técnica do Larman de

37

Análise e Projeto Orientado a Objetos, com utilização de Design Patterns - DTO,

DAO e Factory. As páginas WEB do projeto foram criadas seguindo o padrão

XHTML de desenvolvimento.

O código do projeto é baseado no padrão de arquitetura MVC (Model-view-

controller), o que permite a fácil manutenção do código, uma vez que a manipulação

de dados não é afetada com a alteração do layout e vice-versa. Neste modelo para o

projeto são utilizadas seis camadas: visão, action, model, DAO, DTO e ch, que são

explicadas no capítulo 7.

Ferramentas CASE (Computer-Aided Software Engineering) são as

ferramentas baseadas em computadores que auxiliam na engenharia de software,

desde análise de requisitos e modelagem até programação e testes. As utilizadas no

projeto foram:

• Jude Community – software Jude para desenvolvimento UML. Utilizado na

elaboração do modelo de domínio, diagrama de casos de uso e realização

dos casos de uso (diagramas de seqüência e de classes).

• MS Project – software da Microsoft para gestão de projetos. Esta

ferramenta foi utilizada no planejamento cronológico das atividades que

compõem o projeto.

5.1.3 Linguagens de Programação

A linguagem utilizada no desenvolvimento do projeto foi Java e se encaixou

perfeitamente nas necessidades existentes. Como o projeto é um incremento de

uma aplicação existente, utilizar a mesma linguagem de programação para continuar

o trabalho foi muito importante para evitar possíveis incompatibilidades, como, por

exemplo, no caso de tentar fazer uma integração com programas de naturezas

diferentes. A experiência acadêmica adquirida nas disciplinas de programação foi

outro fator que contribuiu para a escolha desta linguagem.

Java é uma linguagem de programação orientada a objetos inicialmente

desenvolvida pela Sun Microsystems e lançada em 1995. A linguagem deriva grande

parte da sua sintaxe de C / C + +, mas tem um modelo mais simples e menos

objetos de baixo nível. Aplicações Java são normalmente compiladas para um

38

bytecode7 que pode ser executado em qualquer máquina virtual Java (Java Virtual

Machine), independentemente da arquitetura do computador. A partir de maio de

2007, em conformidade com as especificações do Java Community Process, Sun

passou a disponibilizar a maior parte de suas tecnologias Java como software livre

sob a GNU General Public License (GPL).

Figura 5.2 Logomarca Java

5.1.4 Ambiente de Hardware para Desenvolvimento

O ambiente de hardware para desenvolvimento do projeto se refere à

especificação da topologia de hardware (equipamentos e conexões) que fornece a

plataforma que dá suporte às ferramentas (software) necessárias para produzir os

produtos de trabalho. O ambiente utilizado no desenvolvimento do SISCUBE é

composto pelos seguintes equipamentos:

• Dois notebooks DELL Core 2 Duo 2.0 GHz, 4 GB de memória RAM, 120

GB de HD, Windows Vista Home Basic;

• Hum notebook HP Pavilion AMD Sempron 3.400+, 2 GB de memória

RAM, 120 GB de HD, Linux Ubuntu.

7 É o resultado de um processo semelhante ao dos compiladores de código-fonte que não é

imediatamente executável. Em oposição, o bytecode é interpretado numa máquina virtual, que o

executa. Desta forma, o bytecode é um estágio intermédio entre o código-fonte (escrito numa

linguagem de programação específica) e a aplicação final, sendo a sua vantagem principal a

dualidade entre a portabilidade — o bytecode produz o mesmo resultado em qualquer arquitetura — e

a ausência da necessidade do pré-processamento típico dos compiladores — o bytecode é encarado

como um produto final, cuja validação da sintaxe e tipos de dados (entre outras funções dos

compiladores) é necessária.

39

5.2 Plano de Organização

O plano de organização inclui um conjunto de práticas gerenciais e técnicas

que permite à equipe de software (gerência e desenvolvimento) definir um roteiro

enquanto ela se move em direção a sua meta estratégica e seus objetivos táticos. É

nele, também, que se definem os papéis que cada um exerce na equipe.

5.2.1 Equipe de Gerência

A equipe de desenvolvimento é formada por um Gerente de Projeto, que

exerce o papel de líder do grupo. Cabe ao gerente: (1) motivar – encorajar a equipe

de desenvolvimento a produzir no melhor de sua capacidade; (2) organizar – moldar

ou inventar processos que viabilizem a meta estratégica e os objetivos táticos; (3)

definir marcos, pontos de controle, planos e métodos de acompanhamento, além de

verificar e mitigar eventuais riscos. Esta atividade será realizada pelo Bruno.

5.2.2 Equipe de Desenvolvimento

A equipe de desenvolvimento é formada por desenvolvedores Java e

analistas de requisitos. Ambas as funções são desempenhadas pelos três

integrantes da equipe de projeto (Bruno, Carlos e Rodrigo).

As atividades dos desenvolvedores são as seguintes:

• Bruno: estudo do aplicativo Rubik’s Cube e do desenvolvimento de

applets, bem como a implementação do tutorial com o cubo mágico

virtual.

• Carlos: estudo dos métodos de resolução do cubo mágico, bem como a

implementação da funcionalidade na qual o usuário joga com o cubo

mágico virtual.

• Rodrigo: desenvolvimento das páginas web e seus respectivos casos de

uso, bem como a implementação do treinamento com o cubo mágico

virtual.

5.3 Plano de Acompanhamento

Há muitos motivos que causam problemas em projetos de software, tais como

a complexidade do que será desenvolvido e as significativas dificuldades em

40

coordenar membros da equipe. A incerteza é comum, e resulta em uma contínua

corrente de modificações que perturba a equipe de software.

Para lidar efetivamente com os problemas que surgem ao longo do processo

de desenvolvimento de software, é necessário estabelecer métodos específicos para

coordenar aqueles que o desenvolvem. Para tanto, mecanismos para comunicação

formal e informal entre os membros da equipe de software devem ser planejados e

executados – o plano de acompanhamento deve ser feito.

5.3.1 Marcos e Pontos de Controle

O cronograma do projeto, baseado nas fases do ciclo de vida adotado,

fornece o roteiro para a equipe de desenvolvimento. Nele, tarefas e marcos são

definidos e devem ser acompanhados e controlados à medida que o projeto

prossegue. A tabela a seguir apresenta as fases do ciclo de vida com seus

respectivos marcos:

Fases do Ciclo de Vida Marco

Concepção

Comunicação

Planejamento

Validação do documento visão

Validação da especificação dos casos de

uso críticos AcessarTutorial3D,

TreinarCuboVirtual e JogarCuboVirtual

Elaboração

Análise

Projeto

Validação da especificação dos demais

casos de uso e do modelo de domínio.

Validação do modelo de análise e

arquitetura dos casos de uso críticos

AcessarTutorial3D, TreinarCuboVirtual e

JogarCuboVirtual.

Construção Validação da implementação do sistema.

Transição Implantação dos casos de uso críticos

no site www.cubomagicobrasil.com

Tabela 5.1 Marcos e Pontos de Controle

41

5.3.2 Métodos de Acompanhamento e Controle

Para acompanhamento do projeto, serão realizadas reuniões semanais com o

professor orientador, com o intuito de verificar possíveis mudanças de requisitos,

para que os mesmos possam ser corrigidos, para que o software seja desenvolvido

de acordo com o prazo estabelecido e para que seja feito o controle de

conformidade em relação ao planejamento de projeto e ao regimento do projeto final.

Reuniões semanais entre os membros do grupo também ocorrerão e sua

freqüência irá variar de acordo com as necessidades a andamento do projeto.

5.3.3 Análise e Gerência de Riscos

Em um projeto de software, uma grande variedade de riscos pode ocorrer,

uns com menos outros com mais freqüência, variando desde desentendimentos

entre componentes da equipe até o não cumprimento de prazos. Os riscos

identificados para o projeto SISCUBE foram:

1. Não obedecer aos prazos do cronograma: o projeto corre o risco de não

cumprir os prazos do cronograma, pois envolve a utilização de Applet e de um

componente livre (Rubik’s Cube) e a equipe de desenvolvimento deve pesquisar e

entender ambos. Todos os integrantes da equipe desenvolvem outras atividades

(curso e trabalho).

2. Desenvolvimento de uma interface não apropriada: o projeto corre o risco

de não possuir uma interface intuitiva e de fácil entendimento, dificultando sua

utilização.

3. Não conseguir implementar certas funcionalidades pela falta de

conhecimento avançado das tecnologias utilizadas.

4. Incoerência com o planejamento do sistema: com o andamento do projeto e

o desenvolvimento do sistema, algumas características (funcionalidades) podem ser

alteradas, e a não alteração também nos documentos correspondentes (diagramas,

descrições) pode gerar incoerência entre os documentos do projeto.

Risco Prob. Imp. Prioridade Mitigação Contingência

1 50% A Alta Estabelecer um

tempo maior para as

Reestruturar o

cronograma e

42

pesquisas

necessárias e

reuniões para

verificação e

acompanhamento do

cronograma

verificar quais

funcionalidades

podem ser

suprimidas para

que um projeto

funcional possa

ser entregue.

2 30% A Média Verificar com

possíveis usuários a

usabilidade da

aplicação

Verificar com

usuários reais

quais as

dificuldades

encontradas em

manipular a

aplicação e

realizar as

alterações

necessárias

3 50% R Baixa Pesquisar sobre as

tecnologias

necessárias

Verificar se essa

funcionalidade

pode ser

suprimida. Em

caso negativo,

verificar quais

funcionalidades

podem ser

suprimidas para

que haja mais

tempo para

solução do

problema.

4 20% R Média Manter sempre

atualizados os

documentos e

Corrigir as

incoerências.

43

verificá-los nas

reuniões.

Tabela 5.2 Riscos

CA (Catastrófico) Custo excede ao planejado

para a manutenção em 50% do custo

planejado.

CR (Crítico) O custo do risco excede ao

planejado no intervalo de 10% a 50%

do total planejado.

MA (Marginal) Probabilidade menor que 10%.

Tabela 5.3 Impactos

5.4 Plano de Documentação

5.4.1 Documentos do Projeto

Durante as fases técnicas do Processo Unificado foram desenvolvidos

diversos documento. Dentre eles podemos citar:

Concepção Elaboração Construção

- Documento Visão

- Especificação dos casos de

uso críticos (AcessarTutorial3D,

TreinarCuboVirtual e

JogarCuboVirtual)

- Glossário inicial do projeto

- Plano de projeto

- Modelo de Domínio

- Diagrama de Casos de

Uso

- Diagrama de Seqüência

do Sistema dos casos de

uso críticos

- Contratos de Operação

dos casos de uso críticos

- Diagramas de Seqüência

dos casos de uso críticos

- Arquitetura Lógica

- Diagrama de Pacotes

- Javadoc

Tabela 5.4 Documentos do Projeto

44

5.5 Plano de Recursos e Produtos

5.5.1 Recursos Humanos

Nome Função Telefone E-mail

Bruno Cavalcanti Freitas

Gerente de Projeto, Analista e

Desenvolvedor 8431-8125 [email protected]

Carlos Alberto de Alcântara Júnior

Analista e Desenvolvedor 9681-9457 [email protected]

Rodrigo Maciel Galvão

Analista e Desenvolvedor 9663-6034 [email protected]

Tabela 5.5 Recursos Humanos

5.5.2 Recursos de Hardware

Discriminação Quantidade Valor Unitário Valor Total

Notebook DELL Core 2 Duo 2.0GHz, 4GB de RAM, 120GB de HD, Windows Vista Home Basic

2 R$3.000,00 R$6.000,00

Notebook HP Pavilion AMD Sempron 3.400+, 2GB de RAM, 120GB de HD, Linux Ubuntu

1 R$1.800,00 R$1.800,00

TOTAL R$7.800,00

Tabela 5.6 Recursos de Hardware

5.5.3 Recursos de Software

Discriminação Valor Unitário Valor Total Eclipse Europa - - Jude Community 5 - - MySQL Server 5.0 - - Apache Tomcat 5.0 - - Pacote JDK 5.0 – Java Development Kit - -

Tabela 5.7 Recursos de Software

5.6 Cronograma

Tarefa Responsável Início Fim

Concepção

Comunicação

Levantar Requisitos Bruno,

Carlos,

Rodrigo

18/02/08 23/02/08

Definir documento visão Bruno, 25/02/08 08/03/08

45

Carlos,

Rodrigo

Planejamento

Identificar casos de uso e atores Bruno,

Carlos,

Rodrigo

10/03/08 13/03/08

Descrever caso de uso crítico Acessar

Tutorial 3D

Bruno,

Carlos,

Rodrigo

13/03/08 22/03/08

Descrever caso de uso crítico Treinar Cubo

Virtual

Bruno,

Carlos,

Rodrigo

24/03/08 03/04/08

Descrever caso de uso crítico Jogar Cubo

Virtual

Bruno,

Carlos,

Rodrigo

03/04/08 12/04/08

Elaborar glossário Bruno,

Carlos,

Rodrigo

18/02/08 12/04/08

Elaboração

Análise

Refinar requisitos Bruno,

Carlos,

Rodrigo

14/04/08 17/04/08

Refinar documento visão Bruno,

Carlos,

Rodrigo

17/04/08 24/04/08

Elaborar modelo de domínio Bruno 24/04/08 30/04/08

Elaborar diagrama de casos de uso Bruno,

Carlos,

Rodrigo

14/04/08 14/04/08

Refinar caso de uso crítico Acessar Tutorial

3D

Bruno 24/04/08 30/04/08

Refinar caso de uso crítico Treinar Cubo Rodrigo 24/04/08 30/04/08

46

Virtual

Refinar caso de uso crítico Jogar Cubo

Virtual

Carlos 24/04/08 30/04/08

Descrever caso de uso Cadastrar Usuário Rodrigo 30/04/08 10/05/08

Descrever caso de uso Efetuar Login Rodrigo 30/04/08 10/05/08

Descrever caso de uso Manter Cadastro Rodrigo 30/04/08 10/05/08

Descrever caso de uso Pesquisar Usuário Rodrigo 30/04/08 10/05/08

Descrever caso de uso Entrar Contato

Administradores

Carlos 30/04/08 10/05/08

Descrever caso de uso Enviar Mensagem

Pessoal

Carlos 30/04/08 10/05/08

Refinar glossário Bruno,

Carlos,

Rodrigo

14/04/08 10/05/08

Projeto

Elaborar o Diagrama de Seqüência do

Sistema(DSS) e o contrato de operações do

caso de uso crítico Acessar Tutorial 3D

Bruno 12/05/08 31/05/08

Elaborar o Diagrama de Seqüência do

Sistema(DSS) e o contrato de operações do

caso de uso crítico Treinar Cubo Virtual

Rodrigo 12/05/08 31/05/08

Elaborar o Diagrama de Seqüência do

Sistema(DSS) e o contrato de operações do

caso de uso crítico Jogar Cubo Virtual

Carlos 12/05/08 31/05/08

Efetuar a realização (criação dos diagramas

de seqüência e de classes) do caso de uso

crítico Acessar Tutorial 3D

Bruno 31/05/08 21/06/08

Efetuar a realização (criação dos diagramas

de seqüência e de classes) do caso de uso

crítico Treinar Cubo Virtual

Rodrigo 31/05/08 21/06/08

Efetuar a realização (criação dos diagramas

de seqüência e de classes) do caso de uso

crítico Jogar Cubo Virtual

Carlos 31/05/08 21/06/08

47

Definir arquitetura lógica e diagrama de

pacotes

Bruno 01/08/08 16/08/08

Refinar glossário Bruno,

Carlos,

Rodrigo

12/05/08 21/06/08

Construção

Implementar caso de uso Acessar Tutorial

3D

Bruno 18/08/08 19/11/08

Implementar caso de uso Treinar Cubo

Virtual

Rodrigo,

Bruno

18/08/08 19/11/08

Implementar caso de uso Jogar Cubo Virtual Carlos 18/08/08 19/11/08

Definir o layout de site Rodrigo 15/09/08 27/09/08

Implementar caso de uso Cadastrar Usuário Rodrigo 29/09/08 11/10/08

Implementar caso de uso Efetuar Login Rodrigo 13/10/08 18/10/08

Implementar caso de uso Manter Cadastro Rodrigo 03/11/08 08/11/08

Implementar caso de uso Pesquisar Usuário Rodrigo 20/10/08 22/10/08

Implementar caso de uso Entrar Contato

Administradores

Bruno, Carlos 03/11/08 08/11/08

Implementar caso de uso Enviar Mensagem

Pessoal

Bruno, Carlos 03/11/08 08/11/08

Tabela 5.8 Cronograma

5.7 Glossário

Termo Significado

Algoritmo Básico de

Resolução

É o algoritmo que apresenta os passos mais

simples e compreensíveis para resolução do cubo

mágico. Em contrapartida, normalmente são

executados mais movimentos.

Algoritmo de Embaralhamento Seqüência de movimentos aleatórios que é gerada

por um sistema para que o cubo seja embaralhado.

Os movimentos são representados por letra

conforme o Anexo III – Notação dos Movimentos.

Camada O Cubo Mágico possui três camadas.

48

Cubo Mágico Brinquedo com o formato de cubo cujas faces

coloridas são giráveis.

Cubo Mágico Virtual Representação do cubo mágico em um

computador.

Embaralhar Misturar as cores do cubo, tirá-lo de seu estado

original.

Etapa Seqüência de passos que visam alcançar a

resolução de determinada parte do cubo mágico.

Face Lado do cubo. O cubo possui 6 faces(lados).

Fase de Inspeção Momento em que o jogador avalia a condição atual

do cubo para planejar os primeiros movimentos

que fará quando começar a resolvê-lo.

Fridrich Nome da criadora e do método avançado de

resolução do cubo mais conhecido e utilizado pelos

experts.

Nível Grau de complexidade da resolução, o nível básico

consiste no mínimo necessário para a resolução do

cubo, já o nível intermediário visa economizar

movimentos considerando mais possibilidades de

combinação do cubo.

Orientação Diz respeito ao posicionamento da peça em

relação a ela mesma. Orientar uma peça de canto,

por exemplo, significa girar esse canto sem

permutá-lo.

Passo Movimentação específica, pequenos grupos de

movimentos. Vários passos compõem uma etapa.

Permutação É a troca de posição que ocorre entra duas peças,

em que uma ocupa o lugar da outra.

Speedcubing Esporte relacionado ao cubo mágico,

essencialmente baseado na velocidade usada para

sua resolução.

Tabela 5.9 Glossário

49

6 ESPECIFICAÇÃO DOS REQUISITOS DO SISTEMA

6.1 Descrição do Problema

Com o decorrer dos últimos meses o nosso interesse fez com que o cubo

mágico se tornasse parte do nosso cotidiano e inúmeras vezes nos encontramos

com pessoas que também se interessam em aprender e brincar com o cubo. No

entanto, devido à complexidade em resolvê-lo e à escassez de fontes de

aprendizado didáticas e dinâmicas, essas pessoas desistem do desafio de concluir

os passos necessários para resolução do cubo.

Com base nestes problemas, nosso projeto propõe um tutorial dinâmico, em

que o usuário irá interagir com um cubo mágico virtual representado em três

dimensões, manipulando-o da forma que quiser e recebendo dicas e orientações do

sistema quanto às etapas de resolução.

Acreditamos que com essa ferramenta de aprendizado, mais pessoas se

interessarão em conhecer um pouco mais sobre este quebra-cabeça sensacional e

sobre os benefícios mentais que ele proporciona.

6.2 Identificação dos Interessados

São considerados interessados no SISCUBE todos que têm curiosidade em

aprender a resolver o cubo mágico, pois são eles o público-alvo do projeto.

6.3 Descrição das necessidades dos interessados

Tendo em vista que o Sistema desenvolvido não é voltado para um público-

alvo específico, mas sim para uma gama ampla de usuários, foi constatado que não

há necessidades, mas sim um objetivo bem definido: fazer com que qualquer

usuário possa aprender a resolver o cubo mágico.

6.4 Descrição das características do sistema

São principais características do sistema:

• Apresentar um tutorial dinâmico e interativo sobre a resolução do cubo

mágico, que proporcione facilidades para o entendimento do usuário,

como por exemplo:

o Destaque visual das peças que serão movimentadas.

50

o Explicações textuais dos passos executados.

• Permitir ao usuário treinar no cubo virtual os conhecimentos adquiridos.

• Oferecer funcionalidades adicionais como cronometragem para que o

usuário acompanhe seu progresso.

• Disponibilizar as funcionalidades do sistema em um site, para facilitar o

acesso dos usuários.

• Permitir no site que os usuários interajam entre si para trocar idéias, tirar

dúvidas, etc.

• Apresentar no site histórico, artigos e notícias sobre o cubo mágico, além

de links que levem o usuário a páginas relacionadas, para que ele se

contextualize em relação ao tema proposto.

• Disponibilizar manuais em PDF com conteúdo explicativo dos métodos de

resolução do cubo.

6.5 Requisitos do software

O sistema deverá ser capaz de atender os seguintes requisitos:

• Ensinar ao usuário, por etapas e de forma didática e interativa, como

resolver o cubo mágico.

• Permitir que o usuário treine as etapas aprendidas e obtenha, caso

deseje, dicas para ajudá-lo no treinamento.

• Permitir que o usuário marque o tempo e quantidade de movimentos

despendidos na tentativa de resolução do cubo.

• Cadastrar usuários no sistema e permitir que os mesmos editem os dados

informados no cadastro.

• Permitir que os usuários troquem mensagens entre si.

• Permitir que os usuários entrem em contato com os administradores

(idealizadores/desenvolvedores do projeto).

• Informar sobre notícias e eventos, histórico e artigos concernentes com o

tema proposto.

51

6.6 Restrições

O núcleo do sistema, formado pelo ensinamento, treinamento e marcação de

tempos/quantidade de movimentos é baseado na linguagem de programação Java.

Tendo em vista que estas funcionalidades serão disponibilizadas em um site através

de um Applet (programa escrito na linguagem de programação Java que pode ser

incluído em uma página HTML, http://java.sun.com/applets/), será necessário que o

usuário tenha instalado em seu computador a Máquina Virtual Java (JVM – Java

Virtual Machine) para que o programa seja carregado e executado.

52

7 DIAGRAMAS UML

7.1 Modelo de Domínio

Figura 7.1 Modelo de Domínio

53

7.2 Visão Geral dos Casos de Uso e Atores

Figura 7.2 Diagrama de Casos de Uso

A especificação dos casos de uso pode ser vista no Anexo I – Especificação

dos Casos de Uso. A análise e projeto dos casos de uso críticos: Acessar Tutorial

3D, Treinar Cubo Virtual e Jogar Cubo Virtual encontram-se no Anexo II –

Realização dos Casos de Uso críticos.

54

7.3 Modelo de Arquitetura

Figura 7.3 Modelo de Arquitetura

55

Conforme mencionado no tópico 5.1.2, o modelo de arquitetura do projeto é

dividido em seis camadas: visão, action, model, DAO, DTO e ch. Segue, a seguir,

uma explicação sucinta de cada camada:

• Visão: camada onde se encontram as classes responsáveis pela

apresentação do sistema. Exemplo: as telas de interface com o usuário.

• Action: camada onde se encontram as classes que respondem às ações

realizadas pelo usuário. Exemplo: “cliques” nos botões.

• Model: camada onde se encontram todas as regras de negócio

necessárias ao sistema. Exemplo: representação, movimentação e

resolução do cubo mágico.

• DAO: camada responsável pela persistência dos dados, ou seja, camada

que contém as classes que se comunicam com a base de dados.

• DTO: camada que contém as classes que podem “navegar” entre as

camadas do software de maneira livre. Exemplo: o Usuário.

• Ch: camada que contém a aplicação Rubik’s Cube

7.4 Diagrama de Implantação

56

8 DIFICULDES ENCONTRADAS

A primeira dificuldade encontrada foi em relação à compreensão do código

original da interface gráfica do cubo virtual 3D. Muitas das lógicas utilizadas pelo seu

desenvolvedor Werner Randelshofer eram consideravelmente complexas, devido à

dificuldade de representar os componentes do cubo mágico graficamente. Esse fator

dificultou o entendimento das propriedades que estavam sendo consideradas.

Durante o ápice do desenvolvimento do sistema, um dos obstáculos

enfrentados com maior significância foi quanto à utilização de Threads em Java.

Este recurso foi necessário para permitir que ocorressem mais de uma operação do

sistema simultaneamente, como a manipulação do cubo enquanto o tempo de

inspeção ou cronômetro estivesse em execução e quando diferentes peças

precisassem ficar piscando durante o tutorial. A dificuldade enfrentada foi no

tratamento da concorrência entre as Threads, que foi superada com a utilização de

combinadas variáveis Flag para que as tarefas fossem executadas sem intervir nas

outras quando não fosse conveniente.

Outra relevante dificuldade encontrada também se deu em relação ao applet.

Por questões de segurança, ele é executado na máquina do cliente com acesso

muito restrito aos recursos existentes, característica que dificultou muito a inserção

das imagens. Porém, o applet tem acesso total aos arquivos presentes em seu ‘.jar’.

Então a solução era encontrar um modo de inserir as imagens necessárias dentro do

próprio applet, para que as mesmas pudessem ser mostradas ao usuário. Isso se

tornou possível graças ao método ‘getClass().getResource(“caminhoImagem”)’ que

retorna o caminho completo de onde se encontra a classe em questão. A partir

disso, foi possível inserir imagens dentro do arquivo ‘.jar’ referente ao applet, e onde

ele fosse baixado na máquina do cliente seria possível identificar sua localização e

acrescentar as imagens à tela, informando seu endereço em relação à classe em

questão.

57

9 CONCLUSÃO

Os principais objetivos definidos no início do projeto foram alcançados com

satisfação dos interessados, visto que através do produto final gerado pelo projeto é

possível aprender a resolver o cubo mágico e colocar em prática a teoria aprendida

através de uma interface bastante interativa.

Os resultados foram alcançados graças ao estudo das principais dificuldades

que uma pessoa tem quando tenta aprender a resolver o cubo através de um tutorial

tradicional, que peca principalmente pela falta de interatividade com o usuário, que

muitas vezes se vê obrigado a lidar com figuras e explicações estáticas.

Devido à diversidade de estágios de aprendizado em que o usuário pode se

encaixar, o projeto permite a seleção da etapa da resolução desejada, o que

viabiliza o progresso do usuário na aprendizagem da resolução do cubo.

Dentre os objetivos iniciais do projeto, alguns tiveram seu cumprimento

adiado, como: o gerenciamento do usuário e da agenda de notícias e

implementação do nível Intermediário de resolução do cubo. Tal fato se deu devido à

complexidade das funcionalidades implementadas, principalmente no que diz

respeito ao Tutorial interativo, ao Treinamento e ao Jogo. O curto prazo para o

desenvolvimento, aliado às outras atividades (demais disciplinas cursadas e

trabalho) exercidas pelos componentes do grupo também foram obstáculos para a

conclusão do projeto ideal.

A realização do projeto possibilitou o aprendizado e aperfeiçoamento de

várias tecnologias (ex: applet), padrões de desenvolvimento e áreas abrangidas no

curso (ex: programação em Java, Banco de Dados e Engenharia de Software), além

viabilizar uma real simulação de todo o processo pelo qual passa o desenvolvimento

de um software.

58

10 BIBLIOGRAFIA

PRESSMAN, Roger. Engenharia de Software. Trad. Rosângela Delloso Penteado. McGraw-Hill,6ª Edição, 2006. LARMAN, Craig. Utilizando UML e Padrões: Uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Trad. Luiz A Meirelles Salgado. Bookman, 3ª Edição, 2007. DEITEL, Harvey M; DEITEL, Paul J. Java Como Programar. Prentice Hall, 6ª Edição, 2005. BANDELOW, Christoph. Einfuehrung in die Cubologie, Vieweg, 1981 apud RANDELSHOFER, Werner WIKIPÉDIA, Wikipédia. Cubo Mágico. http://pt.wikipedia.org/wiki/Cubo_m%C3%A1gico

59

11 ANEXOS

11.1 Anexo I – Especificação dos Casos de Uso

11.1.1 Efetuar Login

Nome do Caso de Uso Efetuar Login

Breve Descrição Este caso de uso tem como objetivo permitir que um

usuário cadastrado se identifique no Sistema.

Atores Usuário identificado, Usuário não identificado,

Administrador

Pré-condições Não se aplica.

Fluxo Principal P1. O caso de uso inicia quando o ator preenche os

campos Usuário e Senha e os submete ao Sistema.

P2. O Sistema valida os campos [RN1] [E1] [E2].

P3. O Sistema apresenta a Foto, Nome, E-mail, Cidade e

Estado do ator identificado, além das opções Editar Perfil e

Sair [E3].

P4. Fim do Fluxo Principal.

Fluxos Alternativos Não se aplica.

Fluxos de Exceção E1. Campo obrigatório não preenchido.

E1.1. Conforme RN1, o Sistema destaca o(s) campo(s)

que não foi(ram) preenchido(s) e apresenta a mensagem:

“Campo obrigatório x não foi preenchido”, onde x é o nome

do campo obrigatório que não foi preenchido.

E1.2. O Sistema retorna ao passo anterior.

E2. Campo inválido.

E2.1. Conforme RN1, o Sistema destaca o(s) campo(s)

que não foi(ram) preenchido(s) corretamente e apresenta a

mensagem: “O campo x informado é inválido”, onde x é o

campo que foi preenchido incorretamente.

E2.2. O Sistema retorna ao passo anterior.

E3. Usuário não encontrado.

60

E3.1. Depois de validar o formulário, o Sistema não

encontra na base de dados um registro com os dados

informados e apresenta a mensagem: “Usuário/Senha

inválidos”.

E3.2. O Sistema retorna ao passo anterior.

Regras de Negócio RN1. Formulário de Login

- Os campos Usuário e Senha deverão ser

obrigatoriamente preenchidos.

- O campo senha deverá conter no mínimo 6 caracteres e

no máximo 12.

- O campo Usuário, representado pelo e-mail informado

pelo usuário no momento do Cadastro deverá ser válido.

Pós-condição O Sistema deverá habilitar todas as funcionalidades para o

ator que se identificar com sucesso.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

Tela 1 Efetuar Login

61

11.1.2 Acessar Tutorial 3D

Nome do Caso de Uso Acessar Tutorial 3D

Breve Descrição Este caso de uso tem como objetivo permitir que o usuário

aprenda a resolver, em etapas, o cubo mágico virtual.

Atores Usuário identificado, Administrador

Pré-condições O usuário/administrador deverá ter se identificado no

sistema.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona Acessar

Tutorial 3D no menu principal do Applet.

P2. O Sistema apresenta o nível Iniciante com suas

respectivas etapas [RN1] e as opções Tutorial e Voltar.

P3. O ator seleciona uma etapa de um nível de

aprendizado e em seguida a opção Tutorial [A1].

P4. O Sistema apresenta o cubo virtual pronto para realizar

o aprendizado da etapa selecionada [RN2], além da opção

Iniciar Aprendizado.

P5. O ator seleciona a opção Iniciar Aprendizado.

P6. O Sistema descreve o que será feito no passo e

apresenta as opções Voltar, Executar e Avançar.

P7. O ator seleciona a opção Executar para que os

movimentos descritos no P6 sejam executados [A2] [A3].

P8. O Sistema retorna ao P6 até que todos os passos da

etapa de aprendizado selecionada tenham sido

executados.

P9. Ao término do aprendizado da etapa, o Sistema

apresenta a opção Finalizar Tutorial.

P10. O ator seleciona a opção Finalizar Tutorial.

P11. O Sistema retorna ao P2.

Fluxos Alternativos A1. Voltar ao menu principal do Applet

A1.1. O ator seleciona a opção Voltar.

A1.2. O Sistema retorna ao menu principal do Applet.

A2. Voltar passo

62

A2.1. O ator seleciona a opção Voltar.

A2.2. O Sistema retorna ao passo apresentado

anteriormente, caso exista.

A2.3. O Sistema retorna ao P6.

A3. Avançar passo

A3.1. O ator seleciona a opção Avançar.

A3.2. O Sistema avança para o passo seguinte, caso

exista.

A3.3. O Sistema retorna ao P6.

Fluxos de Exceção Não se aplica.

Regras de Negócio RN1. Etapas

O Sistema apresenta as seguintes etapas para o nível

iniciante:

• Cruz Branca;

• 1ª Camada;

• 2ª Camada;

• Cruz Amarela;

• Face Amarela;

• Cantos da 3ª Camada;

• Meios da 3ª Camada.

RN2. Organização do Cubo Virtual

O Cubo Virtual será apresentado com uma configuração

condizente com a etapa selecionada.

• Cruz Branca: o Cubo Virtual estará embaralhado.

• 1ª Camada: Cruz Branca pronta.

• 2ª Camada: 1ª Camada pronta.

• Cruz Amarela: 2ª Camada pronta.

• Face Amarela: Cruz Amarela pronta.

• Cantos da 3ª Camada: Face Amarela pronta.

• Meios da 3ª Camada: Cantos da 3ª Camada

prontos.

63

RN3. Documentos associados aos níveis

• Para o nível Iniciante, as descrições necessárias

para a resolução de cada etapa estão presentes no

Anexo IV – Apostila Nível Básico.

• Para o nível Intermediário, as descrições

necessárias para a resolução de cada etapa estão

presentes no Anexo V – Apostila Nível

Intermediário.

Pós-condição Não se aplica.

Pontos de Extensão PE1. Treinar Cubo Virtual

O caso de uso estende ao caso de uso Treinar Cubo

Virtual.

Características

suplementares

Não se aplica.

Tela 2 Tela Principal do Applet, acessada nos casos de uso AcessarTutorial3D,

TreinarCuboVirtual e JogarCuboVirtual

64

Tela 3 Tela de Níveis e Etapas, acessada nos casos de uso AcessarTutorial3D e

TreinarCuboVirtual

Tela 4 Acessar Tutorial 3D

65

11.1.3 Treinar Cubo Virtual

Nome do Caso de Uso Treinar Cubo Virtual

Breve Descrição Este caso de uso tem como objetivo permitir que o usuário

treine a resolução de cada etapa com auxílio do Sistema.

Atores Usuário identificado, Administrador

Pré-condições O usuário/administrador deverá ter se identificado no

sistema.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Treinar Cubo Virtual no menu principal do Applet.

P2. O Sistema apresenta o nível Iniciante com suas

respectivas etapas [RN1].

P3. O ator seleciona uma etapa de um nível de

aprendizado.

P4. O Sistema apresenta o cubo virtual pronto para realizar

o treinamento da etapa selecionada [RN2], além da opção

Iniciar Treinamento

P5. O ator seleciona a opção Iniciar Treinamento.

P6. O Sistema apresenta as opções de movimentos,

conforme o Anexo III – Notação dos Movimentos, além das

opções Ajuda e Parar, que permitem ao usuário receber

dicas do Sistema e finalizar o treinamento da etapa

selecionada, respectivamente.

P7. O ator seleciona as opções apresentadas no P6 para

movimentar o cubo virtual [A1] [A2]. O ação ocorre até que

o ator selecione a opção Parar ou até que a etapa

selecionada tenha sido encerrada.

P8. O ator seleciona a opção Parar.

P9.1. O Sistema apresenta a mensagem de conclusão da

etapa treinada e a opção Menu de Etapas [RN3].

P9.2. O Sistema retorna ao P2.

Fluxos Alternativos A1. Ajudar usuário

A1.1. O ator seleciona a opção Ajuda.

A1.2. O Sistema apresenta uma sugestão de resolução

66

para o passo atual.

A1.3. O Sistema retorna ao P7.

A2. Finalizar Treinamento da Etapa

A2.1. O ator seleciona a opção Parar.

A2.2. O Sistema retorna ao P9.

Fluxos de Exceção Não se aplica.

Regras de Negócio O Sistema apresenta as seguintes etapas para o nível

Iniciante:

• Cruz Branca;

• 1ª Camada;

• 2ª Camada;

• Cruz Amarela;

• Face Amarela;

• Cantos da 3ª Camada;

• Meios da 3ª Camada.

RN2. Organização do Cubo Virtual

O Cubo Virtual será apresentado com uma configuração

condizente com a etapa selecionada.

• Cruz Branca: o Cubo Virtual estará embaralhado.

• 1ª Camada: Cruz Branca pronta.

• 2ª Camada: 1ª Camada pronta.

• Cruz Amarela: 2ª Camada pronta.

• Face Amarela: Cruz Amarela pronta.

• Cantos da 3ª Camada: Face Amarela pronta.

• Meios da 3ª Camada: Cantos da 3ª Camada

prontos.

RN3. Mensagem de conclusão da etapa

Ao selecionar a opção Parar, se o usuário tiver concluído a

etapa, uma mensagem de sucesso na conclusão da etapa

será apresentada. Caso contrário, será mostrada uma

67

mensagem de não conclusão da etapa.

Pós-condição Não se aplica.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

Tela 5 Treinar Cubo Virtual

11.1.4 Jogar Cubo Virtual

Nome do Caso de Uso Jogar Cubo Virtual

Breve Descrição Este caso de uso tem como objetivo permitir que o usuário

jogue o Cubo Mágico Virtual sem auxílio do Sistema e

marque o tempo e quantidade de movimentos despendidos

na tentativa de resolução.

Atores Usuário identificado, Administrador

Pré-condições O usuário/administrador deverá ter se identificado no

sistema.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Jogar Cubo Virtual.

68

P2.1. O Sistema apresenta o cubo mágico virtual em seu

estado resolvido com a opção Embaralhar.

P2.2. O Sistema apresenta os tempos e quantidades de

movimentos correspondentes às suas melhores médias do

presente momento.

P3. O ator seleciona a opção Embaralhar.

P4. O Sistema embaralha o cubo virtual [RN1].

P5.1. O Sistema apresenta e ativa o contador regressivo

de inspeção [RN2].

P5.2. O Sistema apresenta a opção Jogar, além das

opções de movimento X, X’, Y, Y’, Z, Z’ [RN3].

P6. O ator seleciona a opção Jogar [A1].

P7.1. O Sistema apresenta as demais opções de

movimentos, conforme o Anexo III – Notação dos

Movimentos, além da opção Parar, que permitirá ao

usuário finalizar a tentativa de resolução do cubo virtual.

P7.2. O Sistema apresenta e ativa o cronômetro

progressivo e o contador de movimento para que o tempo

e a quantidade de movimentos utilizados na tentativa de

resolução do cubo sejam marcados.

P7.3. O Sistema libera o cubo virtual para manipulação.

P8. O ator seleciona as opções apresentadas no P5.2. e

P7.1. para movimentar o cubo virtual. A ação ocorre até

que o ator selecione a opção Parar.

P9. O ator seleciona a opção Parar.

P10.1. O Sistema pára o cronômetro e o contador de

movimentos.

P10.2. O Sistema verifica se o estado atual do cubo é o

estado dele resolvido.

P11.1 Se o estado atual do cubo for igual ao estado dele

resolvido, o Sistema apresenta ao usuário seu tempo e

número de passos utilizados, atualizando suas respectivas

médias [RN4]. Caso contrário, o Sistema indicará ao

69

usuário que o objetivo não foi alcançado.

P11.2 Sistema pergunta se usuário deseja jogar

novamente[A2].

P12. O Sistema retorna ao P2.

Fluxos Alternativos A1. Esperar contador regressivo

A1.1. O ator espera o contador regressivo chegar ao

tempo 0:00:00.

A1.2. O Sistema retorna ao P7.1.

A2 Usuário não deseja jogar novamente.

A2.1 Sistema finaliza caso de uso.

Fluxos de Exceção Não se aplica.

Regras de Negócio RN1. Embaralhamento

O embaralhamento deverá obedecer às seguintes regras:

• A quantidade de movimentos utilizada para

embaralhar o cubo deve ser igual a 25.

• O mesmo movimento não pode ser executado três

ou mais vezes seguidas.

• Um movimento não pode ser seguido pelo seu

movimento contrário.

• Os movimentos X,X’, Y, Y’, Z, Z’, M, M’, E, E’, S, S’

não farão parte do embaralhamento (vide Anexo III

– Notação dos Movimentos)

RN2. Tempo de Inspeção

O tempo de inspeção deverá ser de 30 segundos.

RN3. Opções de movimentos apresentadas durante o

tempo de inspeção.

Somente deverá ser permitido que o usuário execute os

movimentos X, X’, Y, Y’, Z e Z’ durante a inspeção do

cubo. Tais movimentos, quando realizados, não alteram a

configuração do cubo, só mudam sua perspectiva de visão.

70

RN4. Cálculo da Média

Tanto para cálculo da média de tempo quanto para a

média de quantidade de movimentos válidos para o

ranking será utilizada a seguinte regra:

• Para ser uma média válida, devem ser medidos,

pelo menos, cinco parâmetros (cinco tempos ou

cinco quantidade de movimentos) consecutivos.

• A partir do sexto parâmetro (tempo ou quantidade

de movimentos) recebido, esses novos parâmetros

irão substituindo os antigos na ordem em que foram

inseridos. Essa substituição é importante porque

para cálculo da média são utilizados somente 5

parâmetros.

• A melhor média de uma sessão não será o conjunto

dos cinco melhores tempos, e sim a melhor média

de cinco parâmetros consecutivos que foram

marcados na sessão.

• A melhor média de determinada sessão do usuário

será testada para verificar se está apta a entrar no

ranking.

Pós-condição Tempos, números de movimentos e respectivas médias

que estiverem aptos a participar do ranking deverão ser

adicionados ao mesmo.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

71

Tela 6 Jogar Cubo Virtual

11.1.5 Cadastrar Usuário

Nome do Caso de Uso Cadastrar Usuário

Breve Descrição Este caso de uso tem como objetivo permitir que um

usuário se cadastre no Sistema.

Atores Usuário não identificado

Pré-condições Não se aplica.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Cadastrar-se.

P2. O Sistema apresenta o formulário de cadastro com os

campos: Nome, Estado, Cidade, Data de Nascimento,

Foto, E-mail, Repita o E-mail, Senha e Confirme a Senha.

São apresentadas também as opções Efetuar Cadastro e

Limpar Campos.

P3. O ator preenche os campos e os submete para que o

cadastro seja efetivado [A1].

P4. O Sistema valida as informações fornecidas pelo ator

[RN1] [E1] [E2] [E3] [E4] [E5] [E6].

72

P5. O Sistema grava as informações fornecidas pelo ator.

P6. O Sistema apresenta a mensagem: “Cadastro

efetivado com sucesso”.

P7. O caso de uso é encerrado.

Fluxos Alternativos A1. Limpar campos

A1.1. O ator seleciona a opção Limpar campos.

A1.2. O Sistema limpa todos os campos do formulário.

A1.3. O Sistema retorna ao P2.

Fluxos de Exceção E1. Campo obrigatório não preenchido.

E1.1. O Sistema verifica que algum campo obrigatório não

foi preenchido.

E1.2. O Sistema destaca o campo obrigatório que não foi

preenchido e apresenta a mensagem: “O campo

obrigatório X não foi preenchido”, onde X é o nome do

campo obrigatório que não foi preenchido.

E1.3. O Sistema retorna ao P3.

E2. Campo inválido.

E2.1. O Sistema verifica que algum campo foi preenchido

de forma inválida.

E2.2. O Sistema destaca o campo que foi preenchido de

forma inválida e apresenta a mensagem: “O(A) X

informado(a) é inválido(a)”, onde X é o campo informado

de forma inválida.

E2.3. O Sistema retorna ao P3.

E3. Tamanho da foto superior ao limite de 500Kb.

E3.1. O Sistema verifica que o tamanho da foto é superior

ao limite de 500Kb.

E3.2. O Sistema destaca o campo Foto e apresenta a

mensagem: “O tamanho da foto é superior ao limite de

500Kb”.

E3.3. O Sistema retorna ao P3.

73

E4. Foto com extensão inválida.

E4.1. O Sistema verifica que a extensão do arquivo

selecionado para o campo Foto é inválida.

E4.2. O Sistema destaca o campo Foto e apresenta a

mensagem: “O arquivo da foto deve ter a extensão .gif,

.jpg, .jpeg, .png”.

E4.3. O Sistema retorna ao P3.

E5. E-mail e Repita o e-mail diferentes

E5.1. O Sistema verifica que os e-mails informados nos

campos E-mail e Repita o e-mail são diferentes.

E5.2. O Sistema destaca os campos E-mail e Repita o e-

mail e apresenta a mensagem: “Os e-mails informados nos

campos E-mail e Repita o e-mail são diferentes”.

E5.3. O Sistema retorna ao P3.

E6. Senha e Confirma a senha diferentes

E6.1. O Sistema verifica que as senhas informadas nos

campos Senha e Confirme a senha são diferentes.

E6.2. O Sistema destaca os campos Senha e Confirme a

senha e apresenta a mensagem: “As senhas informadas

nos campos Senha e Confirme a senha são diferentes”.

E6.3. O Sistema retorna ao P3.

Regras de Negócio RN1. Formulário de Cadastro

O preenchimento dos campos do formulário de cadastro

deverá obedecer às seguintes regras:

• Nome

o Descrição: nome do usuário que irá se

cadastrar.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

74

� Somente serão aceitos caracteres A/a

– Z/z.

� O tamanho não deverá ultrapassar 50

caracteres.

• Estado

o Descrição: estado em que reside o usuário

que irá se cadastrar.

o Tipo: caixa de seleção (combobox)

o Obrigatório: não.

o Regras:

� A caixa de seleção deverá conter os 27

estados brasileiros mais o Distrito

Federal.

• Cidade

o Descrição: cidade em que reside o usuário

que irá se cadastrar.

o Tipo: texto.

o Obrigatório: não.

o Regras:

� O tamanho não deverá ultrapassar 30

caracteres.

• Data de Nascimento

o Descrição: data de nascimento do usuário

que irá se cadastrar.

o Tipo: texto.

o Obrigatório: não.

o Regras:

� O formato deverá ser dd/MM/yyyy.

� À medida que o usuário digitar as

datas o Sistema deverá incluir as

barras que separam o dia, mês e ano.

� Somente deverão ser aceitos números.

� O tamanho da data deverá ser igual a

75

10.

� A data deverá ser válida.

• Foto

o Descrição: foto do usuário que irá se

cadastrar.

o Tipo: arquivo.

o Obrigatório: não.

o Regras:

� O tamanho da foto deverá ser inferior a

500Kb.

� Somente serão aceitos arquivos cuja

extensão é .gif, .jpg, .jpeg ou .png.

• E-mail

o Descrição: e-mail do usuário que irá se

cadastrar.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

� Somente deverão ser aceitos e-mails

válidos.

� O tamanho máximo deverá ser de 50

caracteres.

� Deverá fazer parte do login do usuário

para acesso às funcionalidades do

Sistema.

• Repita o e-mail

o Descrição: confirmação do e-mail informado

no campo anterior.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

� O conteúdo deverá ser exatamente

igual ao do campo E-mail.

76

• Senha

o Descrição: senha do usuário que irá se

cadastrar.

o Tipo: senha (password).

o Obrigatório: sim.

o Regras:

� O tamanho da senha deverá ser de no

mínimo 6 e no máximo 12 caracteres.

� Será a senha de acesso do usuário às

funcionalidades do Sistema. Junto

com o campo E-mail, deverá formar o

login do usuário.

• Confirme a senha:

o Descrição: confirmação da senha informada

no campo anterior.

o Tipo: senha (password).

o Obrigatório: sim.

o Regras:

� O conteúdo deverá ser exatamente

igual ao do campo Senha.

Pós-condição O Sistema deverá armazenar em seu banco de dados o

cadastro do usuário.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

77

Tela 7 Cadastrar Usuário

11.1.6 Editar Cadastro

Nome do Caso de Uso Editar Cadastro

Breve Descrição Este caso de uso tem como objetivo permitir que um

usuário edite seu cadastro no Sistema.

Atores Usuário identificado, Administrador

Pré-condições O ator deverá ter se identificado no Sistema.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Editar Perfil.

P2. O Sistema carrega as informações atuais do usuário e

as apresenta no formulário de alteração, que conterá os

campos Nome, Estado, Cidade, Data de Nascimento, Foto,

E-mail, Repita o e-mail, Senha atual, Nova Senha e

Confirme a senha [RN1]. São apresentadas também as

opções Atualizar perfil e Desfazer atualização.

P3. O ator preenche os campos e os submete para que a

alteração seja efetivada [A1].

P4. O Sistema valida as informações fornecidas pelo ator

78

[RN2] [E1] [E2] [E3] [E4] [E5] [E6].

P5. O Sistema grava as novas informações fornecidas pelo

ator.

P6. O Sistema apresenta a mensagem: “Cadastro alterado

com sucesso”.

P7. O caso de uso é encerrado.

Fluxos Alternativos A1. Desfazer atualização

A1.1. O ator seleciona a opção Desfazer atualização.

A1.2. O Sistema recarrega os dados do formulário de

acordo com as informações salvas na sua base de dados.

A1.3. O Sistema retorna ao P2.

Fluxos de Exceção E1. Campo obrigatório não preenchido.

E1.1. O Sistema verifica que algum campo obrigatório não

foi preenchido.

E1.2. O Sistema destaca o campo obrigatório que não foi

preenchido e apresenta a mensagem: “O campo

obrigatório X não foi preenchido”, onde X é o nome do

campo obrigatório que não foi preenchido.

E1.3. O Sistema retorna ao P3.

E2. Campo inválido.

E2.1. O Sistema verifica que algum campo foi preenchido

de forma inválida.

E2.2. O Sistema destaca o campo que foi preenchido de

forma inválida e apresenta a mensagem: “O(A) X

informado(a) é inválido(a)”, onde X é o campo informado

de forma inválida.

E2.3. O Sistema retorna ao P3.

E3. Tamanho da foto superior ao limite de 500Kb.

E3.1. O Sistema verifica que o tamanho da foto é superior

ao limite de 500Kb.

E3.2. O Sistema destaca o campo Foto e apresenta a

79

mensagem: “O tamanho da foto é superior ao limite de

500Kb”.

E3.3. O Sistema retorna ao P3.

E4. Foto com extensão inválida.

E4.1. O Sistema verifica que a extensão do arquivo

selecionado para o campo Foto é inválida.

E4.2. O Sistema destaca o campo Foto e apresenta a

mensagem: “O arquivo da foto deve ter a extensão .gif,

.jpg, .jpeg, .png”.

E4.3. O Sistema retorna ao P3.

E5. E-mail e Repita o e-mail diferentes

E5.1. O Sistema verifica que os e-mails informados nos

campos E-mail e Repita o e-mail são diferentes.

E5.2. O Sistema destaca os campos E-mail e Repita o e-

mail e apresenta a mensagem: “Os e-mails informados nos

campos E-mail e Repita o e-mail são diferentes”.

E5.3. O Sistema retorna ao P3.

E6. Senha e Confirma a senha diferentes

E6.1. O Sistema verifica que as senhas informadas nos

campos Senha e Confirme a senha são diferentes.

E6.2. O Sistema destaca os campos Senha e Confirme a

senha e apresenta a mensagem: “As senhas informadas

nos campos Senha e Confirme a senha são diferentes”.

E6.3. O Sistema retorna ao P3.

Regras de Negócio RN1. Carregamento do formulário de alteração

O carregamento do formulário de alteração deverá

obedecer às seguintes regras:

• As informações deverão ser obtidas através da base

de dados do Sistema.

• Os campos Nome, Estado, Cidade, Data de

80

Nascimento e E-mail deverão ser carregados.

• Os campos Foto, Repita o e-mail, Senha atual, Nova

senha e Confirme a senha deverão estar vazios.

RN2. Formulário de Cadastro

O preenchimento dos campos do formulário de cadastro

deverá obedecer às seguintes regras:

• Nome

o Descrição: nome do usuário que quer

atualizar seu perfil.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

� Somente serão aceitos caracteres A/a

– Z/z.

� O tamanho não deverá ultrapassar 50

caracteres.

• Estado

o Descrição: estado em que reside o usuário

que quer atualizar seu perfil.

o Tipo: caixa de seleção (combobox)

o Obrigatório: não.

o Regras:

� A caixa de seleção deverá conter os 27

estados brasileiros mais o Distrito

Federal.

• Cidade

o Descrição: cidade em que reside o usuário

que quer atualizar seu perfil

o Tipo: texto.

o Obrigatório: não.

o Regras:

� O tamanho não deverá ultrapassar 30

81

caracteres.

• Data de Nascimento

o Descrição: data de nascimento do usuário

que quer atualizar seu perfil.

o Tipo: texto.

o Obrigatório: não.

o Regras:

� O formato deverá ser dd/MM/yyyy.

� À medida que o usuário digitar as

datas o Sistema deverá incluir as

barras que separam o dia, mês e ano.

� Somente deverão ser aceitos números.

� O tamanho da data deverá ser igual a

10.

� A data deverá ser válida.

• Foto

o Descrição: foto do usuário que quer atualizar

seu perfil.

o Tipo: arquivo.

o Obrigatório: não.

o Regras:

� O tamanho da foto deverá ser inferior a

500Kb.

� Somente serão aceitos arquivos cuja

extensão é .gif, .jpg, .jpeg ou .png.

• E-mail

o Descrição: e-mail do usuário que quer

atualizar seu perfil.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

� Somente deverão ser aceitos e-mails

válidos.

82

� O tamanho máximo deverá ser de 50

caracteres.

� Deverá fazer parte do login do usuário

para acesso às funcionalidades do

Sistema.

• Repita o e-mail

o Descrição: confirmação do e-mail informado

no campo anterior.

o Tipo: texto.

o Obrigatório: será obrigatório se o campo E-

mail tiver sido alterado.

o Regras:

� O conteúdo deverá ser exatamente

igual ao do campo E-mail.

• Senha atual

o Descrição: senha atual do usuário que quer

atualizar seu perfil.

o Tipo: senha (password).

o Obrigatório: sim.

o Regras:

� O conteúdo deverá ser exatamente

igual à senha do usuário registrada na

base de dados.

• Nova senha

o Descrição: nova senha do usuário que quer

atualizar seu perfil.

o Tipo: senha (password).

o Obrigatório: não.

o Regras:

� O tamanho da senha deverá ser de no

mínimo 6 e no máximo 12 caracteres.

� Será a senha de acesso do usuário às

funcionalidades do Sistema. Junto

83

com o campo E-mail, deverá formar o

login do usuário.

• Confirme a senha:

o Descrição: confirmação da senha informada

no campo anterior.

o Tipo: senha (password).

o Obrigatório: será obrigatória se o campo

Nova senha for preenchido.

o Regras:

� O conteúdo deverá ser exatamente

igual ao do campo Nova senha.

Pós-condição Caso o usuário altere alguma informação, o Sistema

deverá armazenar os novos dados em sua base de dados.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

Tela 8 Editar Cadastro

84

11.1.7 Pesquisar Usuário

Nome do Caso de Uso Pesquisar Usuário

Breve Descrição Este caso de uso tem como objetivo permitir que um

usuário pesquise por outros no Sistema.

Atores Usuário identificado/Administrador.

Pré-condições O ator deverá ter se identificado no Sistema.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Usuários.

P2.1. O Sistema apresenta os usuários cadastrados no

Sistema [RN1].

P2.2. O Sistema apresenta o formulário de pesquisa com

os campos: Nome, Estado e Cidade.

P3. O ator preenche os campos e os submete para que a

pesquisa seja realizada [RN2] [A1].

P4. O Sistema apresenta o resultado da pesquisa [RN3].

P5. O ator seleciona um resultado.

P6. O Sistema exibe o perfil do usuário selecionado [RN4].

P5. O caso de uso é encerrado.

Fluxos Alternativos A1. Alterar página do resultado

A1.1. O ator seleciona uma página do resultado.

A1.2. O Sistema redireciona o ator para a página desejada,

mostrando a ele os resultados desta página.

A1.3. O Sistema retorna ao P2.1.

Fluxos de Exceção Não se aplica.

Regras de Negócio RN1. Apresentação dos usuários cadastrados

A apresentação dos usuários cadastrados deverá seguir as

seguintes regras:

• Ordenação alfabética.

• 20 usuários por página.

• Somente deverão ser mostrados Foto, Nome, E-

mail, Cidade e Estado.

RN2. Formulário de Pesquisa

85

O preenchimento dos campos do formulário de pesquisa

deverá seguir as seguintes regras:

• Nome

o Descrição: nome do(s) usuário(s) que

será(ão) pesquisado(s).

o Tipo: texto.

o Obrigatório: não.

o Regras:

� Somente serão aceitos caracteres A/a

– Z/z.

� O tamanho não deverá ultrapassar 50

caracteres.

• Estado

o Descrição: estado em que reside o(s)

usuário(s) que será(ão) pesquisado(s).

o Tipo: caixa de seleção (combobox)

o Obrigatório: não.

o Regras:

� A caixa de seleção deverá conter os 27

estados brasileiros mais o Distrito

Federal.

• Cidade

o Descrição: cidade em que reside o(s)

usuário(s) que será(ão) pesquisado(s).

o Tipo: texto.

o Obrigatório: não.

o Regras:

o O tamanho não deverá ultrapassar 30

caracteres.

RN3. Validação da pesquisa

A validação da pesquisa deverá seguir as seguintes

regras:

86

• Se nenhum campo for preenchido, o resultado será

a apresentação de todos os usuários cadastrados.

• Se mais de um campo for preenchido, o resultado

levará em consideração a combinação destes

campos.

RN4. Exibição do perfil de um usuário

A exibição do perfil de um usuário selecionado deverá

seguir as seguintes regras:

• Deverão ser mostrados: Foto, Nome, Cidade,

Estado, E-mail, Melhor tempo único, Melhor média

de tempos, Melhor Quantidade de Movimentos e

melhor Média de Quantidade de Movimentos.

• Um link “Deixar Recado” também deverá ser

exibido.

Pós-condição Não se aplica.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

11.1.8 Enviar Mensagem Pessoal

Nome do Caso de Uso Enviar Mensagem Pessoal

Breve Descrição Este caso de uso tem como objetivo permitir que um

usuário envie uma mensagem a outro.

Atores Usuário identificado/Administrador

Pré-condições O ator deverá ter se identificado no Sistema.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Enviar recado na página de perfil de um usuário.

P2. O Sistema apresenta o formulário para envio de

recado com o campo: Recado. São também apresentadas

as opções Enviar e Limpar.

P3. O ator preenche e submete o campo [A1].

P4. O Sistema valida o formulário [RN1] [E1].

87

P5. O Sistema grava as informações em sua base de

dados [RN2].

P6. O Sistema apresenta a mensagem: “Recado enviado

com sucesso!”

P7. O caso de uso é encerrado.

Fluxos Alternativos A1. Limpar recado

A1.1. O ator seleciona a opção Limpar.

A1.2. O Sistema limpa o campo Recado do formulário.

A1.3. O Sistema retorna ao P2.

Fluxos de Exceção E1. Campo obrigatório Recado não foi preenchido.

E1.1. O Sistema verifica que o campo obrigatório Recado

não foi preenchido.

E1.2. O Sistema apresenta a mensagem: “O campo

Recado não foi preenchido”.

E1.3. O Sistema retorna ao P2.

Regras de Negócio RN1. Formulário de recado

O campo Recado deverá seguir as seguintes regras:

• Recado

o Descrição: recado que um usuário deixará a

outro.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

� Deverá conter no máximo 400

caracteres.

RN2. Informações salvas na base de dados

O Sistema deverá salvar em sua base de dados o nome

dos usuários remetente e destinatário, além da data do

recado.

Pós-condição O recado, remetente, destinatário e data deverão ser

salvos na base de dados do Sistema.

Pontos de Extensão Não se aplica.

88

Características

suplementares

Não se aplica.

Tela 9 Enviar Mensagem Pessoal

11.1.9 Entrar Contato Administradores

Nome do Caso de Uso Entrar Contato Administradores

Breve Descrição Este caso de uso tem como objetivo permitir que um

usuário envie uma mensagem aos Administradores do

Sistema.

Atores Usuário identificado / Usuário não identificado /

Administrador

Pré-condições Não se aplica.

Fluxo Principal P1. O caso de uso inicia quando o ator seleciona a opção

Contato.

P2. O Sistema apresenta um formulário com o campo

Mensagem. São apresentadas também as opções Enviar e

Limpar.

P3. O ator preenche o formulário e o submete [A1].

89

P4. O Sistema valida o formulário [RN1] [E1].

P5. O Sistema envia a mensagem ao e-mail dos

administradores.

P6. O Sistema apresenta a mensagem: “Mensagem

enviada com sucesso!”.

P7. O caso de uso é encerrado.

Fluxos Alternativos A1. Limpar mensagem

A1.1. O ator seleciona a opção Limpar.

A1.2. O Sistema limpa o campo Mensagem.

A1.3. O Sistema retorna ao P2.

Fluxos de Exceção E1. Campo obrigatório Mensagem não preenchido

E1.1. O Sistema verifica que o campo obrigatório

Mensagem não foi preenchido.

E1.2. O Sistema apresenta a mensagem: “O campo

obrigatório Mensagem não foi preenchido”.

E1.3. O Sistema retorna ao P2.

Regras de Negócio RN1. Formulário de mensagem

O formulário de mensagem deverá seguir as seguintes

regras:

• Mensagem

o Descrição: mensagem que será enviada aos

administradores do Sistema.

o Tipo: texto.

o Obrigatório: sim.

o Regras:

� Deverá conter no máximo 400

caracteres.

Pós-condição A mensagem deverá ser enviada ao e-mail dos

administradores.

Pontos de Extensão Não se aplica.

Características

suplementares

Não se aplica.

90

11.2 Anexo II – Realização dos Casos de Uso Críticos

11.2.1 Acessar Tutorial 3D

11.2.1.1 Diagrama de Classes de Análise

91

11.2.1.2 Diagrama de Seqüência do Sistema

92

11.2.1.3 Diagrama de Seqüência

93

11.2.2 Treinar Cubo Virtual

11.2.2.1 Diagrama de Classes de Análise

94

11.2.2.2 Diagrama de Seqüência do Sistema

95

11.2.2.3 Diagrama de Seqüência

96

11.2.3 Jogar Cubo Virtual

11.2.3.1 Diagrama de Classes de Análise

97

11.2.3.2 Diagrama de Seqüência do Sistema

98

11.2.3.3 Diagrama de Seqüência

99

11.3 Anexo III - Notação dos Movimentos

Configuração inicial do Cubo Mágico:

As figuras a seguir ilustram as formas de manipulação do cubo que poderão

ser utilizadas. A figura correspondente a cada movimento representa a configuração

final do Cubo Mágico após a realização do movimento a partir da configuração inicial

representada acima.

Movimento R: Giro da camada da direita no sentindo horário

Movimento R’: Giro da camada da direita no sentindo anti-horário

Movimento L: Giro da camada da esquerda no sentindo horário

Movimento L’: Giro da camada da esquerda no sentindo anti-horário

100

Movimento F: Giro da camada da frente no sentindo horário

Movimento F’: Giro da camada da frente no sentindo anti-horário

Movimento B: Giro da camada de trás no sentindo horário

Movimento B’: Giro da camada de trás no sentindo horário

Movimento U: Giro da camada superior no sentindo horário

101

Movimento U’: Giro da camada superior no sentindo anti-horário

Movimento D: Giro da camada inferior no sentindo horário

Movimento D’: Giro da camada inferior no sentindo horário

Movimento X: Giro do cubo inteiro no mesmo sentido do movimento R

Movimento X’: Giro do cubo inteiro no mesmo sentido do movimento R’

102

Movimento Y: Giro do cubo inteiro no mesmo sentido do movimento U

Movimento Y’: Giro do cubo inteiro no mesmo sentido do movimento U’

Movimento Z: Giro do cubo inteiro no mesmo sentido do movimento F

Movimento Z’: Giro do cubo inteiro no mesmo sentido do movimento F’

Movimento M: Giro da camada que fica entre as camadas direita e esquerda

no sentido do movimento L

103

Movimento M’: Giro da camada que fica entre as camadas direita e esquerda

no sentido do movimento L’

Movimento E: Giro da camada compreendida entre as camadas superior e

inferior no sentido do movimento D

Movimento E’: Giro da camada compreendida entre as camadas superior e

inferior no sentido do movimento D’

Movimento S: Giro da camada compreendida entre as camadas da frente e de

trás no sentido do movimento F

Movimento S’: Giro da camada compreendida entre as camadas da frente e

de trás no sentido do movimento F’

104

11.4 Anexo IV - Apostila Nível Básico

Por Carlos Alberto de Alcântara Júnior

Introdução

Esta apostila contém uma explicação sucinta sobre o método de resolução do

cubo mágico por camadas e seus algoritmos (seqüências de movimentos). Os

desenhos a seguir são baseados na cor que escolhi para a cruz inicial, o branco,

mas pode ser feito em qualquer cor, para isso basta fazer o mesmo processo para

as cores equivalentes à que você escolheu. Estes são os nomes das peças:

Centros (6): Cantos (8): Meios (12):

Dicas gerais:

• A cor escolhida (no caso o branco) para a base, sempre deverá ficar virada para baixo, então a resolução do cubo vai evoluindo como se constrói um prédio, ou seja, de baixo para cima, camada por camada.

• As peças dos centros são a base da estrutura do cubo, então elas são fixas em relação às outras peças centrais, ou seja, um cubo resolvido é quando as peças de determinada cor se encontram organizadas em volta de seu centro correspondente.

• Para posicionar seu cubo de acordo com as figuras, considere como face da frente a face que se encontra mais voltada para frente no desenho.

Esta é a legenda dos movimentos que vamos usar:

Obs.: Os movimentos que estiverem seguidos por “2”, representam o giro

duplo da face correspondente. Exemplo: U2 quer dizer dois movimentos U seguidos.

Dica: Os movimentos seguidos por apóstrofo indicam o giro da face

correspondente no sentido anti-horário.

___________________________________________________________________

Primeira etapa: Resolvendo a cruz branca:

Este passo é bem intuitivo, não existem movimentos decorados a serem

feitos, basta entender o objetivo e tentar.

105

Para auxiliar, pode-se fazer uma cruz branca em volta do centro amarelo:

e em seguida deve-se alinhar algum meio branco da cruz feita com seu

centro correspondente e “jogar” a peça alinhada da vez para o centro branco (que é

o oposto do amarelo), realizando este mesmo processo para os 4 meios, concluindo

assim o primeiro passo que é obter a cruz branca com os lados adjacentes

corretamente alinhados.

Segunda etapa: Resolvendo a primeira camada:

Essa etapa também é bem tranqüila, e consiste em posicionar corretamente

os 4 cantos (um por vez) da camada de baixo. Podem acontecer os seguintes casos:

R U R’ F’ U’ F R U2 R’ (que leva a um dos 2 casos anteriores)

Dica: Caso o canto esteja no lugar certo (na primeira camada), mas virado

para o lado errado em relação a si mesmo, aplicar R U R’ na peça que levará a

algum dos 3 casos.

Terceira etapa: Resolvendo a segunda camada:

Completando o passo anterior, vão ficar faltando apenas 4 peças (ou menos,

caso alguma já saia certa) para completar a segunda camada. Primeiramente deve-

se procurar por um meio que não tenha amarelo (pois por enquanto estamos

interessados nas peças da segunda camada, e nenhuma delas tem adesivo

amarelo) e alinhá-lo com o centro da mesma cor, ficando como nas figuras a seguir.

Podem acontecer os seguintes casos:

U R U R’-> U’ F’ U’ F U' F' U’ F -> U R U R'

Dica: Caso algum meio esteja no lugar certo, mas com as cores trocadas

entre si ou algum meio da segunda camada esteja no lugar de outro meio da mesma

106

camada, deve-se aplicar um destes dois movimentos, e algum dos 2 casos acima

será obtido. Repita este processo para os 4 meios, um por vez, e a segunda camada

será concluída.

Quarta etapa: Resolvendo a cruz da camada de cima:

Obs.: Caso a cruz já aparecer feita, pular para a próxima etapa.

Esta etapa é bem simples, o que tem a ser feito é apenas repetir um algoritmo

algumas vezes seguindo algumas regrinhas de posicionamento que a cruz amarela

estará pronta. Ignorando por enquanto os cantos e observando apenas os meios,

seu cubo pode estar de 3 formas:

Caso “p” Caso “t” Caso “o”

Caso “p”: F U R U’ R’ F’

Caso “t”: Fazendo o algoritmo do caso “p”, o próprio caso “p” será obtido,

bastando apenas repetir (F U R U’ R’ F’) mais uma vez.

Caso “o”: Fazendo o mesmo algoritmo (F U R U’ R’ F’), o caso “t” será obtido.

Dica: Atente-se para posicionar a camada de cima exatamente como mostram

as figuras (realizando o movimento U quantas vezes for necessário) para que o

algoritmo funcione.

Quinta etapa: Resolvendo a face de cima:

O movimento característico dessa etapa se chama “Sune” (R U R’ U R U2 R’)

e é bem fácil de memorizar, apesar de ser o maior apresentado até então. Nesta

etapa, uma atenção maior deve ser dada ao posicionamento da camada de cima

antes de realizar o movimento. Podem aparecer os seguintes casos genéricos

(observe o número de cantos que estão com o adesivo amarelo voltado para cima):

107

1 Canto: Aplicar “Sune” 2 cantos 0 cantos

1 canto: Neste caso, a face amarela está próxima de ser concluída. Quando o

movimento “Sune” for aplicado, ou a face amarela fica completa, ou este mesmo

caso será obtido, necessitando então que se posicione a camada de cima

corretamente e se faça o “Sune” mais uma vez.

2 cantos: Os dois cantos com amarelo para cima não necessariamente

estarão da forma do desenho, mas o número de cantos certos sendo 2, o que deve

ser observado é um adesivo amarelo da face da frente. Gire a camada de cima até

que algum fique como na figura (independente de onde estejam os outros adesivos

amarelos da frente), aplica-se o “Sune” e o primeiro caso será obtido.

0 cantos: Posicione a camada de cima de forma que algum adesivo

(novamente não importando o posicionamento dos restantes) fique como no

desenho, ou seja, na face da esquerda e aplique o “Sune”. Então será obtido o

primeiro caso.

Dica: Com o explicado no passo, o “Sune” será aplicado no máximo 3 vezes

para que a face amarela seja concluída. Se forem feitas 3 vezes e não terminar,

você posicionou a camada de cima de forma incorreta antes do movimento em pelo

menos uma das vezes.

Sexta etapa: Resolvendo os cantos da camada de cima:

Apesar do algoritmo desta etapa ser mais “chato”, o entendimento do que tem

a ser feito é bem simples. O objetivo é deixar todos os 4 cantos da camada de cima

nos respectivos lugares. Para isso, devem ser observados os dois casos possíveis:

Um lado certo Nenhum lado certo

108

Um lado certo: Quer dizer que um dos 4 lados está com seu par de cantos da

mesma cor, como é o caso dos dois vermelhos da figura. Neste caso, esse par que

está certo deve ser virado para trás (com o movimento U2) e o seguinte algoritmo

deve ser feito: R’ F R’ B2 R F’ R’ B2 R2. Os cantos de todas as faces deverão ficar

alinhados.

Nenhum lado certo: Neste caso, faça o movimento do caso anterior (R’ F R’

B2 R F’ R’ B2 R2) em qualquer uma das 4 faces laterais, que o caso “um lado certo”

será obtido.

Sétima etapa: Resolvendo os meios da camada de cima:

Esta é a etapa final onde os meios serão permutados entre si para irem para

seus respectivos lugares. Dois casos são observados, o que os meios devem girar

no sentido anti-horário e o que eles devem girar no sentido horário.

--> --> (Vista de cima) (Vista de cima)

Sentido anti-horário Sentido horário

Anti-horário: Aplicar o algoritmo F2 U’ L R' F2 L' R U' F2.

Horário: Aplicar o algoritmo F2 U L R' F2 L' R U F2.

Dicas: Em ambos os casos, o lado que está com seu meio certo deve ficar

virado para trás. Observe que o movimento U dos dois casos (em destaque) é no

sentido em que o ciclo dos 3 meios vai girar, sendo esta a única diferença entre os

dois algoritmos. Algumas vezes vai acontecer de ter 4 meios por permutar, neste

caso, basta fazer um dos dois algoritmos que um meio irá para o lugar certo e um

dos dois casos será obtido.

Missão cumprida!

109

Agora é só praticar bastante para memorizar os algoritmos!

Para tirar dúvidas ou fazer comentários ou sugestões, mande e-mail para

[email protected]. Peça-me a apostila de nível intermediário para que você

possa aprimorar seu método, e, conseqüentemente, diminuir seus tempos.

Conheça também o fórum brasileiro de cubo mágico. Participe do ranking

nacional de velocidade e troque idéia com os melhores cubistas do país:

http://www.cubomagicobrasil.com/forum

Por Carlos Alberto de Alcântara Júnior

11.5 Anexo V - Apostila Nível Intermediário

Por Carlos Alberto de Alcântara Júnior

Agora que já dominamos o método básico, está na hora de começar a poupar

algumas repetições de movimentos conhecendo alguns casos mais específicos (de

nível intermediário). A ordem dos algoritmos dessa apostila foi escolhida de acordo

com a ordem que acredito que seja melhor para aprender, tanto pelo grau de

dificuldade quanto pelo fato de que os algoritmos que estão primeiro poupam mais

movimentos na resolução e/ou compensam mais serem aprendidos antes.

Esses a seguir são dois tipos de movimentos que vamos utilizar e que ainda

não tinham sido apresentados na primeira apostila:

110

Comecemos então pela orientação dos meios, da quarta etapa. Na apostila

básica foram apresentados os seguintes casos:

Caso “p”: F U R U’ R’ F’ Caso “i” Caso “o”

Para todos eles, aprendemos a utilizar o algoritmo do caso “p” até que a cruz

ficasse pronta. Vamos melhorar isso. Quando obtivermos o caso “i”, faremos um

algoritmo parecido com o do caso “p”, mas que faz a cruz de uma vez: F R U R’ U’

F’. Quanto ao caso “o”, o algoritmo é o seguinte: M’ U M’ U M’ U M’ U M U M U M U

M U, que pode ser escrito como (M’ U)x4 (M U)x4 para simplificar.

Vamos agora à permutação dos meios, da última etapa. Vimos na apostila

básica que quando tivermos 4 meios errados, devemos fazer o movimento da última

etapa duas vezes, mas podemos fazer de uma vez só (se soubermos os algoritmos

específicos de cada caso). São duas combinações possíveis:

Caso “H” Caso “Z”

M2’ U M2’ U2 M2’ U M2’ M2’ U M2’ U M’ U2 M2’ U2 M’ U2

Obs.: Os movimentos duplos (giros de 180°), na verdade tanto faz se

realizados no sentido horário ou anti-horário, mas os sentidos costumam ser

especificados com o objetivo de mostrar a maneira mais rápida de executar o

algoritmo de acordo com as posições que os dedos vão assumindo no cubo.

111

Outra parte da solução que podemos melhorar um pouco é a parte de

permutação dos cantos (sexta etapa da apostila básica). Lá vimos que o cubo

pode estar com um lado certo ou com nenhum como mostram as figuras:

Um lado certo Nenhum lado certo

Quando ocorria o segundo caso, deveríamos repetir duas vezes o algoritmo

da etapa. Agora vamos aprender como terminar a etapa fazendo apenas uma vez.

Se cair o caso em que nenhum lado está certo, com qualquer um dos lados para

frente, devemos aplicar o seguinte algoritmo: (F R U’ R’ U’ R U R’ F’)(R U R’ U’ R’ F

R F’).

Obs.: O algoritmo está separado em duas partes (as entre parênteses) para

possamos dividi-lo e poder decorar um pedaço de cada vez, mas veja bem, isso é só

para facilitar um pouco. Para o resultado esperado ser atingido, a seqüência

completa deve ser executada.

Dica: Este algoritmo tem mais de uma utilidade. Com o cubo pronto,

experimente fazer antes a segunda parte e depois a primeira, ou até mesmo apenas

alguma das duas e reflita sobre os resultados.

Agora que já melhoramos a permutação de ambos os tipos de peça, é hora

de dar uma boa evoluída na orientação dos cantos. Depois que a cruz de cima já

está feita, são 7 combinações diferentes que podem aparecer. Vamos aprender o

algoritmo específico de cada caso. O primeiro, que já conhecemos, é o Sune. O

segundo é conhecido como anti-Sune, que é simplesmente o Sune feito no lado

esquerdo (como se fosse ao espelho). Os outros são novidades mesmo. Vamos aos

sete:

112

R U R’ U R U2 R’ L’ U’ L U’ L’ U2 L R U R’ U R U’ R’ U R U2 R’ R’ F’ L F R F’ L’ F

R U2 R2 U’ R2 U’ R2 U2 R R2 D R’ U2 R D’ R’ U2 R’ R’ F R B’ R’ F’ R B

Bom, ainda não falamos sobre melhoras nem da cruz, nem das duas

primeiras camadas. Quanto à cruz, na apostila passada aprendemos a fazer uma

cruz em volta do centro oposto e depois voltar para o centro certo. Obviamente fazer

a cruz diretamente em sua cor é mais rápido, não é? Comece a treinar isso. Mas

lembre-se, não basta fazer a cruz, preocupe-se também com o fato de que todos os

meios que a compõem devem corresponder às cores dos centros adjacentes.

Certo Errado

Falemos agora sobre as duas primeiras camadas. Essa parte pode ser mais

complicada para alguns e mais divertida para outros. Por quê? Porque a maneira

que vamos aprender é uma maneira mais intuitiva, não sendo como as outras

etapas nas quais só se decoram movimentos e pronto.

Em vez de fazer antes a primeira camada e depois ir para a segunda, vamos

aprender a colocar as duas peças de uma vez no lugar (conhecido como F2L – First

2 Layers), o que ajuda poupar bastante tempo depois que estivermos com prática.

Basicamente temos esses 4 casos genéricos com resolução bem simples:

U’ F’ U F U R U’ R’ R U R’ F’ U’ F

113

O que temos que fazer é procurar duas peças que formam um par de F2L

(por exemplo, a peça azul-vermelho com a peça azul-vermelho-branco) e colocá-las

na camada de cima sem que as duas estejam coladas uma na outra e sem que o

canto esteja com o branco virado para cima (vide exemplos abaixo). Quando

conseguirmos isso, intuitivamente devemos manipular as peças para encontrar

algum dos casos básicos acima.

Dica: Para manipular as peças que formam o par, gire o lado, gire em cima,

mas não se esqueça de devolver o movimento que fez girando o lado, para que a

cruz já feita não seja perdida.

Exemplos:

R’ U2 R R’ U R F' U F U2 R U2 R’ U’ R U2 R’

Essas 5 são algumas situações das diversas possíveis que podemos

encontrar. O algoritmo que temos para cada figura não é para resolver o par de F2L,

mas para levar a um dos 4 casos genéricos vistos acima. No começo provavelmente

vamos usar mais movimentos do que os descritos nos exemplos para encontrar um

caso genérico, mas o número de movimentos para isso tende a diminuir aos poucos

com a prática.

Observe que nos dois últimos exemplos temos o lado branco da peça virado

para cima. Esses dois casos são exemplos de como podemos ajeitar o lado branco

da peça (deixando-o virado para o lado) já conseguindo ao mesmo tempo obter

algum dos 4 casos básicos, com isso já começamos a ver como é possível

economizar movimentos se visualizarmos bem como os movimentos influenciam as

peças.

Dica: Antes de realizar um movimento buscando um caso genérico, verifique

se o movimento que vai fazer não vai tirar algum par que já está certo em seu lugar.

Caso seja constatado que isso ocorrerá, simplesmente gire as duas camadas de

baixo simultaneamente até que o lado que será mexido não contenha mais um par já

resolvido.

114

No começo, fazer por F2L vai ser um pouco mais lento do que fazer camada

por camada, como ensina a primeira apostila. Não desanime e continue treinando,

pois com um pouco de experiência, F2L provavelmente vai ajudar a diminuir, e

muito, seus tempos.

Quando estiver com o conteúdo dessa apostila todo já na ponta dos dedos,

muito facilmente você estará conseguindo resolver o cubo em menos de um minuto.

Bons treinos!

Qualquer dúvida sobre o conteúdo dessa apostila ou sobre speedcubing em

geral, envie por e-mail para [email protected] que ajudarei como puder.

Caso ainda não conheça o fórum brasileiro de cubo mágico, acesse:

www.cubomagicobrasil.com/forum. Participe do ranking nacional de velocidade e

troque idéia com os melhores cubistas do país.

Por Carlos Alberto de Alcântara Júnior