campo minado inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e...

42
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DA COMPUTAÇÃO RAFAEL GUSTAVO FABRIS VIENSCI Campo Minado Inteligente Trabalho de Conclusão de Curso. Prof. Marcelo Mikosz Gonçalves Orientador Curitiba, Dezembro de 2009.

Upload: duonganh

Post on 24-Sep-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

UNIVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

CURSO DE ENGENHARIA DA COMPUTAÇÃO

RAFAEL GUSTAVO FABRIS VIENSCI

Campo Minado Inteligente

Trabalho de Conclusão de Curso.

Prof. Marcelo Mikosz Gonçalves

Orientador

Curitiba, Dezembro de 2009.

Page 2: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

UNIVERSIDADE POSITIVO

Reitor: Prof. Oriovisto Guimarães

Vice-Reitor: Prof. José Pio Martins

Pró-Reitor de Graduação: Prof. Renato Casagrande

Diretor do Núcleo de Ciências Exatas e Tecnológicas: Prof. Marcos José Tozzi

Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin

Page 3: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

TERMO DE APROVAÇÃO

Rafael Gustavo Fabris Viensci

Campo Minado Inteligente

Monografia aprovada como requisito parcial à conclusão do curso Engenharia da

Computação da Universidade Positivo, pela seguinte banca examinadora:

Profº. Marcelo Mikosz Gonçalves (Orientador)

Profª. Maristela Regina Weinfurter (Membro)

Profº. Éderson Cichaczewski (Membro)

CURITIBA, 14 DE DEZEMBRO DE 2009

Page 4: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

Agradecimentos

Primeiramente gostaria de agradecer aos meus pais Admir Viensci e Norma Fabris

Viensci por terem me dado a oportunidade de frequentar um curso superior em uma

instituição particular, pois sem eles este sonho de seria difícil de se realizar, pois

quando fui prestar o vestibular não haviam instituições publicas na região de Curitiba

que oferecessem este curso.

Gostaria de agradecer ao professor Valfredo Pilla Jr. por ter me vendido o seu kit

para que eu pudesse desenvolver este projeto.

Agradeço ao meu orientador o professor Marcelo Mikosz Gonçalves e à professora

Maristela Weinfurter que me auxiliaram neste projeto tanto com o tempo

disponibilizado como também pelo conhecimento compartilhado para o

desenvolvimento do mesmo.

Agradeço, enfim, a todos os professores pelos conhecimentos por mim adquiridos

durante o curso.

Page 5: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

SUMÁRIO

LISTA DE ABREVIATURAS E SIGLAS ....................................................... 7

LISTA DE FIGURAS ..................................................................................... 8

LISTA DE TABELAS .................................................................................... 9

RESUMO .................................................................................................... 10

ABSTRACT ................................................................................................ 11

1 INTRODUÇÃO ...................................................................................... 12

2 FUNDAMENTAÇÃO TEÓRICA ............................................................ 13

2.1 Jogos eletrônicos .................................................................................................................... 13 2.1.1 O impacto dos jogos eletrônicos na sociedade ............................................................... 13

2.2 Autômatos celulares .............................................................................................................. 14 2.2.1 Geometria ...................................................................................................................... 14 2.2.2 Conjunto de estados ....................................................................................................... 14 2.2.3 Regras de transição ........................................................................................................ 15

2.3 A Origem do Campo Minado e sua evolução através dos anos ......................................... 15 2.3.1 Como funciona o Campo Minado .................................................................................. 19

3 ESPECIFICAÇÃO DO PROJETO ......................................................... 22

3.1 Análise de Contexto ............................................................................................................... 22

3.2 Análise funcional ................................................................................................................... 22 3.2.1 Funções de aquisição de dados ...................................................................................... 22 3.2.2 Funções homem/maquina e processamento de informações .......................................... 23

3.3 Especificações de hardware ................................................................................................... 25 3.3.1 KIT PIC24FJ128GA010 ................................................................................................ 26 3.3.2 Microprocessadores ....................................................................................................... 27 3.3.3 Microprocessador PIC ................................................................................................... 27 3.3.4 Microcontrolador PIC24FJ128GA010 ........................................................................... 28

Page 6: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

3.3.5 Display LCD Touch Screen ........................................................................................... 28

4 DESENVOLVIMENTO E IMPLEMENTAÇÃO ....................................... 30

4.1 Testes sobre o kit ................................................................................................................... 30

4.2 Gravação do programa no kit .............................................................................................. 30

4.3 Microchip Graphics Library ................................................................................................ 31

4.4 Implementação do software .................................................................................................. 32 4.4.1 Criando botões ............................................................................................................... 32 4.4.2 Definindo a estrutura da matriz de botões...................................................................... 33 4.4.3 Gravando as informações ............................................................................................... 33 4.4.4 Verificando se o botão foi pressionado .......................................................................... 34

5 VALIDAÇÃO E RESULTADOS ............................................................ 36

5.1 Projeto finalizado .................................................................................................................. 36

5.2 Jogo campo minado finalizado ............................................................................................. 37

5.3 Validação ................................................................................................................................ 38

5.4 Custos do projeto ................................................................................................................... 38

6 CONCLUSÃO ....................................................................................... 40

REFERÊNCIAS BIBLIOGRÁFICAS ........................................................... 41

Page 7: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

LISTA DE ABREVIATURAS E SIGLAS

AC Autômato Celular

262K 262 mil

3,2’’ 3,2 polegadas

LCD Liquid Crystal Display

ICD2 In Circuit Debugger 2

PICkit2 Programmable Interrupt Controller kit 2

CPU Unidade Central de Processamento

SD Secure Digital

UART Universal Asynchronous Receiver/Transmiter

TFT Thin-Film Transistor

VLSI Very Large Scale Integration

USART Universal Synchronous Asynchronous Receiver

I2C Inter-Integrated Circuit

USB Universal Serial Port

