jogo de damas embarcado multinível - up.edu.br · regras do jogo de damas ... uma dama sempre...

61
Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Christiano Grillo Justus Jogo de Damas Embarcado Multinível Curitiba 2006

Upload: vukhue

Post on 13-Nov-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET

Engenharia da Computação Christiano Grillo Justus

Jogo de Damas Embarcado Multinível

Curitiba 2006

Page 2: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET

Engenharia da Computação Christiano Grillo Justus

Jogo de Damas Embarcado Multinível

Monografia apresentada à disciplina de Projeto Final, como requisito parcial à conclusão do Curso de Engenharia da Computação. Orientador: Profª. Adriana Thomé

Curitiba 2006

Page 3: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Termo de Aprovação

Christiano Grillo Justus

Jogo de Damas Embarcado Multinível

Monografia aprovada como requisito parcial à conclusão do

curso de Engenharia da Computação do Centro Universitário

Positivo, pela seguinte banca examinadora:

Professora Adriana Cursino Thomé – Orientadora

Professor Nestor Cortez Saavedra Filho – Membro

Professor Alessandro Zimmer – Membro

Curitiba, 9 de fevereiro de 2007

Page 4: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Agradecimentos

Agradeço aos meus pais, André Justus Neto e Licia Carolina B. Grillo

Justus, pela oportunidade que me ofereceram de cursar uma faculdade, no

auxilio na construção do projeto e pela paciência por agüentarem a constante

bagunça.

Meus amigos e colegas de classe, principalmente os mais próximos por

me ajudarem, passando confiança e descontração nos momentos difíceis.

A minha orientadora Adriana Cursino Thomé, por ter confiado este projeto

a mim, sempre me guiando na direção certa, nos momentos em que me

encontrava perdido.

E a todos os professores, pelos ensinamentos transmitidos durante esses

anos, que direta ou indiretamente foram fundamentais para a elaboração

deste projeto.

Page 5: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 5

Sumário

Lista de Figuras ...............................................................................................................7

Lista de Tabelas ..............................................................................................................9

Lista de Siglas............................................................................................................... 10

Resumo........................................................................................................................... 11

Abstract .......................................................................................................................... 12

1. Introdução............................................................................................................. 13

1.1. Introdução ao tema do projeto ..................................................................... 13

1.2. Motivação do desenvolvimento .................................................................... 13

1.3. Metas a serem alcançadas........................................................................... 14

2. Estudo Teórico .................................................................................................... 15

2.1. Teoria dos jogos ............................................................................................. 15

2.2. O Jogo de Damas .......................................................................................... 17

2.3. Regras do jogo de damas............................................................................. 19

2.4. Decisões ótimas em jogos ............................................................................ 25

2.4.1. Árvore do jogo......................................................................................... 25

2.4.2. Estratégias ótimas.................................................................................. 26

2.4.3. O algoritmo minimax.............................................................................. 28

2.4.4. Poda alfa-beta......................................................................................... 30

2.4.5. Decisões imperfeitas em tempo real................................................... 34

2.4.5.1. Funções de avaliação............ ......................................................34

2.4.5.2. Busca com corte .............................................................................37

2.5. Microcontrolador ............................................................................................. 38

2.6. Display LCD .................................................................................................... 38

2.7. Diodo emissor de luz ..................................................................................... 40

3. Descrição .............................................................................................................. 41

3.1. Arquitetura AVR.............................................................................................. 42

4. Especificação do hardware .............................................................................. 43

4.1. Funções do hardware .................................................................................... 43

4.1.1. Matriz de contatos .................................................................................. 44

4.2. Componentes utilizados ................................................................................ 46

4.3. Tabela de custos ............................................................................................ 47

4.4. Requisitos de hardware................................................................................. 48

Page 6: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 6

4.5. Configurando o chip....................................................................................... 49

4.6. Diagramas em blocos .................................................................................... 50

5. Especificação do software ............................................................................... 51

5.1. Ambiente e linguagem de desenvolvimento .............................................. 51

5.2. Interface com o usuário................................................................................. 51

5.3. Diagrama de contexto ................................................................................... 51

5.4. Diagrama de fluxo de dados......................................................................... 52

5.5. Diagrama de estados..................................................................................... 53

5.6. Fluxograma ..................................................................................................... 53

6. Especificação da validação do projeto ......................................................... 55

7. Resultados............................................................................................................ 56

7.1. Hardware ......................................................................................................... 56

7.2. Software ........................................................................................................... 57

8. Conclusão............................................................................................................. 58

9. Referências Bibliográficas ............................................................................... 60

10. Anexo – Cronograma.............................................Erro! Indicador não definido.

11. Anexo – Diagrama em blocos do chip Atmega64 ..........Erro! Indicador não

definido.

12. Anexo – Esquemático do microcontrolador....Erro! Indicador não definido.

13. Anexo – Esquemático da matriz de contatos..Erro! Indicador não definido.

14. Anexo – Esquemático da matriz de leds ..........Erro! Indicador não definido.

15. Anexo – Esquemático do gravador....................Erro! Indicador não definido.

16. Anexo – Esquemático da fonte ...........................Erro! Indicador não definido.

Page 7: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 7

Lista de Figuras

Figura 2.1 - Tabuleiro 1................................................................................................. 20

Figura 2.2 - Tabuleiro 2................................................................................................. 20

Figura 2.3 - Tabuleiro 3................................................................................................. 21

Figura 2.4 - Tabuleiro 4................................................................................................. 21

Figura 2.5 - Tabuleiro 5................................................................................................. 22

Figura 2.6 - Tabuleiro 6................................................................................................. 22

Figura 2.7 - Tabuleiro 7................................................................................................. 22

Figura 2.8 - Tabuleiro 8................................................................................................. 23

Figura 2.9 - Tabuleiro 9................................................................................................. 23

Figura 2.10 - Tabuleiro 10. ........................................................................................... 24

Figura 2.11 - Tabuleiro 11. ........................................................................................... 24

Figura 2.12 – Árvore de busca (parcial) para o jogo da velha................................ 26

Figura 2.13 – Árvore do jogo de duas jogadas. ........................................................ 28

Figura 2.14 – Árvore do jogo de duas jogadas utilizando poda alfa -beta............. 31

Figura 2.15 – Poda alfa-beta........................................................................................ 33

Figura 2.16 – Peso das casas na heurística posicional........................................... 36

Figura 2.17 – Display LCD............................................................................................ 40

Figura 2.18 - Diodo emissor de luz (LED). ................................................................. 41

Figura 3.1 – Módulos do hardware.............................................................................. 41

Figura 4.1 – Sistema de encaixe das peças no tabuleiro........................................ 43

Figura 4.2 – Foto do contato de uma das casas....................................................... 43

Figura 4.3 – Matriz de contatos. .................................................................................. 44

Figura 4.4 – Exemplo de funcionamento da matriz de contatos. ........................... 45

Figura 4.5 – Pinagem do chip Atmega64................................................................... 48

Figura 4.6 – Circuito para transferência de dados pelo paralela............................ 49

Figura 4.7 – Diagrama em blocos do sistema........................................................... 50

Figura 5.1 – Diagrama de contexto............................................................................. 51

Figura 5.2 – Diagrama de fluxo de dados (DFD). ..................................................... 52

Figura 5.3 – Diagrama de estados. ............................................................................. 53

Figura 5.4 – Fluxograma............................................................................................... 54

Figura 6.1 - Criança realizando uma jogada.............................................................. 55

Page 8: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 8

Figura 6.2 - Crianças interagindo com o tabuleiro.................................................... 55

Figura 7.1 – Placa do circuito da matriz de leds. ...................................................... 56

Figura 7.2 – Placa do circuito de leitura/escrita do microcontrolador.................... 56

Figura 7.3 – Tabuleiro. .................................................................................................. 57

Figura 10.1 - Cronograma do projeto.........................Erro! Indicador não definido.

Figura 11.1 - Diagrama em blocos do chip Atmega64............. Erro! Indicador não

definido.

Figura 12.1 - Esquemático do microcontrolador. .....Erro! Indicador não definido.

Figura 13.1 – Esquemático da matriz de contatos. .Erro! Indicador não definido.

Figura 14.1 – Esquemático da matriz de leds. .........Erro! Indicador não definido.

Figura 15.1 - Esquemático do gravador. ...................Erro! Indicador não definido.

Figura 16.1 - Esquemático da fonte. ..........................Erro! Indicador não definido.

Page 9: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 9

Lista de Tabelas

TABELA 2.1 – CARACTERÍSTICAS DOS LCD DISPONÍVEIS ............................. 39

TABELA 4.1 – COMPONENTES UTILIZADOS ........................................................ 46

TABELA 4.2 – CUSTOS DO PROJETO .................................................................... 47

TABELA 4.3 – ESPECIFICAÇÕES DO MICROCONTROLADOR ATMEGA64.. 48

TABELA 10.1 – TAREFAS DO CRONOGRAMA.....Erro! Indicador não definido.

Page 10: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 10

Lista de Siglas

AVR – Advanced Virtual RISC.

CISC – Complex Instruction Set Computer.

CMOS – Complementary Metal Oxide Semicondutor.

EEPROM – Electrically Erasable Programmable Read Only Memory.

IA – Inteligência Artificial.

JTAG - Joint Test Action Group.

LCD – Liquid Crystal Display.

LED – Light Emitter Diode.

MLF – Micro Lead Frame.