SPI Serial Peripheral Interface

PWM Pulse-Width Modulation

LIN Local Interconnect Netword

CAN Controller Area Network

RAM Random Access Memory

IRDA Infrared Data Association

PMP Portable Multimedia Player

QVGA Quarter Video Graphics Array

Page 8: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

LISTA DE FIGURAS

Figura 2.1 - Vizinhança do tipo Von Newman e Moore ............................................................................ 14 Figura 2.2 - Campo Minado rodando no Windows 3.1 ............................................................................. 15 Figura 2.3 – Captura de tela do Campo Minado do Windows XP ............................................................ 16 Figura 2.4 – Captura de tela do Campo Minado do Windows Vista ou Windows 7 ................................. 16 Figura 2.5 - Campo Minado de competição no MSN Messenger .............................................................. 16 Figura 2.6 - Campo Minado onde o numero de bombas ao redor é indicado pelo numero de pontos na

casa e o tabuleiro é um smile ..................................................................................................................... 17 Figura 2.7 - Campo Minado 3D ............................................................................................................... 17 Figura 2.8 - Campo Minado hexagonal rodando em Windows XP ........................................................... 18 Figura 2.9 - Campo Minado triangular rodando em Linux ...................................................................... 18 Figura 2.10 - Campo Minado em modo texto rodando em Linux.............................................................. 18 Figura 2.11 - situação após alguma jogada .............................................................................................. 19 Figura 2.12 - exemplo 1 ............................................................................................................................ 20 Figura 2.13 - exemplo 2 ............................................................................................................................ 20 Figura 3.1 - Fluxograma do jogo .............................................................................................................. 24 Figura 3.2 - Diagrama de fluxo de dados ................................................................................................. 25 Figura 3.3 - Diagrama em Blocos ............................................................................................................. 25 Figura 3.4 - KIT PIC24FJ128GA010 ........................................................................................................ 26 Figura 3.5 - Gravador PICkit2 ................................................................................................................. 26 Figura 3.6 - Display LCD Touch Screen ................................................................................................... 29 Figura 3.7 - Display LCD Touch Screen vista inferior ............................................................................. 29 Figura 4.1 - Tela do PICkit2 Programmer ................................................................................................ 30 Figura 4.2 - Gravador PICkit2 conectado ao kit para gravação .............................................................. 31 Figura 4.3 - campo minado desenvolvido para console ............................................................................ 32 Figura 5.1 - KIT inserido na caixa acrílica .............................................................................................. 36 Figura 5.2 - Tela inicial do jogo ............................................................................................................... 37 Figura 5.3 - Exemplo de jogada ................................................................................................................ 37 Figura 5.4 - Exemplo da tela de fim de jogo ............................................................................................. 38

Page 9: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

LISTA DE TABELAS

Tabela 3.1 - Características do PIC24FJ128GA010 ................................................................................. 28 Tabela 5.1 - Estatística de resultados do jogo ........................................................................................... 38 Tabela 5.2 - Tabela de custos ..................................................................................................................... 39

Page 10: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

RESUMO

Este documento descreve o jogo campo minado embarcado, implementado no

trabalho de conclusão de curso. O jogo foi projetado no modo competição onde uma

pessoa joga contra o computador. O sistema foi desenvolvido em um kit

microprocessado que possui um processador PIC da Microchip e um display touch

screen. O jogo foi programado em linguagem C e possui inteligência artificial

possibilitando uma pessoa desafiar o jogo. Este jogo visa o desenvolvimento de

raciocínio lógico, alem de propiciar diversão.

Palavras-Chave: Jogo, Campo Minado, Inteligência Artificial, Embarcado, Touch

screen.

Page 11: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

Intelligent Minesweeper

ABSTRACT

This document describes the game Minesweeper embedded, developed in work of

completion. The game was projected in competition mode where the person plays

against computer. The system was developed in a microprocessed kit with a Microchip

PIC microprocessor and a touch screen display. The game was programmed in C

language and has an artificial intelligence for can play against person. This game aims

to develop logical reasoning, besides providing entertainment.

Keywords: Game, Minesweeper, Artificial Intelligence, Embedded, Touch screen.

Page 12: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

12

1 INTRODUÇÃO

Os jogos eletrônicos começaram a se popularizar nas décadas de 70 e 80, com o

avanço da eletrônica e consequentemente dos computadores, onde surgiram também os

vídeo games. Segundo Rodrigo Flausino (2008), os jogos estão cada vez mais populares

e este mercado lucra mais que a indústria de cinema, que já é um dos mercados que

mais fatura.

O jogo campo minado original é somente para uma pessoa, onde esta tem o objetivo

de não acertar as bombas e abrir todas as outras casas evitando as que contenham

bomba.

Este projeto consiste em um jogo campo minado, onde uma pessoa compete com a

CPU para ver quem encontra a maioria das bombas antes.

O que motivou para o desenvolvimento deste projeto foi pelo fato de não haver um

jogo campo minado que uma inteligência competisse com uma pessoa, e nem estando

embarcado utilizando uma tela touch screen.

O jogo foi gravado no kit desenvolvido pela Tech Toys Co. e possui um PIC

fabricado pela Microchip.

O jogo é controlado somente pela tela, as bombas são sorteadas aleatoriamente e o

jogador possui algumas informações que o auxilia em sua jogada como bombas

restantes, placar e o jogador da atual jogada e a inteligência do jogo baseada em

autômatos celulares.

Neste documento é explicado como os jogos influenciam na vida das pessoas, de

que maneira os autômatos celulares funcionam, a origem a evolução e funcionamento

do jogo Campo Minado. Também são feitas citações do contexto do projeto, assim

como detalhes do funcionamento do jogo e cada função para o mesmo, com diagramas e

demonstração do hardware e utilizado no desenvolvimento.

Page 13: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

13

2 FUNDAMENTAÇÃO TEÓRICA