PC – Personal Computer.

RAM – Random Access Memory.

RISC – Reduced Instruction Set Computer.

SPI - Serial Peripheral Interface.

TQFP – Thin Quad Flat Pack.

Page 11: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 11

Resumo

Este trabalho consiste na construção de um tabuleiro, de 64 casas com

apenas 12 peças brancas, para prática do jogo de damas contra um computador,

que não possui peças e indica seus movimentos através do acionamento de

leds. Através do algoritmo de Minimax foram implementados níveis de

dificuldade para o computador, que realiza todo o processamento no próprio

tabuleiro, através do microcontrolador Atmega64 da Atmel.

Page 12: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 12

Abstract

The following research based project consists of constructing an electronic

board with 64 spaces accompanied by 12 white game pieces. The objective of

the project is to build a game environment where a user plays the game of

checkers against the machine. The computer does not play with real game

pieces; instead, the moves on the computer side are identified through leds that

are activated and deactivated. The computer can play the game in different levels

of difficulty that were implemented through the Minimax algorithm. All the

processing takes place inside the board having the Atmel’s Atmega64 as the

microcontroller.

Page 13: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 13

1. Introdução

1.1. Introdução ao tema do projeto

?? Este projeto baseia-se no projeto de final de curso desenvolvido em Fonseca

(2005). A idéia é incrementar seu projeto de forma que, tanto o hardware

quanto o software, possam ser melhorados a fim de tornar o jogo mais

operacional, tanto em termos de velocidade, quanto em termos de

manipulação do tabuleiro e das peças pela criança. Dessa forma, o tema do

projeto é a construção (hardware e software) de um sistema embarcado,

baseado no sistema anteriormente desenvolvido, que possibilite a prática do

jogo de damas.

1.2. Motivação do desenvolvimento

O projeto desenvolvido em Fonseca (2005) apresentou algumas dificuldades

no desenvolvimento do software, já que com o limite de tamanho para a geração

do código hex, só foi possível programar o algoritmo do MINIMAX de forma

limitada.

Como a memória RAM do microcontrolador era inferior ao necessário, o jogo

possuía apenas um nível de dificuldade, ou seja, o algoritmo só gerava um nível

da árvore, fazendo com que o computador só enxergasse uma jogada a frente

do tabuleiro atual, a qual nem sempre era a melhor jogada a ser feita.

Outro problema enfrentado foram com os sensores utilizados (reed switches)

para identificar as peças nas casas, eles apresentavam instabilidade, já que nem

sempre acusavam as mesmas.

O sistema é voltado para crianças, e apresenta os seguintes incrementos em

relação ao sistema anterior:

?? O processador utilizado é o Atmega64, já que o utilizado no projeto

desenvolvido em 2005, P89C51RD2 da Philips, tinha uma memória RAM

Page 14: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 14

limitada para a execução do algoritmo MINIMAX, impedindo a montagem da

árvore com mais de um nível, fazendo assim, com que a jogada do

computador nem sempre fosse a melhor a ser executada naquele momento.

?? Implementação de 2 níveis de dificuldade no software, sendo que em cada

nível implementado o computador deverá “enxergar” mais um nível de

jogada, dificultando o jogo para a criança.

?? Implementação de validações das jogadas realizadas, por exemplo, se a

criança colocar uma peça em uma casa não permitida, o software deverá

avisá-la.

?? Alteração do sistema de jogadas do computador, de forma que não sejam

necessárias peças, ou seja, de forma que a criança não necessite realizar a

movimentação da peça na jogada do computador.

?? Alterações na construção do tabuleiro de forma que fique mais adaptado à

criança.

1.3. Metas a serem alcançadas

O projeto consiste da elaboração de um tabuleiro para a prática do jogo de

damas com um sistema embarcado que, com ajuda de sensores e algoritmos

inteligentes, têm as seguintes características:

?? Validação das jogadas realizadas, através de algoritmos que verificam as

regras do jogo.

?? Apresentação de no mínimo dois níveis de dificuldade, e para que isso seja

possível, o algoritmo foi implementado de forma que a árvore tivesse dois

níveis ou mais, ou seja, o computador pode enxergar duas ou mais jogadas à

frente do tabuleiro atual.

?? As peças do computador são indicadas através de luzes, ou seja, conforme o

computador realiza sua jogada, a casa de onde a peça sai apaga e a casa de

destino acende, dessa forma todas as casas válidas do tabuleiro poderão

acender.

?? As damas do computador são representadas com o acionamento de mais

uma luz, deste modo, uma dama sempre será indicada com duas luzes

acesas.

Page 15: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 15

O tabuleiro tem um encaixe para as peças do jogador, de forma que as

mesmas fiquem bem colocadas. Cada encaixe tem, em forma de semicírculo,

dois contatos que conforme uma peça, com um metal condutor, seja colocada no

encaixe, feche o contato de um lado para o outro, informando ao processador

que uma peça foi movida para o local, o mesmo acontecerá quando a peça for

removida, mas ao invés de fechar contato, acontece o inverso, ou seja, a

conexão entre os condutores é desfeita, impedindo a passagem de informação

naquela casa.

Alem disso, espera-se através desse sistema, prover com a prática do jogo

um modo de auxiliar crianças no desenvolvimento das inteligências múltiplas,

mais especificamente a espacial e a lógico-matemática. Além de ressaltar

habilidades como a percepção, raciocínio, concentração e desenvolvimento de

estratégias.

2. Estudo Teórico

2.1. Teoria dos jogos

A teoria de jogos (matemática), um ramo da economia, visualiza qualquer

ambiente multiagente como um jogo, desde que o impacto de cada agente sobre

os outros seja “significativo”, não importando se os agentes são cooperativos ou

competitivos. Em Inteligência Artificial (IA), os “jogos” normalmente são de um

tipo bastante especializado – que os teóricos de jogos dominam jogos

determinísticos de revezamento de dois jogadores de soma zero com

informações perfeitas. Em nossa terminologia, isso significa ambientes

determinísticos completamente observáveis em que existem dois agentes cujas

ações devem se alternar e em que os valores de utilidade no fim do jogo são

sempre iguais e opostos (ou simétricos). Por exemplo, se um jogador ganha um

jogo de xadrez (+1), o outro jogador necessariamente perde (-1). É essa

oposição entre as funções de utilidade dos agentes que gera a situação de

competição.

Page 16: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 16

Os jogos ocuparam as faculdades intelectuais dos seres humanos – chegando

algumas vezes a um grau alarmante – desde que surgiu a civilização. Para

pesquisadores de IA, a natureza abstrata de jogos os torna um assunto atraente

para estudo. É fácil representar o estado de um jogo e, em geral, os agentes se

restringem a um pequeno número de ações cujos resultados são definidos por

regras precisas, Jogos físicos, como críquete e hóquei sobre gelo, têm

descrições muito mais complicadas, uma faixa muito maior de ações possíveis e

regras bastante imprecisas definindo a legalidade das ações. Com exceção do

futebol de robôs, esses jogos físicos não atraíram muito interesse na

comunidade de IA.

A participação de jogos foi uma das primeiras tarefas empreendidas em IA.

Por volta de 1950, quase ao mesmo tempo em que os computadores se

tornaram programáveis, o xadrez foi estudado por Konrad Zuse (o criador da

teoria da informação), por Nobert Wiener (o criador da moderna teoria de

controle) e por Alan Turing. Desde então, houve um progresso constante no

padrão dos jogos, até o ponto em que as máquinas ultrapassaram os seres

humanos nos jogos de damas e Othello, derrotaram campeões humanos

(embora não todas as vezes) em xadrez e gamão, e são competitivos em muito

outros jogos.

Os jogos, diferentemente de outros problemas de IA, são interessantes

porque são muito difíceis de resolver. Por exemplo, o xadrez tem um fator médio

de ramificações de cerca de 35, e as partidas com freqüência chegam até a 50

movimentos por cada jogador; assim a árvore de busca tem aproximadamente

35100 ou 10154 nós (embora o grafo de busca tenha “apenas” cerca de 1040 nós

distintos). Os jogos, como o mundo real, exigem portanto habilidade de tomar

alguma decisão, até mesmo quando o cálculo da decisão ótima é inviável. Os

jogos também penalizam a ineficiência de forma severa. Enquanto uma

implementação de busca A* com metade da eficiência custará simplesmente o

dobro do valor para funcionar até a conclusão, um programa de xadrez com

metade da eficiência no uso de seu tempo disponível provavelmente será

derrubado sem piedade, mantendo-se outros aspectos inalterados. Por essa

Page 17: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 17

razão, a busca de jogos elaborou várias idéias interessantes sobre como fazer o

melhor uso possível do tempo (Russel, 2004).

2.2. O Jogo de Damas

Conforme Jogo de Damas (2006), a origem do jogo de damas é

desconhecida. Pinturas e tabuleiros encontrados em túmulos do antigo Egito,

além de outros achados arqueológicos em diversos lugares do mundo, nos dão

conta da existência de jogos bem semelhantes ao atual Jogo de Damas. Não

existem, no entanto, indícios seguros que nos possam elucidar onde e quando

ele surgiu.

No século XVI foram editados na Espanha os primeiros livros de que se tem

notícia, contendo elementos teóricos já bastante desenvolvidos. Embora não

exista nenhum exemplar, conhecido apenas por citação de outros autores, o

primeiro livro editado deve ter sido "El ingénio ó juego de marro, de punto ó

damas", de Anton Torquemada, 1547, Espanha. Hoje, estimam-se em centenas

de milhares os títulos publicados em todo o mundo.

O primeiro campeão mundial, homologado pela Federação Mundial de Jogo

de Damas, foi o austríaco Isidore Weiss, em 1985. A Federação Mundial foi

fundada em 1948, em Paris, França. O jogo de damas popularizou-se no mundo

em dois tabuleiros: 64 casas, que se joga com 12 pedras de cada lado e 100

casas, que se joga com 20 pedras de cada lado.

Tem-se como certo, considerando sua já grande popularidade na Europa

antes da época dos descobrimentos, que o jogo de damas tenha sido introduzido

no Brasil pelos primeiros colonizadores.

O jogo de damas, como esporte, teve seu início no Brasil nos idos de 1935 a

1940, pelas mãos de Geraldino Izidoro. Grandes partes das provas realizadas

naquela época estão registradas no livro "Ciência e Técnica do Jogo de Damas",

de autoria de G. Izidoro e J. Cardoso. Maiores detalhes a respeito deste surto

damístico podem ser encontrados naquela publicação. O primeiro livro editado

Page 18: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 18

no Brasil foi “40 Golpes Clássicos", de autor desconhecido, publicado no Rio de

Janeiro, em 1940.

A partir de 1940, a prática do jogo de damas de uma forma organizada, entrou

em recesso. Não há registros de movimento damístico até 1954, quando, com o

advento do mestre russo W. Bakumenko, um novo surto começou a surgir, no

tabuleiro de 64 casas.

Radicado em São Paulo, W. Bakumenko, egresso de uma escola damística

evoluída, campeão da URSS em 1927, deu início à criação de um núcleo

damístico. Por sua vez, G. Izidoro, que sempre manteve seu interesse pelo jogo

de damas, ao saber da presença de Bakumenko, o procurou. Isto gerou um

encontro famoso entre as equipes de São Paulo e Rio de Janeiro, que

praticamente marcou o reinício das atividades damísticas no país. Esta prova foi

realizada no Rio de Janeiro, no dia 02 de maio de 1954.

Com Bakumenko em São Paulo e G. Izidoro no Rio, o jogo de damas tomou

um impulso fabuloso. Bakumenko, alicerçado em sólidos conhecimentos

técnicos, incentivou a prática do jogo, principalmente pela publicação semanal

de uma coluna damística no jornal "A Gazeta Esportiva". Manteve também