Neste capitulo constam as informações utilizadas para o desenvolvimento deste

projeto, desde documentação do kit até teoria sobre como funciona o jogo campo

minado.

2.1 Jogos eletrônicos

O primeiro jogo desenvolvido para computador foi o Spacewar em 1962, com o

objetivo de destruir asteroides e espaçonaves inimigas. Segundo o site watchtower

(2002), os jogos de computador se popularizaram nos anos 70 e 80, quando houve uma

evolução nos computadores pessoais, surgindo novos gêneros de jogos como aventura,

esportes, puzzle (quebra-cabeça), estratégia, simulação, ação entre outros.

2.1.1 O impacto dos jogos eletrônicos na sociedade

Segundo Rodrigo Flausino (2008), a indústria de jogos eletrônicos propicia diversão

para as pessoas e é uma das maiores indústrias do mundo ainda em ascensão e

superando a de cinema. Estes jogos cumprem papéis na sociedade influenciando as

pessoas desde pequenas, desenvolvendo o raciocínio lógico e conceitos teóricos e

incentivando o alistamento militar com os jogos de guerra. A evolução dos videogames

força a indústria a desenvolver tecnologias novas alem de que a qualidade das imagens

está cada vez impressionando mais e sendo considerado o estado da arte da industria

gráfica.

O jogo Second Life é um bom exemplo de como a sociedade está mudando e

incorporando o dia-a-dia nos jogos, neste jogo não existem missões, os jogadores

apenas “vivem”, isto é, podem fazer muito do que fazem no mundo real, como

conversar com outras pessoas, trabalhar e até ter aulas na faculdade. “Pelo menos 20

universidades americanas usam o jogo como ferramenta educacional. A Universidade

Harvard criou este ano uma filial do jogo, abrigando um curso de extensão em direito

em ambiente virtual.” (ROSSI, 2006, p. 100).

Os jogos também possuem seu lado ruim, alguns por terem um teor de violência

muito alto preocupam os pais, alem de que as crianças e jovens deixam de fazer as

tarefas escolares para jogarem e ainda tem a possibilidade de viciar, pois propiciam

prazer ao jogador.

O site v3.co.uk (2009) classificou as dez maiores aplicações que mudaram a

indústria, mas não classificaram o campo minado nestes dez mas sim em uma categoria

honrosa, segundo o site, o jogo ajudou nos escritórios pois todos precisam de um tempo

de pausa para descasar, e as pessoas aproveitavam e jogavam campo minado que já

Page 14: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

14

vinha com o Microsoft Windows, este jogo engana por parecer simples mas na

realidade ele pode ser bem difícil de ser jogado.

2.2 Autômatos celulares

Os autômatos celulares ou AC, como também são chamados, são sistemas

dinâmicos de dimensão espacial e temporal discreta (THIELO, 1999). Segundo Dante

Barone e colaboradores (2003), estes são compostos por uma grade ou reticulado n-

dimensional onde estão dispostas células que possuem comportamento idêntico

controlado por um conjunto de regras. Para definir um AC são necessários alguns

parâmetros a serem definidos, como:

Geometria

Conjuntos de estados

Regras de transição

2.2.1 Geometria

Esta geometria deve ser regular e pode ser classificada pela dimensão do reticulado

e o formato da célula (WEIMAR, 2000). Com relação à geometria podem ser

unidimensionais, bidimensionais ou tridimensionais. Os tipos de vizinhança mais

comumente usados são o de Von Newman e de Moore. Na figura 2.1 tem um exemplo

destes dois tipos de vizinhança.

Figura 2.1 - Vizinhança do tipo Von Newman e Moore

(SPATIALANALYSISONLINE, 2009)

A inteligência analisa se ainda existe bomba a ser descoberta nesta vizinhança, caso

não haja, busca uma casa que tenha o maior numero de bombas ao redor, caso esta

também não tenha bombas a serem descobertas mais, busca a casa com o segundo maior

numero, e caso esta também não possua, abre uma casa fechada aleatoriamente.

2.2.2 Conjunto de estados

São os estados que cada célula que pertence ao AC pode assumir.

Page 15: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

15

2.2.3 Regras de transição

Estas são um conjunto de funções que coordenam o comportamento do AC,

podendo ser aplicadas sobre cada célula definindo o próximo estado a partir de seu

estado atual e de sua vizinhança.

2.3 A Origem do Campo Minado e sua evolução através dos anos

O jogo surgiu em 1989 com o lançamento do Windows 3.1 e foi desenvolvido por

Robert Donner, depois disso sempre esteve incorporado ao Sistema Operacional

Windows, tendo versões para outros sistemas operacionais e até para celulares. Não

houve evolução na sua interface da versão para Windows 3.1 até a versão incorporada

no Windows XP, no Windows Vista e Windows 7 já é possível trocar o layout e tem a

possibilidade de salvar para posteriormente continuar do ponto em que parou. Esta

versão que vem nos sistemas operacionais, que é a original, somente uma pessoa joga e

nela deve abrir todas as casas que não possuem bombas, não podendo acertar casas que

as possuam. Com o surgimento do MSN Messenger da Microsoft, surgiu uma versão

em que duas pessoas podem competir uma contra a outra para ver quem encontra a

maior parte das bombas antes, o chamado Campo Minado de Competição, nesta versão

alternativa o objetivo é achar as bombas e não evitá-las.

Na Figura 2.2 é mostrado o jogo Campo Minado no Windows 3.1, no Windows XP

é ilustrado na Figura 2.3, o jogo em Windows 7 ou Windows Vista é demonstrado na

Figura 2.4 e o Campo Minado em modo competição do Windows Live Messenger é

exemplificado na Figura 2.5.

Figura 2.2 - Campo Minado rodando no Windows 3.1 (BLOGDOLENON, 2009)

Page 16: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

16

Figura 2.3 – Captura de tela do Campo Minado do Windows XP