outras colunas e incentivou a criação de outras (L. Engels, famoso jogador de

xadrez, incentivado pelo mestre, manteve uma seção no jornal "O Estado de São

Paulo"). Criou grupos damístico e foi a centelha da criação de muitos outros.

Editou dois livros: "Jóias do Jogo de Damas" e "Curso das Damas Brasileiras".

Bakumenko faleceu em 13 de maio de 1969.

Por sua vez, G. Izidoro, realizando torneios, criando grupos damísticos e

incentivando com simultâneas e prêmios a criação de outros, escrevendo

diversas colunas em jornais e revistas, fez crescer o interesse pelo esporte no

Rio e em todo o país. Todo este movimento resultou na criação das Federações

Estaduais: São Paulo, Rio de Janeiro, Rio Grande do Sul, Espírito Santo e Minas

Gerais criaram suas Federações. Em 5 de abril de 1963, na sede do Clube

Estrela de Oliveira, à Rua do Gasômetro, na cidade de São Paulo, foi fundada a

Federação Paulista de Jogo de Damas, a primeira federação no Brasil.

Page 19: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 19

A década de 60 foi uma época de grande desenvolvimento para o jogo de

damas. Em Belo Horizonte, em 1967, foi organizado o maior campeonato de

jogo de damas até hoje do Brasil, reunindo 1009 participantes.

O grande obstáculo surgiu para o jogo de damas brasileiro em 1967, quando

João Havelange, então presidente da Confederação Brasileira de Desportos, que

na época englobava todos os esportes amadores, qualificou o jogo de damas

como mera recreação, desfiliando-o da CBD. Foi um atraso irreparável para a

modalidade, pois somente em 19 de novembro de 1988, 21 anos depois, é que o

jogo de damas voltou à condição de esporte no Brasil. Foram 21 anos à margem

do processo esportivo nacional.

Porém, muito se evoluiu nesses 21 anos. Alguns meses após a desfiliação da

CBD, os damistas se reuniram em Niterói e fundaram a Confederação Brasileira

de Jogo de Damas, sendo seu primeiro presidente o Dr. Murilo Portugal.

E em 1967, aconteceu o 1º Campeonato Brasileiro de Jogo de Damas, de 64

casas, em São Pedro D'Aldeia, ficando na primeira colocação o paulista

Humberto Olivarbo e o espírito-santense José Carlos Rabelo. Houve uma partida

para decidir o título e a vitória coube a José Carlos Rabelo, que se tornou o

primeiro campeão brasileiro individual (Jogo de Damas, 2006).

Maiores informações podem ser encontradas em Confederação Brasileira

(2006), Wikipedia (2006) e Jogos Antigos (2006).

2.3. Regras do jogo de damas

Conforme Jogo de Damas (2006), o jogo é praticado em um tabuleiro de 64

casas, claras e escuras, conforme a Figura 2.1. A grande diagonal, escura, deve

ficar sempre à esquerda de cada jogador. O objetivo do jogo é imobilizar ou

capturar todas as peças do adversário.

Page 20: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 20

Figura 2.1 - Tabuleiro 1.

FONTE: Jogo de Damas (2006).

Esse jogo é praticado entre dois parceiros, com 12 pedras brancas de um lado

e com 12 pedras pretas de outro lado, como mostra a Figura 2.2. O lance inicial

cabe sempre a quem estiver com as peças brancas. Também se pode jogar

damas em um tabuleiro de 100 casas, com 20 pedras para cada lado (Damas

Internacional).

Figura 2.2 - Tabuleiro 2.

FONTE: Jogo de Damas (2006).

A pedra anda só para frente, uma casa de cada vez. Quando a pedra atinge a

oitava linha do tabuleiro ela é promovida à dama, como mostra a Figura 2.3.

Page 21: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 21

Figura 2.3 - Tabuleiro 3.

FONTE: Jogo de Damas (2006).

A dama é uma peça de movimentos mais amplos. Ela anda para frente e para

trás, quantas casas quiser. A dama não pode saltar uma peça da mesma cor,

como mostra a Figura 2.4.

Figura 2.4 - Tabuleiro 4.

FONTE: Jogo de Damas (2006).

A captura é obrigatória. Duas ou mais peças juntas, na mesma diagonal, não

podem ser capturadas, como mostra a Figura 2.5.

Page 22: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 22

Figura 2.5 - Tabuleiro 5.

FONTE: Jogo de Damas (2006).

A pedra captura a dama e a dama captura a pedra. Pedra e dama têm o

mesmo valor para capturarem ou serem capturadas, como mostra a Figura 2.6.

Figura 2.6 - Tabuleiro 6.

FONTE: Jogo de Damas (2006).

A pedra e a dama podem capturar tanto para frente como para trás, uma ou

mais peças, como mostra a Figura 2.7.

Figura 2.7 - Tabuleiro 7.

FONTE: Jogo de Damas (2006).

Page 23: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 23

Se no mesmo lance se apresentar mais de um modo de capturar, é obrigatório

executar o lance que capture o maior número de peças (Lei da Maioria), como

mostra a Figura 2.8.

Figura 2.8 - Tabuleiro 8.

FONTE: Jogo de Damas (2006).

A pedra que durante o lance de captura de várias peças, apenas passe por

qualquer casa de coroação, sem aí parar, não será promovida à dama, como

mostra a Figura 2.9.

Figura 2.9 - Tabuleiro 9.

FONTE: Jogo de Damas (2006).

Na execução do lance de captura, é permitido passar mais de uma vez pela

mesma casa vazia, não é permitido capturar duas vezes a mesma peça, como

mostra a Figura 2.10.

Page 24: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 24

Figura 2.10 - Tabuleiro 10.

FONTE: Jogo de Damas (2006).

Na execução do lance de captura, não é permitido capturar a mesma peça

mais de uma vez e as peças capturadas não podem ser retiradas do tabuleiro

antes de completar o lance de captura, como mostra a Figura 2.11.

Figura 2.11 - Tabuleiro 11.

FONTE: Jogo de Damas (2006).

O empate é declarado nos seguintes casos:

?? Após 20 lances sucessivos de damas, sem captura ou deslocamento de

pedra, a partida é declarada empatada;

Em casos especiais, o empate é declarado após 5 lances. Isso ocorre quando

as peças que sobram no tabuleiro são as seguintes:

?? duas damas contra duas damas;

?? duas damas contra uma;

Page 25: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 25

?? duas damas contra uma dama e uma pedra;

?? uma dama contra uma dama e;

?? uma dama contra uma dama e uma pedra.

2.4. Decisões ótimas em jogos

Considera-se um jogo com dois jogadores, os quais chamarão MAX e MIN.

MAX faz o primeiro movimento, e depois eles se revezam até o jogo terminar. No

fim do jogo, os pontos são dados ao jogador vencedor e são impostas

penalidades ao perdedor. Um jogo pode ser definido formalmente como uma

espécie de problema de busca com os seguintes componentes:

?? O estado inicial, que inclui a posição do tabuleiro e identifica o jogador que

fará o movimento.

?? Uma função sucessor, que retorna uma lista de pares (movimento, estado),

cada qual indicando um movimento válido e o estado resultante.

?? Um teste de término, que determina quando o jogo termina. Os estados em

que o jogo é encerrado são chamados estados terminais.

Uma função utilidade (também chamada função objetivo ou função

compensação), que dá um valor numérico aos estados terminais. Em damas, o

resultado é uma vitória, uma derrota ou um empate, com valores +1, -1 ou 0.

Alguns jogos têm uma variedade mais ampla de resultados possíveis; a

compensação no gamão varia de 192 até -192 (Russel, 2006).

2.4.1. Árvore do jogo

O estado inicial e os movimentos válidos para cada lado definem a árvore do

jogo correspondente ao jogo. A Figura 2.12 mostra parte da árvore do jogo para

o jogo-da-velha. A partir do estado inicial, MAX tem nove movimentos possíveis.

O jogo se alterna entre a colocação de um X por MAX e a colocação de um O

por MIN até alcançarmos nas de folhas correspondentes a estados terminais,

tais que um jogador tem três símbolos em uma linha ou todos os quadrados são

preenchidos. O número em cada nó de folha indica o valor de utilidade do estado

terminal, do ponto de vista de MAX; valores altos são considerados bons para

Page 26: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 26

MAX e ruins para MIN (o que explica os nomes dados aos jogadores). Cabe a

MAX usar a árvore de busca (em particular a utilidade de estados terminais) para

determinar o melhor movimento (Russel, 2004).

Figura 2.12 – Árvore de busca (parcial) para o jogo da velha.

FONTE: Russel (2006), pág. 158.

2.4.2. Estratégias ótimas

Em um problema de busca normal, a solução ótima seria uma seqüência de

movimentos que levasse a um estado objetivo – um estado terminal que

representa uma vitória. Por outro lado, em um jogo, MIN tem alguma relação

com esse estado. Portanto, MAX deve encontrar uma estratégia de contingência

que especifique o movimento de MAX no estado inicial, e depois os movimentos

de MAX nos estados resultantes de cada resposta possível de MIN a esses

movimentos e assim por diante. Em termos gerais, uma estratégia ótima leva a

resultados no mínimo tão bons quanto qualquer outra estratégia quando se está

enfrentando um oponente infalível. Começaremos mostrando como encontrar

essa estratégia ótima, embora deva ser inviável para MAX calculá-la no caso de

jogos mais complexos que o jogo-da-velha.

Page 27: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 27

Até mesmo um jogo simples como jogo-da-velha é muito complexo para se

traçar a árvore de jogo inteira, e assim nos limitaremos ao jogo trivial da Figura

2.12 . Os movimentos possíveis para MAX no nó raiz são identificados por a1, a2

e a3. As respostas possíveis para a1 correspondentes a MIN são b1, b2 e b3 e

assim sucessivamente. Esse jogo específico termina depois de um movimento

realizado por MAX e por MIN. (No linguajar dos jogos, dizemos que essa árvore

tem profundidade de um único movimento, que consiste em dois meios-

movimentos, cada um dos quais é chamado jogada.) As utilidade dos estados

terminais nesse jogo variam de 2 até 14.

Dada uma árvore de jogo, a estratégia ótima pode ser determinada

examinando-se o valor minimax de cada nó, que representamos como VALOR-

MINIMAX(n). O valor minimax de um nó é a utilidade (para MAX) de se encontrar

no estado correspondente, supondo-se que ambos os jogadores têm um

desempenho ótimo desde esse estado até o fim do jogo. É óbvio que o valor

minimax de um estado terminal é simplesmente sua utilidade. Além disso, dada

uma escolha, MAX preferirá se mover para um estado de valor máximo,

enquanto MIN preferirá em estado de valor mínimo.

Assim, tem-se:

VALOR-MINIMAX(n) =

UTILIDADE(n)

Maxs?Sucessores(n) VALOR-MINIMAX(s)

Min s?Sucessores(n) VALOR-MINIMAX(s)

Se n é um estado terminal

Se n é um nó de MAX

Se n é um nó de MIN

Aplicam-se essas definições à árvore de jogo da Figura 2.13. Os nós terminais

no nível inferior já estão identificados com seus valores de utilidade. O primeiro

nó de MIN, identificado por B, tem três sucessores com valores 3, 12 e 8;

portanto, seu valor minimax é 3. De modo semelhante, os outros nós de MIN têm

valor minimax 2. O nó raiz é um nó de MAX. Seus sucessores têm valores

minimax 3, 2 e 2; logo, ele tem uma valor minimax igual a 3. Também podemos

identificar a decisão minimax na raiz: a ação a1 é a escolha ótima para MAX,

porque leva ao sucessor com o mais alto valor minimax.

Page 28: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 28

Figura 2.13 – Árvore do jogo de duas jogadas.

FONTE: Russel (2006), pág. 159.

Essa definição de jogo ótimo para MAX supõe que MIN também joga de forma

ótima, ela maximiza o resultado para MAX no pior caso. E se MIN não jogar de

forma ótima? Nesse caso, é fácil mostra que MAX terá um desempenho ainda

melhor que a estratégia de minimax; porém, essas estratégias necessariamente

têm um desempenho pior contra oponentes ótimos (Russel, 2004).

2.4.3. O algoritmo minimax

O algoritmo minimax calcula a decisão minimax a partir do estado corrente.

Ela utiliza uma computação recursiva simples dos valores minimax de cada

estado sucessor, implementando diretamente as equações da definição. A

recursão percorre todo o caminho descendente até as folhas da árvore, e depois

os valores minimax são propagados de volta pela árvore, à medida que a

recursão retorna. Por exemplo, na Figura 2.13, primeiro o algoritmo efetua uma

recursão descendo a árvore até os três nós de folhas inferiores e emprega a

função UTILIDADE sobre eles para descobrir que seus valores são 3, 12 e 8,

respectivamente. Em seguida ele toma o mínimo desses valores, 3, e o devolve

como valor propagado de volta para o nó B. Um processo semelhante fornece os

valores propagados de volta de 2 para C e 2 para D. Por fim, tomamos o valor

máximo entre 3, 2 e 2 para obter o valor propagado de volta igual a 3 para o nó

raiz.

O algoritmo minimax executa uma exploração completa em profundidade da

árvore do jogo. Se a profundidade máxima da árvore é m e existem b

Page 29: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 29

movimentos válidos em cada ponto, a complexidade de tempo do algoritmo

minimax é O(bm). A complexidade de espaço é O(bm) para um algoritmo que

gera todos os sucessores de uma vez ou O(m) para uma algoritmo que gera um

sucessor de cada vez. É claro que em jogos reais, o custo de tempo é totalmente

impraticável, mas esse algoritmo serve como base para a análise matemática de

jogos e para algoritmos mais práticos (Russel, 2004).

função DECISÃO-MINIMAX(estado) retorna uma ação

entradas: estado, estado corrente no jogo

v ? VALOR-MAX(estado)

retornar a ação em SUCESSORES(estado) com valor v

função VALOR-MAX(estado) retorna um valor de utilidade

se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado)

v ? -8

para a, s em SUCESSORES(estado) faça

v ? MAX(v, VALOR-MIN(s))

retornar v

função VALOR-MIN(estado) retorna um valor de utilidade

se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado)

v ? 8

para a, s em SUCESSORES(estado) faça

v ? MIN(v, VALOR-MAX(s))

retornar v

Conforme os algoritmos acima, pode-se calcular a decisão minimax. Ele

retorna a ação correspondente ao melhor movimento possível, isto é, o

movimento que leva ao resultado com a melhor utilidade, sob a suposição de

que o oponente joga para minimizar a utilidade. As funções VALOR-MAX e

Page 30: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 30

VALOR-MIN passam por toda a árvore de jogo, até chegar às folhas, a fim de

determinar o valor propagação de volta de um estado (RICH, 1994).

2.4.4. Poda alfa-beta

O problema da busca minimax é que o número de estados de jogo que ela

tem de examinar é exponencial em relação ao número de movimentos.

Infelizmente, não podemos eliminar o expoente, mas podemos efetivamente

reduzi-lo pela metade. O artifício é a possibilidade de calcular a decisão minimax

correta sem examinar todos os nós na árvore de jogo. Ou seja, podemos tomar

emprestada a idéia de poda, a fim de poder de deixar de considerar grandes

partes da árvore. A técnica específica que examinaremos é chamada poda alfa-

beta. Quando é aplicada a uma árvore minimax padrão, ela retorna o mesmo

movimento que minimax retornaria, mas poda as ramificações que não terão

influência possível sobre a decisão final.

Considerando-se novamente a árvore de jogo de duas jogadas da Figura

2.13. Vamos acompanhar mais uma vez o cálculo da decisão ótima, agora

prestando bastante atenção ao que conhecemos em cada ponto do processo.

Observando-se a Figura 2.14 (a), percebemos que a primeira folha sob B tem

valor 3, consequentemente, B, que é um nó de MIN, tem valor máximo 3. (b) a

segunda folha sob B tem valor 12; MIN evitaria esse movimento, de forma que o

valor de B ainda é no máximo 3. (c) A terceira folha sob B tem valor 8, e como B

não tem nenhum sucessor menor que 3, e MIN sempre procura o menor valor, o

valor de B é exatamente 3.

Pode-se deduzir que o valor raiz é pelo menos 3, já que MAX tem uma

escolha de valor 3 na raiz. (d) A primeira folha abaixo de C tem o valor 2, assim,

C, que é um nó de MIN, tem no máximo 2. Porém, sabemos que B vale 3,

portanto, MAX, que sempre escolhe o maior valor, nunca escolheria C. Desse

modo, não há razão para se examinar os outros sucessores de C.

A seguir é mostrado um exemplo de poda alfa-beta. (e) A primeira folha

abaixo de D tem o valor 14, e então D vale no máximo 14. Esse valor ainda é

Page 31: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 31

mais alto que a melhor alternativa de MAX (isto é, 3), e portanto precisamos

continuar a explorar sucessores de D. Note também que agora temos limites

para todos os sucessores da RAIZ, e conseqüentemente o valor da RAIZ

também é no máximo 14. (f) O segundo sucessor de D vale 5, e assim

novamente precisamos continuar a exploração. O terceiro sucessor vale 2,

agora, D vale exatamente 2. A decisão de MAX na raiz é efetuar o movimento

para B, o que nos dá o valor 3.

Figura 2.14 – Árvore do jogo de duas jogadas utilizando poda alfa-beta.

FONTE: Russel (2004), pág. 162.

Isso também pode ser visto como uma simplificação da fórmula de VALOR-

MINIMAX. Sejam x e y valores dos dois sucessores não-avaliados do nó C da

figura acima e seja z o mínimo entre x e y. O valor do nó raiz é dado por:

VALOR-MINIMAX(raiz) = max(min(3, 12, 8), min(2, x, y), min(14, 5, 2))

= max(3, min(2, x, y), 2)

= max(3, z, 2) onde z = 2

= 3

Page 32: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 32

Em outras palavras, o valor da raiz é conseqüentemente a decisão minimax

são independentes dos valores das folhas podadas x e y.

A poda alfa-beta pode ser aplicada a árvores de qualquer profundidade, e

freqüentemente, é possível podar subárvores inteiras em lugar de podar apenas

folhas. O princípio geral é este: considere um nó n em algum lugar da árvore

(veja a Figura 2.15), tal que o Jogador tenha a escolha de movimento até esse

nó. Se o Jogador tiver uma escolha melhor m no nó pai de n ou em qualquer

ponto de escolha de movimento até esse nó. Se o Jogador tiver uma escolha

melhor m no nó pai de n ou em qualquer ponto de escolha adicional acima dele,

então n nunca será alcançado em um jogo real. Assim, uma vez que

descobrimos o suficiente sobre n (examinando alguns de seus descendentes)

para chegar a essa conclusão, poderemos podá-la.

A busca minimax é do tipo em profundidade; então, em qualquer instante

considera-se os nós ao longo de um único caminho na árvore. A poda alfa-beta

obtém seu nome a partir dos dois parâmetros a seguir, que descrevem limites

sobre os valores propagados de volta que aparecem em qualquer lugar ao longo

do caminho:

?? a ? o valor da melhor escolha (isto é, a de valor mais alto) que encontramos

até o momento em qualquer ponto de escolha ao longo do caminho para

MAX.

?? ß ? o valor da melhor escolha (isto é, a de valor mais baixo) que

encontramos até agora em qualquer ponto de escolha ao longo do caminho

para MIN.

Page 33: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 33

Figura 2.15 – Poda alfa-beta.

FONTE: adaptada de Russel (2004), pág. 163.

A busca alfa-beta atualiza os valores de a e ß à medida que prossegue e poda

as ramificações restantes em um nó (isto é, encerra a chamada recursiva) tão

logo se sabe que o valor do nó corrente é pior que o valor corrente de a ou ß

para MAX ou MIN, respectivamente.

A efetividade da poda alfa-beta é altamente dependente da ordem em que

os sucessores são examinados. Por exemplo, na Figura 2.14 (e) e (f), não

poderíamos podar quaisquer sucessores de D, porque os piores sucessores (do

ponto de vista de MIN) foram gerados primeiro. Se o terceiro sucessor tivesse

sido gerado primeiro, seríamos capazes de podar os outros dois. Isso sugere

que poderia valer a pena tentar examinar primeiro os sucessores que têm

probabilidade de serem melhores.

Supõe-se que pode ser feito, então o resultado será que alfa-beta

precisará examinar apenas O (b3d/4) para o valor moderado de b. Acrescentar

esquemas dinâmicos de ordenação de movimentos, como tentar primeiro os

movimentos considerados os melhores da última vez, nos levará até bem perto

do limite teórico (Russel, 2004).

Page 34: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 34

2.4.5. Decisões imperfeitas em tempo real

Conforme Russel (2004), o algoritmo minimax gera o espaço de busca do

jogo inteiro, enquanto o algoritmo alfa-beta nos permite podar grandes partes

desse espaço. Porém, alfa-beta ainda tem que fazer a busca em toda a distância

até os estados terminais, pelo menos para uma parte do espaço de busca. Em

geral, essa profundidade não é prática, porque os movimentos devem ser

realizados em um período de tempo razoável – normalmente por alguns minutos,

no máximo. O artigo de 1950 de Shannon, Programing a computer for playing

chess, propunha em vez disso que os programas cortassem a busca mais cedo

e aplicassem uma função de avaliação heurística aos estados de busca,

transformando efetivamente nós não terminais em folhas terminais. Em outras

palavras, a sugestão é alterar minimax ou alfa-beta de duas maneiras: a função

de utilidade é substituída por uma função de avaliação de heurística AVAL, que

fornece uma estimativa da utilidade da posição, e o teste de término é

substituído por um teste de corte que decide quando aplicar AVAL.

2.4.5.1. Funções de avaliação

Uma função de avaliação retorna, segundo RICH (1994), uma estimativa de

utilidade esperada do jogo, a partir de uma dada posição de mesma forma que

as funções de heurística retornam uma estimativa de distância até a meta. A

idéia de um avaliador não era nova quando Shannon a propôs. Durante séculos,

os jogadores de xadrez (e os aficionados por outros jogos) desenvolveram meios

de julgar o valor de uma posição, porque os seres humanos são ainda mais

limitados que os programas de computador no volume de busca que podem

realizar. Deve ficar claro que o desempenho de um programa de jogos depende

da qualidade de sua função de avaliação. Uma função de avaliação inexata

guiará um agente em direção e posições que acabarão por serem perdidas.

A função de avaliação pode ser projetada da seguinte forma: primeiro, a

função de avaliação deve ordenar os estados terminais do mesmo modo que a

verdadeira função de utilidade; caso contrário, um agente que a utilizasse

poderia selecionar movimentos não ótimos, mesmo que pudesse antecipar todos

os movimentos até o fim do jogo. Em segundo lugar, a computação não deve

Page 35: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 35

demorar tempo demais (A função de avaliação poderia chamar DECISÃO-

MINIMAX como uma sub-rotina e calcular o valor exato da posição, mas isso iria

anular a principal finalidade: poupar tempo.) Em terceiro lugar, no caso de

estados não-terminais, a função de avaliação deve estar fortemente relacionada

com as chances reais de vitória.

Se a busca tiver de ser cortada em estados não-terminais, o algoritmo será

necessariamente incerto sobre os resultados finais desses estados. Esse tipo de

incerteza é induzido por limitações computacionais, e não informativas. Dado o

volume limitado de computação que a função de avaliação pode realizar para um

determinado estado, o melhor que ela pode fazer é arriscar um palpite sobre o

resultado final.

Para tornar essa idéia mais concreta, deve-se analisar que a maioria das

funções de avaliação atua calculando diversas características do estado – por

exemplo, o número de peças tomadas por cada lado de um jogo de damas.

Consideradas em conjunto, as características definem diversas categorias ou

classes de equivalência de estados: os estados de cada categoria têm os

mesmos valores para todas as características. Qualquer categoria específica,

em termos gerais, conterá alguns estados que levam a vitórias, alguns que

levam a empates e alguns que levam a derrotas. A função de avaliação não tem

como saber os estados de cada grupo, mas pode retornar um único valor capaz

de refletir a proporção de estados que conduzem a cada resultado. Por exemplo,

vamos supor que nossa experiência sugira que 72% dos estados encontrados na

categoria levam a vitória (com utilidade +1); 20% levam a uma derrota (-1) e 8%

a um empate (0). Então, uma avaliação razoável dos estados na categoria é a

média ponderada ou valor esperado: (0,72 x +1) + (0,20 x -1) + (0,08 x 0) =

0,52. Em princíp io, o valor esperado pode ser determinado para cada categoria,

o que resulta em uma função de avaliação que funciona para qualquer estado.

Como ocorre com estados terminais, a função de avaliação não precisa retornar

valores esperados reais, desde que a ordenação dos estados seja a mesma

(Russel, 2004).

Page 36: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 36

Segundo Figueiredo (2006), na prática, essa espécie de análise exige muitas

categorias e, conseqüentemente, muita experiência para estimar todas as

probabilidades de vitória. Em vez disso, a maioria das funções de avaliação

calcula contribuições numéricas separadas de cada característica e depois as

combina para encontrar o valor total. Por exemplo, a heurística posicional que

calcula a força de cada tabuleiro conforme a disposição e a promoção das peças

da seguinte maneira, é atribuído um valor material aproximado para as peças

sendo, o peão vale 5, caso esteja prestes a virar dama vale 7 e a dama vale 10.