Figura 2.4 – Captura de tela do Campo Minado do Windows Vista ou Windows 7

Figura 2.5 - Campo Minado de competição no MSN Messenger

(MESSENGER.ZONE, 2009)

Page 17: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

17

Existem algumas variantes do jogo em que o tabuleiro não é retangular, sendo o

tabuleiro um smile, como na Figura 2.6, pode ser 3D, como na Figura 2.7, podendo

alterar também a forma das casas, como mostrado nas Figuras 2.8 e 2.9, ou o jogo pode

ser em modo console, como mostrado na Figura 2.10.

Figura 2.6 - Campo Minado onde o numero de bombas ao redor é indicado pelo

numero de pontos na casa e o tabuleiro é um smile. (WIKIPEDIA, 2009)

Figura 2.7 - Campo Minado 3D (WIKIPEDIA,2009)

Page 18: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

18

Figura 2.8 - Campo Minado hexagonal rodando em Windows XP (WIKIPEDIA,

2009)

Figura 2.9 - Campo Minado triangular rodando em Linux (WIKIPEDIA, 2009)

Figura 2.10 - Campo Minado em modo texto rodando em Linux (WIKIPEDIA,

2009)

Page 19: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

19

2.3.1 Como funciona o Campo Minado

O jogo consiste em um tabuleiro de tamanho variável, onde aleatoriamente as

bombas são sorteadas que também possuem numero variável. À medida que se abrem as

casas aparecem números nelas, estes números vão desde 1 até 8 e indicam quantas

bombas existem ao redor desta casa, caso não tenha nenhum numero significa que não

há bombas ao redor, quando uma casa desta é aberta o jogo automaticamente abre todas

ao redor da mesma ate encontrar alguma casa que possua alguma bomba ao redor, ou

seja, uma casa que indique um numero qualquer. Caso o jogador acerte uma casa com

bomba o jogo termina e é mostrado onde estavam todas as outras bombas. O jogador

ganha quando abrir a ultima casa que não possua bomba sem ter acertado nenhuma que

a possua(MICROSOFT, 2009).

A seguir é demonstrado como fazer a análise das casas para efetuar uma jogada

correta levado em conta as informações que o jogo fornece ao jogador, tendo por base a

situação da Figura 2.11:

Figura 2.11 - situação após alguma jogada

Primeiramente se observa se há algum padrão fácil de achar, neste caso o mais fácil

são as casas demarcadas na Figura 2.12, pois elas indicam com clareza que nelas há

bomba por causa da casa adjacente a elas indicar 1 e somente haver ela fechada ou

indicar 2 e somente haver duas casas fechadas

Page 20: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

20

Figura 2.12 - exemplo 1

Nem sempre será possível jogar apenas com base nos números indicados nas

casas, existem situações em que se deve “chutar” e contar com a sorte, com base neste

estado do jogo na Figura 2.13 é possível ver quais seriam algumas dessas casas que se

enquadram neste exemplo, onde os círculos representam as casas que possuem bombas,

as casas que possuem um X são casas livres e podem ser abertas sem problemas, mas as

casas com um quadrado não são possíveis de determinar, neste caso o ideal é jogar

nestas casas que já existe a certeza de estarem livres para ter dicas extras para eliminar

estas incertezas.

Figura 2.13 - exemplo 2

Para jogar basta seguir a lógica que foi demonstrada, onde os números indicam

quantas bombas existem ao redor desta casa e analisar a vizinhança desta para poder

fazer a eliminação, quando todas as casas livres forem abertas sem abrir casas com

Page 21: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

21

bombas o jogo estará terminado, caso abra uma com bomba o jogo termina e é mostrada

a posição das demais bombas(MICROSOFT, 2009).

Neste capítulo foram abordadas as informações teóricas necessárias pesquisadas

para que o projeto pudesse ser concluído de forma satisfatória.

Page 22: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

22

3 ESPECIFICAÇÃO DO PROJETO

Este capítulo abordam as etapas do projeto e o conjunto de hardware utilizado no

projeto e como ele funciona.

3.1 Análise de Contexto

O projeto consiste em um jogo Campo Minado embarcado, que possui inteligência

artificial para jogar contra uma pessoa. O jogo é um clássico dos jogos de computador,

que vem incorporado ao Microsoft Windows desde a versão 3.1, este tem o objetivo de

achar as casas sem bombas e sem abrir qualquer uma que possui bomba o detalhe que

este é jogado sozinho. No MSN Messenger possui uma versão um pouco diferente em

que o objetivo é encontrar as bombas e jogado entre duas pessoas e quem encontrar a

maior parte delas vence. O projeto funcionará com o sistema do MSN Messenger para

ser jogado entre uma pessoa contra a CPU, utilizando uma tela touch screen, sendo que

tocando na tela que ocorrerá a seleção da casa desejada. O objetivo do jogo é encontrar

a maior parte das bombas antes do adversário.

A parte de hardware está vinculada ao KIT PIC24FJ128GA010, este possui uma tela

touch screen com 262K cores e 3.2’’. A programação é na linguagem C e foi utilizado o

MPLAB IDE e o compilador MPLAB C30.

Levando em conta que este jogo somente possui as versões para ser jogado sozinho

com o objetivo de evitar as bombas, e no MSN Messenger para ser jogado entre duas

pessoas com o objetivo de achar as bombas, é interessante existir outro contexto para

este clássico dos jogos de computador que é ter uma inteligência artificial com o mesmo

objetivo do jogo do MSN Messenger.

3.2 Análise funcional

Neste capitulo são citadas as funções implementadas no jogo e explicado como elas

funcionam.

3.2.1 Funções de aquisição de dados

A aquisição de dados é feita através tela touch screen, e pela biblioteca gráfica Gol

da Microchip. Esta possui funções que detectam que a tela foi tocada e executam a

função programada para cada situação dependendo de onde a tela for tocada. O