São atribuídos os seguintes pesos para as casas do tabuleiro, conforme a Figura

2.16.

Figura 2.16 – Peso das casas na heurística posicional.

FONTE: Figueiredo (2006).

Então calcula-se a força de cada jogador através do somatório do peso de

cada peça (w) vezes o peso da respectiva casa do tabuleiro (f) e depois se

calcula a força do tabuleiro subtraindo a força das peças brancas (jogador) pela

força das peças pretas (computador).

AVAL(s) = FORÇA-BRANCA() – FORÇA-PRETA()

FORCA-BRANCA = ? w ifi ,sendo wi as peças brancas

FORCA-PRETA = ? w ifi ,sendo wi as peças pretas

Outra análise eficaz é a heurística do triângulo defensivo, que é calculada

através da fórmula (p - b)/(p + b) sendo p a pontuação das pretas e b a

pontuação das brancas. Cada pontuação é calculada através de caracteres

Page 37: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 37

defensivos (casas privilegiadas da defesa) e caracteres materiais (1 ponto para o

peão e 3 pontos para a dama), ou seja, além de levar em conta a quantidade e o

tipo da peça (peão ou dama) de cada jogador, a heurística do triângulo defensivo

também privilegia o fato da peça estar em sua base ou pertencer ao triângulo

defensivo.

2.4.5.2. Busca com corte

A próxima etapa é modificar BUSCA-ALFA-BETA, de modo que ela chame a

função heurística AVAL quando for apropriado cortar a busca. Em termos de

implementação, substituímos as duas linhas das funções VALOR-MAX e

VALOR-MIN que mencionam TESTE-TERMINAL pela linha a seguir:

se TESTE-DE-CORTE (estado, profundidade) então retornar AVAL(estado)

Também deve-se providenciar alguma anotação para que a profundidade

corrente seja incrementada em cada chamada recursiva. A abordagem mais

direta para controlar a quantidade de busca é definir um limite de profundidade

fixo, a fim de que TESTE-DE-CORTE (estado, profundidade) retorne verdadeiro

para toda profundidade maior que alguma profundidade fixa d. (Ela também deve

retornar verdadeiro para todos os estados terminais, como fazia TESTE-

TERMINAL.) A profundidade d é escolhida de modo que o período de tempo

utilizado não exceda o período permitido pelas regras do jogo.

Uma abordagem mais resistente é aplicar o aprofundamento iterativo (ou

busca em profundidade por aprofundamento iterativo), ou seja, é uma estratégia

geral, usada com freqüência em combinação com a busca em profundidade, que

encontra o melhor limite da profundidade. Ela faz isso aumentando gradualmente

o limite – primeiro 0, depois 1, depois 2 e assim por diante – até encontrar um

objetivo. Isso ocorrerá quando o limite de profundidade alcançar p, a

profundidade do nó objetivo mais raso.

Page 38: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 38

Quando o tempo se esgota, o programa retorna ao movimento selecionado

pela busca mais profunda concluída. No entanto, essas abordagens podem levar

a erros, devido a natureza aproximada da função de avaliação.

Considera mais uma vez a função de avaliação simples para damas, ou seja,

suponha que o programa pesquise até a profundidade limite alcançando uma

posição onde as peças pretas têm vantagem sobre as brancas. Isso seria

reportado como o valor heurístico do estado, declarando-se assim que o estado

provavelmente levará a uma vitória das peças pretas. Porém, o próximo

movimento das brancas teria uma vantagem muito maior sobre as pretas.

Portanto, a posição resulta na realidade em uma vitória das brancas, mas isso só

pode ser visto observando-se mais uma jogada à frente.

É óbvio que é necessário um teste de corte mais sofisticado. A função de

avaliação deve ser aplicada apenas a posições quiescentes – isto é, posições

em que é improvável haver grandes mudanças de valores no futuro próximo

Russel (2004).

2.5. Microcontrolador

Um microcontrolador é um computador programável, em um chip otimizado

para controlar dispositivos eletrônicos. É uma espécie de microprocessador, com

memória e interfaces de E/S (Entrada e Saída) integrados, enfatizando a auto-

suficiência, em constante com um microprocessador de propósito geral, o

mesmo tipo usado nos PCs, que requer chips adicionais para prover as funções

necessárias (Schunk, 2001).

2.6. Display LCD

Os módulos LCD são interfaces de saída muito útil em sistemas

microprocessados. Estes módulos utilizam um controlador próprio, permitindo

sua interligação com outras placas através de seus pinos, onde deve ser

alimentado o módulo e interligado o barramento de dados e controle com a placa

do usuário. Naturalmente que além de alimentar e conectar os pinos do módulo

com a placa do usuário, deverá haver um protocolo de comunicação entre as

Page 39: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 39

partes, que envolve o envio de bytes de instruções e bytes de dados pelo

sistema do usuário.

Os LCD gráficos são encontrados com resuluções de 122x32, 128x64, 240x64

e 240x128 dots pixel, e geralmente estão disponíveis com 20 pinos para

conexão. Os LCD comuns (tipo caracter) são especificados em número de linhas

por colunas e são encontrados nas configurações previstas na TABELA 2.1.

TABELA 2.1 – CARACTERÍSTICAS DOS LCD DISPONÍVEIS.

Número de

Colunas

Numero de

Linhas

Quantidade de

pinos

8 2 14

12 2 14/15

16 1 14/16

16 2 14/16

16 4 14/16

20 1 14/16

20 2 14/16

20 4 14/16

24 2 14/16

24 4 14/16

40 2 16

40 4 16

FONTE: CICHACZEWSKI (2002).

Os módulos podem ser encontrados com LED backlight (com uma iluminação

de fundo) para facilitar as leituras durante a noite. Neste caso, a alimentação

deste led faz-se normalmente pelos pinos 15 e 16 para os módulos comuns e 19

e 20 para os módulos gráficos, sendo os pinos 15 e 19 para ligação ao anodo e

os pinos 16 e 20 para o catodo. A corrente de alimentação deste led varia de 100

a 200mA, dependendo do modelo.

Page 40: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 40

Estes módulos utilizam um controlador próprio, permitindo sua interligação

com outras placas através de seus pinos, onde deve ser alimentado o módulo e

interligado o barramento de dados e controle do módulo com a placa do usuário.

Naturalmente que além de alimentar e conectar os pinos do módulo com a placa

do usuário, deverá haver um protocolo de comunicação entre as partes, que

envolve o envio de bytes de instruções e bytes de dados pelo sistema do

usuário. A Figura 2.17 ilustra um display LCD (Display LCD, 2006)

Figura 2.17 – Display LCD.

FONTE: Cichaczewski (2002).

2.7. Diodo emissor de luz

O LED (Light Emitter Diode - Diodo Emissor de Luz), como o próprio nome já

diz, é um diodo (junção P-N) que quando energizado emite luz visível. A luz é

monocromática e é produzida pelas interações energéticas do elétron. O

processo de emissão de luz pela aplicação de uma fonte elétrica de energia é

chamado eletroluminescência. Em qualquer junção P-N polarizada diretamente,

dentro da estrutura, próximo à junção, ocorrem recombinações de lacunas e

elétrons. Essa recombinação exige que a energia possuída por esse elétron, que

até então era livre, seja liberada, o que ocorre na forma de calor ou fótons de luz,

como mostrado na Figura 2.18.

Page 41: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 41

Figura 2.18 - Diodo emissor de luz (LED).

FONTE: Adaptada de Complex (2006).

3. Descrição

O sistema é composto por um tabuleiro com 64 casas, 12 peças brancas e

alguns componentes eletrônicos, sendo que as peças do computador são

mostradas por meio de leds.

Todas as casas têm contatos, que são responsáveis por identificar se há ou

não uma peça na casa. Todo o processamento é realizado pelo

microcontrolador. O hardware é composto por três módulos, como mostra a

Figura 3.1:

Módulos do hardware

Módulo de Entrada (Jogador)

Módulo de Processamento

Módulo de Saída(Computador)

Jogada do jogador

Jogada do computador

Estado do jogo

Estado do jogo

Figura 3.1 – Módulos do hardware.

Conforme a Figura 3.1, segue uma descrição das características da cada

módulo do hardware:

Page 42: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 42

?? Módulo de Entrada: onde o jogador movimenta as peças. A movimentação

de uma peça faz com que o contato da casa em que a peça foi removida

passe para aberto, e o da casa em que a peça foi movida passe para

fechado, permitindo assim saber em o destino e a origem da peça.

?? Módulo de Processamento: com os dados do módulo de entrada, o

microcontrolador realiza o processamento, e através do algoritmo de

MINIMAX e do nível escolhido pelo jogador verifica a melhor jogada a ser

efetuada pelo computador, assim gera os dados de saída para o próximo

módulo.

?? Módulo de Saída: representa a jogada do computador. Os leds da casa a

qual o computador deseja mover a peça se apagam e os da casa onde a

peça será movida se iluminam.

3.1. Arquitetura AVR

A família AVR de microcontroladores da ATMEL é integrada com tecnologia

CMOS High-Speed e possuem arquitetura RISC de 8 bits com conceito Harvard,

tendo portanto barramentos de programa e memória separados, oferecendo alto

desempenho, aliado a um baixo consumo de potência.

Possuem 130 instruções poderosas, sendo a maioria delas executadas em

um único período de clock, podendo chegar a 16MIPS com o clock máximo de

16 MHz, sendo que os chips da linha ATmega podem ser encontrados com clock

de até 20Mhz.

Possuem ainda 32 registros de uso geral, todos conectados diretamente à

Unidade Aritmética e Lógica, permitindo que dois registros quaisquer sejam

acessados em um único ciclo de clock, por uma única instrução. Estas

características especiais proporcionam códigos mais eficientes tendo como

resultado velocidades de processamento até dez vezes mais rápido que os

microcontroladores convencionais de arquitetura CISC.

Page 43: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 43

Uma grande vantagem de se usar a arquitetura AVR é que além dela ser

projetada buscando eficiência com a linguagem de programação C, possui

também uma grande quantidade de softwares de desenvolvimento no mercado e

muitos deles gratuitos (Lanari, 2006).

4. Especificação do hardware

4.1. Funções do hardware

O tabuleiro contém em cada uma de suas casas pretas um encaixe exato para

uma peça, no qual se encontra dois contatos, um de cada lado extremo da casa,

esses contatos são responsáveis pela identificação se há ou não uma peça na

casa como mostra a Figura 4.1.

Sistema de Encaixe

MATERIAL CONDUTOR

CONTATOS

Figura 4.1 – Sistema de encaixe das peças no tabuleiro.

Cada peça do jogo contém na sua base um material condutor, sendo assim,

conforme a peça é colocada no encaixe, esses contatos são fechados,

mandando instantaneamente um sinal para o microcontrolador, o qual interpreta

a ação (peça removida ou colocada) e realiza o devido processamento.

Figura 4.2 – Foto do contato de uma das casas.

Page 44: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 44

4.1.1. Matriz de contatos

A matriz de contatos é utilizada para descobrir qual peça foi movida e para

onde ela foi. O tabuleiro contém 64 casas das quais, apenas 32 são jogáveis,

portanto, a matriz é constituída de 32 contatos, divididos em 8 linhas por 8

colunas, com 4 casas cada conforme a

Figura 4.3. Assim, quando o microcontrolador varre o tabuleiro para descobrir

se alguma peça foi movida, ele envia um sinal para cada coluna, que através da

lógica utilizada no circuito da matriz, retorna à linha onde a peça foi removida ou

posicionada.

COLUNA 8

COLUNA 7

COLU

NA 6

COLUNA 5

COLU

NA 4

COLUNA 3

COLUNA 2

COLUNA 1

LINHA 1

LINHA 2

LINHA 3

LINHA 4

LINHA 5

LINHA 6

LINHA

7

LINHA 8

Matriz de contatos

Figura 4.3 – Matriz de contatos.

Por exemplo, caso o primeiro movimento do jogo tenha sido da casa da linha

6 com a coluna 4 para a linha 5 coluna 3, o microcontrolador varre todas as

casas enviando um sinal para todas as colunas, uma de cada vez, e caso a

coluna contenha uma peça, um sinal informando em qual linha ela foi encontrada

Page 45: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 45

é retornado ao microcontrolador, sendo assim, no caso do primeiro movimento,

quando o sinal enviado for para a coluna 4 apenas as linhas 2 e 8 são ativadas,

o que indica que a peça que estava na linha 6 foi removida, e logo em seguida,

faz a mesma coisa com a coluna 3, o que fará com que as linhas 2, 4, 6 e 7

retornem um sinal indicando a presença de peça, assim o microcontrolador

guarda a posição de todas as peças do tabuleiro, para realizar os devidos

algoritmos, como mostrado na Figura 4.4.

COLUNA 8

COLUNA 7

COLU

NA 6

COLUNA 5

COLU

NA 4

COLUNA 3

COLUNA 2

COLUNA 1

LINHA 1

LINHA

2

LINHA

3

LINHA 4

LINHA

5

LINHA

6

LINHA 7

LINHA

8

Lendo o Tabuleiro

Contato Fechado

Contato Aberto

Figura 4.4 – Exemplo de funcionamento da matriz de contatos.

Page 46: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 46

4.2. Componentes utilizados

A TABELA 4.1 apresenta os componentes utilizados para o desenvolvimento

do projeto.

TABELA 4.1 – COMPONENTES UTILIZADOS

Componentes Quantidade

Microcontrolador da família AVR (Atmega64) 1

Leds Vermelhos 32

Leds Alto-Brilho 32

Latch 74HC543 10

74HC164 1

74LS04 2

DM7406 2

74LS14 2

Decodificador 74LS139 1

Diodo 1N4007 32

Display LCD 1

Placa de fibra 4

Placa Adaptadora SMD 64 Pinos 1

Demais componentes (resistores, capacitores, chaves, etc ...) vários

Page 47: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 47

4.3. Tabela de custos

A TABELA 4.2 apresenta o custo do projeto com o valor dos componentes

utilizados e o valor da mão-de-obra gasta durante a produção.

TABELA 4.2 – CUSTOS DO PROJETO

Componentes Qtde Custo Unitário Total

Microcontrolador Atmega64 1 R$ 35,00 R$ 35,00

Leds 64 R$ 0,15 R$ 9,60

Leds Alto-Brilho 32 R$ 1,60 R$ 51,20

Latch 74HC573 10 R$ 0,90 R$ 9,00

74HC154 1 R$ 3,00 R$ 3,00

74LS04 2 R$ 0,50 R$ 1,00

DM7406 2 R$ 1,32 R$ 2,64

74LS14 2 R$ 0,56 R$ 1,12

Decodificador 74LS139 1 R$ 0,80 R$ 0,80

Diodo 1N4007 32 R$ 0,05 R$ 1,60

Display LCD 1 R$ 19,80 R$ 19,80

Placa de fibra 4 R$ 15,00 R$ 60,00

Placa Adaptadora SMD 64 Pinos 1 R$ 10,00 R$ 10,00

Demais gastos - - R$ 100,00

Mão de obra (aproximadamente 4

horas por dia, durante 6 meses) 480h R$ 30,00 R$ 14.400,00

TOTAL R$ 14.704,76

Page 48: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 48

4.4. Requisitos de hardware

O microcontrolador utilizado é o ATmega64 da Atmel, pois além de possuir

uma grande quantidade de compiladores em C possui também uma RAM interna

de 4Kb, o que torna viável a execução do algoritmo de minimax. As

especificações estão listadas na TABELA 4.3.

TABELA 4.3 – ESPECIFICAÇÕES DO MICROCONTROLADOR ATMEGA64

Memória Flash (Kbytes) 64

EEPROM (Kbytes) 2

SRAM (Bytes) 4096

Freqüência Máxima (MHz) 16

Vcc (V) 2.7 – 5.5

SPI 1

UART 2

FONTE: Atmel (2006).

O chip possui uma configuração de pinos do tipo TQFP/MLF com 64 pinos

como mostra a Figura 4.5.

Figura 4.5 – Pinagem do chip Atmega64.

FONTE: Atmel (2006).

Page 49: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 49

4.5. Configurando o chip

O microcontrolador Atmega64 pode ser programado de várias maneiras, uma

delas é o modo SPI (Serial Peripheral Interface), que permite a transferência de

dados em alta velocidade entre o chip e outro dispositivo.

Para isso foi necessário montar um circuito como o da Figura 4.6, para fazer a

transferência de dados entre o computador e o chip, assim através do software

PonyProg e uma porta paralela foi possível tanto ler como programar o

dispositivo.

Figura 4.6 – Circuito para transferência de dados pelo paralela.

FONTE: PonyProg (2006).

O microcontrolador possui de fábrica algumas configurações padrões, uma

delas é o clock interno habilitado, mas como a freqüência é muito baixa, foi

necessário setar os fuses CKSEL0, CKSEL1, CKSEL2 e CKSEL3 para 0, de

forma que ele funcionasse com um clock externo.

Os 4 bits menos significativos do port F funcionam por padrão para a interface

JTAG, para habilitá-los para leitura e escrita é necessário desabilitar a interface

setando o fuse JATGEN para 1, a última alteração é no fuse M103C, que

habilita a compatibilidade com o Atmega103 impedindo a leitura e escrita no port

C, para habilitar o port é necessário setar o bit para 0.

Page 50: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 50

4.6. Diagramas em blocos

A Figura 4.7 ilustra o diagrama em blocos do hardware, o que representa todo

o sistema em partes separadas, mostrando os fluxos de entrada e saída de cada

bloco. O bloco Microcontrolador corresponde ao chip Atmega64.

A seqüência de operação do hardware, tendo como base o diagrama em

blocos é a seguinte:

1. A partida é iniciada através de um botão da inteface.

2. O Microcontrolador informa ao jogador, através do LCD, para efetuar a

jogada.

3. O jogador pressiona um botão informando ao Microcontrolador que

terminou a sua jogada.

4. O Microcontrolador inicia a leitura do tabuleiro enviando e recebendo

sinais da Matriz de Contatos.

5. Após o computador escolher a melhor jogada, envia para a Matriz de Leds

e para o LCD, os dados da jogada.

6. Volta-se para o passo 2 e repete-se a seqüência até que o jogo acabe ou

caso o jogador cancele a partida pressionando um botão.

Microcontrolador

Diagrama em Blocos

Matriz de contatos

Matriz de Leds

Botões da Interface

LCD

Movimento dasPeças do

Computador

Leitura doTabuleiro

Informações daPartida

Controle daPartida

Figura 4.7 – Diagrama em blocos do sistema.

Page 51: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 51