tabuleiro consiste em vários botões plotados na tela e há várias funções para a análise do

tabuleiro.

Page 23: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

23

3.2.2 Funções homem/maquina e processamento de informações

SorteiaBombas Sorteia as bombas aleatoriamente no tabuleiro.

ContaBombas Contará as bombas que existem ao redor de cada casa a gravará

este valor em cada casa respectivamente. Funcionará localizando uma casa com bomba,

feito isso será adicionado em 1 (um) o valor que possui em cada casa ao redor desta

bomba, caso seja outra bomba esta casa não terá adição nenhuma, e será feito isso para

todas as bombas do tabuleiro.

AbreZero Abrirá todas as casas que possuem zero caso uma delas seja

selecionada, com algumas restrições, encontrando uma casa que possui pelo menos uma

bomba ao redor, naquela direção a abertura acaba, esta abertura recursiva termina

quando não encontrar mais casas sem bombas ao redor pelas proximidades, pois a cada

casa que encontrar e indicar que possui bomba ao redor, a função parará a recursividade

naquele ponto e irá verificar outra posição que ainda não tenha sido verificada.

Jogada Faz a jogada em si, verifica o valor que possui naquela casa, caso esteja

entre 0 e 8 esta casa não possui bomba e não foi aberta ainda assim será somado 10 ao

seu valor e indica quantas bombas possui ao seu redor, se for zero o valor será alterado

para 20 e chamará a função AbreZero, se possui 10 é uma bomba mas não foi aberta, se

for -1 ou -2 é uma bomba mas já aberta (-1 pelo jogador 1 e -2 pelo jogador 2), se

houver uma valor entre 11 e 18 é uma casa que não possui bomba mas já foi aberta e se

possuir o valor 20 é uma casa que não possui nenhuma bomba ao redor e que já foi

aberta. Se a jogada atual cair em uma casa que já foi aberta, o jogo ficará aguardando

até ser feita uma jogada válida (apenas em casas fechadas) para prosseguir no jogo.

Placar Varre a matriz tabuleiro procurando as bombas abertas e contando quantas

foram abertas por cada jogador e verificando quantas ainda estão fechadas, ganhará

quem possuir metade das bombas totais mais uma. Esta função faz a verificação de fim

de jogo caso algum dos jogadores encontre a maior parte das bombas é indicado na tela.

DesenhaPlacar desenha na tela o placar do jogo atualizando a cada jogada.

DesenhaTabuleiro desenha o tabuleiro do jogo.

ProcessaJogada altera as cores das casas afetadas pela jogada do jogador1 e faz a

troca de jogador caso seja necessário

ProcessaJogada2 funciona da mesma forma que a função anterior mas para o

jogador 2.

BuscaMaior1 busca no tabuleiro uma casa com o maior numero de bombas ao

redor.

BuscaMaior2 busca no tabuleiro uma casa com o segundo maior numero de

bombas ao redor.

Computador processa a jogada do computador.

BuscaBombas verifica se todas as bombas ao redor da casa analisada já foram

encontradas, caso já tenham sido encontradas irá atualizar o Buscamaior1 ou

BuscaMaior2.

Page 24: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

24

O funcionamento do jogo é descrito no fluxograma da Figura 3.1, a troca de dados é

demonstrada na Figura 3.2 e a forma em que a inteligência trabalha é mostrada na

Figura 3.3.

Figura 3.1 - Fluxograma do jogo

Page 25: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

25

Figura 3.2 - Diagrama de fluxo de dados

3.3 Especificações de hardware

O hardware é o responsável por todo o funcionamento do projeto, ou seja, a parte de

envio de informações entre a tela e o programa que interpretará a ação a ser tomada, e a

ação da inteligência. O hardware utilizado foi:

KIT PIC24FJ128GA010

Tela LCD Touch Screen 3.2”

Gravador PICkit2

Na figura abaixo é demonstrado o diagrama em blocos do projeto, sendo possível

verificar o processo de funcionamento do mesmo.

Figura 3.3 - Diagrama em Blocos

Page 26: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

26

3.3.1 KIT PIC24FJ128GA010

Este kit foi desenvolvido pela Tech Toys Co. , sendo na Figura 3.5 a foto do kit e na

Figura 3.6 o gravador PICkit2 sendo que a placa possui algumas características

importantes a serem citadas:

Possui o PIC24FJ128GA010

Possui regulador de tensão para 3,3V aceitando fonte de alimentação de 5V

até 7,5V

Possui fileiras duplas para prototipagem mais fácil

Compatível com ICD2 da Microchip

Compatível com o programador PICkit2

Integrado cabeçalho compatível com modulo TFT 2,4’’ e modulo TFT 2,8’’

Slot para cartão SD

Interface UART via SIPEX SP3232

Joystick com 5 posições

Buzzer

Figura 3.4 - KIT PIC24FJ128GA010

Figura 3.5 - Gravador PICkit2

Page 27: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

27

3.3.2 Microprocessadores

O microprocessador é um circuito integrado que tem a capacidade de executar

vários tipos de instruções, a principal parte que o compõe é a Unidade Central de

Processamento, mais conhecida como CPU. Ele trabalha sobre algum programa gravado

na memória e executa operações diversas, como aritmética, booleanas, entrada e saída

de informação para a comunicação com outros dispositivos e tomadas de decisões.

Devido ao grande avanço tecnológico, os microprocessadores ficaram cada vez mais

complexos e com mais unidades que auxiliam a executar tarefas cada vez mais

complexas, como unidades de gerenciamento de memória, memória cachê, entre outras.

Segundo B. Piporo (2009) sua origem foi em 1971 com o modelo 4004,

desenvolvido pela Intel Corporation, para ser utilizado em calculadoras, com base neste,

foram aparecendo novas aplicações como calculadoras mais modernas e os

computadores pessoais.

Este componente é um dispositivo lógico programável em um único chip de

silício, desenvolvido com a tecnologia VLSI (Circuito integrado de Alta Escala).

Praticamente todos os equipamentos eletrônicos hoje, possuem um

microprocessador, mas cada um com suas particularidades para atender às

funcionalidades que devem executar.

3.3.3 Microprocessador PIC

Os microcontroladores PIC são uma família de microcontroladores da Microchip,

tendo uma ampla variedade de modelos e aplicações, podem ser de 8, 16 ou 32 bits.

Utilizam instruções RISC e podem ser programados por memórias flash, EEPROM e

OTP. Os microcontroladores PIC possuem diversos recursos dependendo do modelo,

podendo ter:

Conversores Analógico-Digitais de 8 a 12 bits

Contadores e timers de 8 e 16 bits

Comparadores Analógicos

USARTs

Controladores de comunicação I2C, SPI, USB

Controladores PWM

Controladores de LCD

Controladores de motores

Gerador de energia de alta potência

Periféricos para LIN, CAN

Controladores Ethernet

Periféricos IRDA

Codificadores para criptografia Keeloq

Watchdog timer

Detectores de falha na alimentação

Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar

circuitos externos

Osciladores internos

Page 28: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

28

3.3.4 Microcontrolador PIC24FJ128GA010

Este microcontrolador faz parte da quarta geração dos microcontroladores de 16 bits

desenvolvidos pela Microchip, esta família 24F, perde um pouco em performance em

relação à família 24H que é a terceira geração mas em compensação tem um custo bem

inferior. Este dispositivo possui um conjunto de recursos que são listados na Tabela 3.1.

Tabela 3.1 - Características do PIC24FJ128GA010

Pinos 100

Memória de Programa 128K

RAM 8K

Timers 5

Capture Input 5

Compare/PWM Output 5

UART 2

SPI 2

I2C 2

10-bit A/D (canais) 16

Comparadores 2

PMP/PSP Possui

Jtag Possui

Fonte: Microchip

3.3.5 Display LCD Touch Screen

Segundo Barbacena (2006), o display LCD são muito uteis em sistemas

microprocessados e são especificados pelo numero de pixels na horizontal e vertical,

podem ou não vir com backlight (iluminação de fundo), essa iluminação facilita a

visualização no escuro sendo feita por leds.

Segundo informações contidas no site do fabricante do kit a Tech Toys Co. , o

display utilizado no projeto possui 240x320 pixels com 3,2’’, podendo utilizar 262K ou

65K cores, isso é configurado via software. O LCD é do tipo QVGA TFT-LCD e a

iluminação é feita por cinco leds em paralelo.

Page 29: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

29

Figura 3.6 - Display LCD Touch Screen (techtoys,2009)

Figura 3.7 - Display LCD Touch Screen vista inferior (techtoys, 2009)

Neste capítulo as etapas do projeto e os componentes eletrônicos utilizados foram

citados e explicados como funcionam e de que forma trabalhados para estarem no

projeto.

Page 30: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

30

4 DESENVOLVIMENTO E IMPLEMENTAÇÃO

4.1 Testes sobre o kit

Primeiramente foi gravado no kit um programa exemplo disponível no site do

fabricante que é a Tech Toys, neste exemplo possui uma demonstração de como é

programado alguns tipos de componentes gráficos. Este exemplo tem o nome de “Demo

program for 3.2’’ TFT LCD module”.

4.2 Gravação do programa no kit

O microcontrolador aceita programas na extensão .hex, este arquivo é o resultado da

compilação do código em C pelo mplabC30. Este arquivo é gravado por meio do

software PICkit2 Programmer da Microchip e do gravador PICkit2 também da

Microchip.

Figura 4.1 - Tela do PICkit2 Programmer

Page 31: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

31

Figura 4.2 - Gravador PICkit2 conectado ao kit para gravação

4.3 Microchip Graphics Library

Esta biblioteca gráfica foi desenvolvida pela Microchip e é livre, não necessita

licença, possui vários componentes gráficos que auxiliam no desenvolvimento de

aplicações gráficas embarcadas em microcontroladores da Microchip. Com o auxilio da

ajuda que vem junto com a biblioteca gráfica, é possível estudar como os componentes

gráficos que a compõem funcionam com exemplos. A biblioteca possui os seguintes

componentes gráficos:

Button

Chart

Checkbox

Dial

Edit Box

Group Box

List Box

Meter

Picture

Progress Bar

Radio Button

Slider

Static text

Text Entry

Window

Page 32: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

32

4.4 Implementação do software

Inicialmente o jogo foi desenvolvido em linguagem C++ para aplicação em modo

texto na linha de comando do Microsoft Windows, para duas pessoas. Para a primeira

validação do projeto foi programado este jogo para duas pessoas no kit e para a segunda

validação, onde o projeto deveria estar completamente funcional, foi colocada a

inteligência.

O projeto foi baseado no exemplo “Demo program for 3.2’’ TFT LCD module”,

onde foram feitas as alterações necessárias para que o jogo fosse desenvolvido. Na

Figura 4.3 o jogo em modo texto é ilustrado.

Figura 4.3 - campo minado desenvolvido para console

4.4.1 Criando botões

A estrutura de criação dos componentes gráficos é toda feita em linha de código,

especificando o tamanho, esquema de cor, em que pixel o objeto começa e termina e os

ponteiros identificadores.

No exemplo logo abaixo tem a estrutura de criação de um botão pela biblioteca

gráfica da Microchip.

Page 33: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

33

Ex:

BtnCreate( ID_BTN1, //identificador deste botão

0, 0, 40, 30, //dimensões do botão e posição.

0, //raio do botão caso fosse redondo

NULL, //imagem a ser usada no botão, neste caso

nenhuma.

“?”, //texto do botão

altScheme); //estilo do botão, como por exemplo as cores.

O parâmetro da imagem a ser usada no botão foi passado como NULL, devido a