5. Especificação do software

5.1. Ambiente e linguagem de desenvolvimento

A linguagem utilizada para o desenvolvimento do software foi C e o ambiente

de desenvolvimento utilizado foi o AVR Studio 4 juntamente com o WinAVR

development tool, ambos podem ser adquiridos sem custos.

5.2. Interface com o usuário

A interação com o usuário é realizada através de um tabuleiro, onde na

jogada do usuário, ele remove a peça da casa de origem e encaixa a mesma na

casa de destino, assim logo em seguida o computador irá efetuar a sua jogada,

apagando a casa de origem da peça e ascendendo a casa destino através de

led’s contidos nas casas.

5.3. Diagrama de contexto

A Figura 5.1 apresenta o diagrama de contexto do sistema, onde entidades

externas interagem com o sistema através de fluxos.

Figura 5.1 – Diagrama de contexto.

Page 52: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 52

5.4. Diagrama de fluxo de dados

A Figura 5.2 mostra o diagrama de fluxo de dados do sistema. O diagrama de

fluxo de dados representa uma especificação semiformal das funcionalidades

descrevendo o sistema como uma coleção de dados que são manipulados por

funções (componentes).

Figura 5.2 – Diagrama de fluxo de dados (DFD).

Page 53: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 53

5.5. Diagrama de estados

A Figura 5.3 representa o diagrama de estados do sistema. Demonstra os

diferentes estados de um objeto durante sua vida, e o estímulo faz com que

mude de estado.

Figura 5.3 – Diagrama de estados.

5.6. Fluxograma

A Figura 5.4 mostra o fluxograma do sistema. O jogo começa com o jogador

realizando a primeira jogada, assim que ela é efetuada o computador verifica se

foi valida, caso seja inválida um alerta é emitido no display informando ao

jogador para tentar novamente, caso contrário verifica se as peças do

computador acabaram. É decretada vitória do jogador caso o computador não

tenha mais peças, do contrário o computador, através do algoritmo minimax,

monta a árvore das possíveis jogadas e escolhe a melhor. Sua jogada é

informada no display e logo em seguida os leds da casa inicial são apagados e

os da casa destino acesos. Por fim verifica se as peças do jogador acabaram,

caso tenham acabado o computador vence, caso contrário o computador informa

ao jogador que é sua vez de jogar.

Page 54: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 54

Figura 5.4 – Fluxograma.

Page 55: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 55

6. Especificação da validação do projeto

A validação foi realizada entre crianças das primeiras séries do ensino

fundamental, onde serão observadas as reações perante as dificuldades

impostas pelo software, a jogabilidade e a interação com o hardware. De modo

que as habilidades das crianças sejam graduadas na medida em que se joga,

conforme pode ser observado nas Figura 6.1 e Figura 6.2.

Figura 6.1 - Criança realizando uma jogada.

Figura 6.2 - Crianças interagindo com o tabuleiro.

Page 56: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 56

7. Resultados

7.1. Hardware

Para o desenvolvimento do hardware foram projetadas quatro placas de

circuito impresso e uma para regular a tensão de entrada, sendo a da Figura 7.1,

a placa com o circuito das duas matrizes de leds, tanto a que informa a peça do

computador quanto a das damas, conectada à tampa do tabuleiro através de

cabos flat.

Figura 7.1 – Placa do circuito da matriz de leds.

Para o processamento, desenvolveu-se uma placa para o microcontrolador,

onde é possível realizar leitura e escrita do chip via porta paralela e também

foram colocados os encaixes para os conectores que fazem a ligação com as

outras placas, como mostra a Figura 7.2.

Figura 7.2 – Placa do circuito de leitura/escrita do microcontrolador.

Page 57: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 57

Para a leitura dos contatos do tabuleiro foi desenvolvida outra placa, que

também é conectada a tampa através de cabos flat.

As outras duas placas, são as mais simples, uma com o circuito que com a

ajuda do conversor serial-paralelo 74HC164, envia dados para o display,

utilizando apenas 3 pinos do microcontrolador e regula seu contraste e na outra

placa foi projetado um regulador de tensão, que pode ser conectado a uma fonte

externa de no máximo 12V, para assim alimentar todas as placas com 5V. A

Figura 7.3 demonstra o tabuleiro finalizado.

Figura 7.3 – Tabuleiro.

7.2. Software

No desenvolvimento do software, a preocupação sempre foi com a memória,

já que o algoritmo implementado, Minimax, aumenta sua complexidade

conforme o nível da árvore de jogadas, e assim aloca cada vez mais variáveis.

Para evitar problemas com a memória e reduzir o tempo de processamento, foi

utilizado o menor número de variáveis possíveis e empregados alguns artifícios

da linguagem, como declarar funções como inline, evitando que o compilador

chame a função e sim faça uma cópia dela no local da chamada; declarar as

variáveis com mais freqüências, como as que controlam um loop, com a palavra-

Page 58: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 58

chave register, fazendo com que essas variáveis sejam armazenadas em um

registrador e não na memória.

Deste modo, foi possível processar até 6 níveis da árvore de jogadas, ou seja,

o computador conseguiu ver 6 jogadas à frente da dele, mas como o

processamento ficou muito lento, a solução foi diminuir o número de níveis para

4, o qual teve um rendimento muito satisfatório e estável.

8. Conclusão

Durante o desenvolvimento do projeto, muitos problemas apareceram, grande

parte deles nos testes com o hardware, um deles foi com as configurações do

microcontrolador, as quais foram informações difíceis de descobrir, apesar de

simples.

Outro fator que gerou bastantes problemas foi a confecção das placas de

circuito impresso, pois uma delas tinha muitas trilhas, que inicialmente foi

resolvido projetando o layout da placa com 2 faces, mas essa solução acarretou

em um problema ainda maior na confecção, já que era muito trabalhoso acertar

os dois lados da placa, assim, a solução foi adicionar vários jumpers na placa,

realizando a conexão através de fios.

Os contatos apresentaram alguma instabilidade, devido a sujeira nas casas e

oxidação do cobre, sendo necessário a implementação de um tratamento no

software, informando ao jogador, através de leds, quais peças foram

identificadas em suas casas. Para resolver esse problema uma das soluções

seria aumentar o peso das peças ou mudar o metal condutor para alumínio.

Muitos pontos podem ser melhorados ou implementados, para um perfeito

funcionamento do jogo, como criar uma memória externa deixando o computador

mais inteligente, possibilitando processar mais jogadas à sua frente, aperfeiçoar

o código fonte para um processamento mais rápido, estudar uma solução mais

eficaz para os contatos e programar algumas regras do jogo que não foram

Page 59: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 59

utilizadas como: capturar várias peças em uma jogada e verificar se ocorreu

empate.

Apesar de alguns problemas ocorridos no decorrer do projeto, este

apresentou um desempenho muito satisfatório, alcançando todas as metas

propostas e superando algumas, podendo ser comprovado na demonstração

feita na instituição de ensino Positivo Júnior, onde crianças de 1ª a 4ª série

puderam testar o funcionamento e desempenho do jogo e aprender com o

mesmo.

Page 60: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 60

9. Referências Bibliográficas

Atmel. On-line. (www.atmel.com)

Junho de 2006.

AVR Freaks. On-line. (http://www.avrfreaks.net)

Março de 2006.

CICHACZEWSKI, E. Interface Display LCD – 8031, Agosto (2002)

Confederação Brasileira. On-line. (http://www.topdam.com.br/confederacaob)

Maio de 2006.

Complex. On-line. (www.complex.cz)

Junho de 2006.

Display LCD. On-line. (http://paginas.terra.com.br/educacao/mdmau/lcd.pdf)

Junho de 2006.

FIGUEIREDO, S. M.; MAFRA, S. N.. Trabalho de Inteligência Artificial – Jogo

de Damas. RJ, Trabalho Acadêmico, Universidade Federal do Rio de Janeiro

(UFRJ).

FONSECA, F. P., Projeto final de curso. Jogo de Damas Embarcado. 2005

Jogos Antigos. On-line. (http://www.jogos.antigos.nom.br/damas.asp)

Outubro 2006.

Jogo de Damas. On-line. (http://www.xadrezregional.com.br)

Março de 2006.

LANARI, A. P.; MARTINS A. S.; Cotta L. C.. Desenvolvimento com

microcontroladores Atmal AVR. Junho (2006).

Page 61: Jogo de Damas Embarcado Multinível - up.edu.br · Regras do jogo de damas ... uma dama sempre será indicada com duas luzes acesas. Página 15 O tabuleirotem um encaixe para as peças

Página 61

LUGER, G. F.. Inteligência Artificial: Estruturas e estratégias para a solução de

problemas complexos. 2004, 4ª Edição

Microcontroladores – UFRGS. On-line. (http://www.inf.ufrgs.br/pct/disciplinas)

Abril de 2006.

PonyProg. On-line. (http://www.lancos.com)

Agosto de 2006.

RICH, E.; KNIGHT, K.. Inteligência Artificial. Editora Makron Books, 1994, 2ª

Edição.

RUSSEL, S.; NORVIG, P. Inteligência Artificial Tradução da Segunda Edição.

Editora Campus, 2004, 2ª Edição.

SCHUNK, L. M.; LUPPI A., Microcontroladores AVR – Teoria e aplicações

práticas. Editora Érica, 2001, 1ª Edição.

Wikipedia. On-line. (www.wikipedia.com)

Abril de 2006.