limitações de memória, pois imagens consomem bastante e o microcontrolador possui

uma quantidade pequena.

4.4.2 Definindo a estrutura da matriz de botões

O tabuleiro é uma matriz de struct, sendo que cada posição desta referencia um

botão do tabuleiro,

valor: é o numero que tem na posição do tabuleiro que indica quantas bombas

tem ao redor desta casa ou se é bomba ou o identificador do jogador que acertou

se for bomba aberta

b: ponteiro deste botão

ID: identificador deste botão

Ex:

struct botao

{

int valor;

BUTTON* b;

WORD ID;

}mat[7][5];

4.4.3 Gravando as informações

4.4.3.1 A matriz recebendo um valor

No exemplo logo abaixo é mostrado como atribuir um valor para a matriz. Este

valor é o numero que indica quantas bombas existem ao redor desta casa ou indica que

tem uma bomba ou ainda se tiver uma bomba aberta indica qual jogador a abriu.

Ex:

mat[l][c].valor = j;

Page 34: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

34

4.4.3.2 A matriz recebendo um ponteiro para botão

Está recebendo na posição 00 na variável b um ponteiro para botão, por exemplo, o

conteúdo de botao1 é o endereço do identificador que é o endereço do botão que tem

este identificador, assim o botao1 está vinculado à posição 00 da matriz.

Ex:

mat[0][0].b=botao1;

4.4.3.3 A matriz recebendo o identificador para o botão

Na posição 00 da matriz, na variável ID, está sendo gravado o identificador de um

botão, por exemplo, o valor de ID_BTN1 vai vincular a posição 00 da matriz ao botão

correspondente a este identificador, semelhante ao exemplo anterior.

Ex:

mat[0][0].ID=ID_BTN1;

4.4.3.4 Definindo um identificador para um objeto botão

Ex:

#define ID_BTN1 10

4.4.3.5 Criando um ponteiro para um botão

Ex:

BUTTON *botao1;

4.4.3.6 Ponteiro recebendo o endereço do botão correspondente ao

identificador

Ex:

botao1 = (BUTTON*)GOLFindObject(ID_BTN1);

4.4.4 Verificando se o botão foi pressionado

Para ser possível fazer esta verificação é necessária uma função de controle da

biblioteca gráfica chamada GOLMsgCallback. Esta função irá retornar para a biblioteca

o identificador do objeto que foi tocado na tela. Para verificar se um botão foi

pressionado, basta seguir o exemplo a seguir.

Page 35: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

35

Na primeira linha, a variável objectID recebe o identificador do objeto que gerou um

evento pela função GetObjID, pObj é um cabeçalho de objeto e serve para identificar o

objeto. Na segunda linha está comparando cada identificador da matriz com o

identificador do botão que gerou o evento e na terceira linha já sabendo qual botão do

tabuleiro gerou este evento é verificado se o evento gerado é de o botão ter sido

pressionado.

Ex:

objectID = GetObjID(pObj);

if (objectID == mat[i][j].ID)

{

if (objMsg == BTN_MSG_PRESSED)

Este capítulo abordou como foram feitos os testes do hardware usado, a pré-

implementação do jogo em modo texto e como programar com a biblioteca gráfica.

Page 36: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

36

5 VALIDAÇÃO E RESULTADOS

Neste capítulo são abordados os resultados obtidos com o termino do projeto.

5.1 Projeto finalizado

Para melhor apresentação e proteção, o kit foi colocado dentro de uma caixa

acrílica, assim possibilitando a visualização do circuito. A placa possui um botão de

reset que faz o microcontrolador reiniciar, assim para poder usá-lo foi adaptado um

botão, pois com a altura do acrílico impossibilitava o acesso a ele para poder reiniciar o

jogo. A implementação do jogo é feita com o auxilio do computador no MPLAB, onde

neste é gerado o arquivo .hex que posteriormente será gravado no PIC, a gravação é

feita com o gravador PICkit2 e com o seu software de gravação PICkit2 Programmer,

após isso basta ligar a placa com a fonte de alimentação e o jogo aparecerá na tela

aguardando o primeiro jogador começar, tocando na tela no local correspondente à casa

desejada. Na Figura 5.1 é demonstrado o kit inserido na caixa acrílica.

Figura 5.1 - KIT inserido na caixa acrílica

Page 37: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

37

5.2 Jogo campo minado finalizado

O jogo finalizado ficou com um tabuleiro de 7 linhas e 5 colunas contendo 9 bombas

espalhadas aleatoriamente onde estas cada vez que o jogo é reinicializado mudam de

posição.

Na tela contem o tabuleiro, um placar indicando quantas bombas cada jogador

encontrou até o momento, um contador indicando quantas bombas restam no tabuleiro a

serem descobertas e um indicador de qual é o jogador da vez. Cada jogador possui sua

cor e é indicada pela cor do seu placar (verde é o jogador 2 que é a inteligência e

vermelho o jogador 1 que é a pessoa), quando um jogador acerta uma bomba a casa

assume a cor deste para sua identificação e este jogador continua jogando até acertar

uma casa que não possua bomba, passando a vez ao oponente.

Figura 5.2 - Tela inicial do jogo

Figura 5.3 - Exemplo de jogada

Page 38: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

38

Figura 5.4 - Exemplo da tela de fim de jogo

5.3 Validação

O jogo foi testado e feito uma estimativa de quantas vezes a inteligência ganhou,

perdeu ou não conseguiu continuar jogando e travou, A análise foi feita em 40 vezes em

que foi jogado e varias pessoas jogaram. O resultado destes testes está na Tabela 5.1.

Tabela 5.1 - Estatística de resultados do jogo

Número Porcentagem

Derrotas 19 47,5%

Vitorias 14 35%

Travamentos 7 17,5%

Os travamentos citados na Tabela 5.1 ocorrem por um problema que não foi

corrigido devido ao não descobrimento da causa exata do mesmo, a mais provável

segundo pesquisas é de estouro da pilha de processos do microcontrolador.

5.4 Custos do projeto

Na tabela abaixo pode-se observar os gastos para o desenvolvimento deste projeto.

Page 39: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

39

Tabela 5.2 - Tabela de custos

Neste capítulo foram demonstrados os resultados obtidos com a finalização do

projeto e a tabela de custos do mesmo.

Page 40: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

40

6 CONCLUSÃO

Neste projeto foi introduzida uma novidade neste jogo, que é a interatividade com

touch screen, que também é novidade no mundo dos jogos, pois este tipo de aplicação

está ficando mais comum e popular com o advento do Iphone e do Ipod Touch da

Apple.

Inicialmente a ideia não era utilizar esta interface para o desenvolvimento deste jogo

nem deixando inteligente, mas vendo esta tecnologia, incentivou-me a pesquisar como

ela funciona e como transportar o jogo antes desenvolvido para modo console para um

sistema embarcado. A inteligência também não estava nos planos iniciais para o

desenvolvimento, pois a disciplina de Inteligência Artificial é lecionada no ultimo ano

do curso, assim não teria uma base para o desenvolvimento da mesma no jogo.

Foi desenvolvido com esta interface para popularizar este tipo de aplicação com as

crianças e deixar este jogo que até então somente tinha em computadores e celulares

sem touch screen.

Alguns problemas que surgiram ao logo do desenvolvimento além do

desenvolvimento do projeto em si, propiciou um ganho de conhecimento no

desenvolvimento de aplicações embarcadas com telas touch screen e de inteligência

artificial com a aplicação de alguns conceitos de autômatos celulares.

O projeto pode ser melhorado colocando uma segunda inteligência para auxiliar a

que já existe, utilizando outros conceitos, como lógica fuzzy ou ainda um sistema

hibrido como neurofuzzy, podendo ainda melhorar a que já está implementada, pois um

grande desafio foi desenvolver a inteligência em um espaço de tempo curto pelo fato de

estar tendo a disciplina no corrente ano, assim a inteligência ficou um tanto limitada.

Apesar das limitações da inteligência, os resultados obtidos são satisfatórios, pois a

porcentagem de travamentos não foi muito elevada e a porcentagem de vitórias da

inteligência não é muito diferente da de derrotas.

Page 41: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

41

REFERÊNCIAS BIBLIOGRÁFICAS

Livros

BARONE,Dante Augusto Couto, Sociedades Artificiais, Porto Alegre: Bookman,

2003.

DEITEL, H.M,; DEITEL, P.J., Como Programar em C, 2ª Ed. Rio de Janeiro:

LTC, 1999.

DEITEL, H.M.; DEITEL, P.J., C++ Como Programar, 3ª Ed. Porto Alegre:

Bookman, 2001.

SOUSA, Daniel Rodrigues de; SOUZA, David José de, Desbravando o PIC24:

Conheça os Microcontroladores de 16 Bits, 1ª Ed. São Paulo: Érica, 2008.

Em meio eletrônico

BARBACENA, Ilton L.. Display LCD. Disponível em

<http://www2.eletronica.org/apostilas-e-ebooks/componentes/LCD_30324b.pdf>.

Acesso em out. 2009.

BLANCO, Mariana Z. Microprocessador. Disponível em

<http://pinga.eep.br/~mblanco/microprocessador.pdf>. Acesso em out. 2009.

FLAUSINO, Rodrigo, Os Jogos Eletrônicos e seus Impactos na Sociedade.

Disponível em <http://www.rodrigoflausino.com/blog/artigos-e-tutoriais/os-jogos-

eletronicos-e-seus-impactos-na-sociedade>. Acesso em set. 2009.

MESSENGER.ZONE. Imagem campo minado do MSN Messenger. Disponível em

<http://messenger.zone.msn.com>. Acesso em out. 2009.

MICROCHIP. PIC24FJ128GA010 Data Sheet. Disponível em

<http://ww1.microchip.com/downloads/en/DeviceDoc/39747d.pdf>. acesso em mar.

2009.

MICROSOFT. Campo Minado: como jogar. Disponível em

<http://windows.microsoft.com/pt-BR/windows-vista/Minesweeper-how-to-play>.

Acesso em out. 2009.

PICTUTORIALS. Introducing PIC. Disponível em

<http://www.pictutorials.com>.Acesso em out. 2009.

PIPORO, B. Nova Estrutura da Marca Intel II: Um pouco de história. Disponível em

<http://www.bpiropo.com.br/fpc20090713.htm>. Acesso em nov. 2009.

Page 42: Campo Minado Inteligente - up.edu.br · universidade positivo nÚcleo de ciÊncias exatas e tecnolÓgicas curso de engenharia da computaÇÃo rafael gustavo fabris viensci campo minado

42

SPATIALANALYSISONLINE. Cellular automata (CA). Disponível em

<http://www.spatialanalysisonline.com/output/html/CellularautomataCA.html>. Acesso

em out. 2009.

TECH TOYS. 3,2’’ QVGA 262K TFT LCD module with Microchip Graphics

Library. Disponível em

<http://www.techtoys.com.hk/Displays/TY320T240320/TY320T_240320_Rev2B_Guid

e.pdf>. Acesso em mar. 2009.

THOMSOM, Iain.Top 10 industry-changing applications. Disponível em

<http://www.vnunet.com/vnunet/news/2243224/top-industry-changing?page=1>.

Acesso em jun. 2009.

WATCHTOWER. Jogos Eletrônicos: Inofensivos ou Perigosos?. Disponível em

<http://www.watchtower.org/t/20021222/article_01.htm>. Acesso em set. 2009.

WIKIPEDIA. Campo Minado. Disponível em

<http://pt.wikipedia.org/wiki/Campo_minado>. Acesso em out. 2009.