Home
O jogo de Xadrez
Contents
1. escrever Coluna Y Z ver traco Pos Max Max lt 10 Y is Pos 4 Max Y 1 MaxN is Max 1 ver traco Pos MaxN ver espaco Pos Max Max lt 10 Y is Pos 4 Max Y 2 Y is Pos 4 Max Y 4 MaxN is Max 1 ver espaco Pos MaxN ver letra Pos Max Max 10 Y is Pos 4 Max Y 3 MaxN is Max 1 ver letra Pos MaxN ver espacoPeca Pos Max Max lt 10 Y is Pos 4 Max Y 4 MaxN is Max 1 ver espacoPeca Pos MaxN ver Peca Y X Z is Y 2 1 ASCII is 63 X 2 4 posicao actual Peca Letra Z char code Letra ASCII Letra 49 ASCII Letra ASCII write Peca 7 6 Jo Ja o o a a a a ao Jo oo JoJo do Jo do da a a a Jo Jo JoJo JoJo JoJo do do do a a a Jo Jo JoJo Jo Jo Jo do Jo do do da da a ad 4 Z Movimento das PE AS 7 VY A AV do do o a a a o do oo od do ada fo a a a la do lodo mover PecaNivel Xantes Yantes Xdepois Ydepois MaxNivel Accao not Ydepois Yantes not Xdepois Xantes ASCIId is 64 Xdepois char code LetraD ASCIId ASCIla is 64 Xantes char code LetraA ASCIIa posicao actual Peca LetraA Yantes MaxNivel Accao 0 retract posicao actual Z LetraA Yantes MaxNivel assert posicao actual Z LetraD Ydepois MaxNivel Accao 1 retract posicao actual PecaMorta LetraD Ydepois MaxNivel upss assert cemiterio PecaMorta MaxNivel retract posicao actual Peca LetraA Yantes MaxNivel assert posicao actual Peca LetraD Ydepois MaxNivel mover Peca Xa
2. ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Accao is 0 posicao actual Peca Letra Ydepois MaxNivel not _ Cor ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Accao is 1 Bispo de cor Cor 53 regra 66 Cor Xantes Yantes Xdepois Ydepois Accao MaxNivel var Xdepois retornar num Z Xdepois is Xantes Z Ydepois is Yantes Z Ydepois is Yantes Z Xdepois is Xantes Z Ydepois is Yantes Z Ydepois is Yantes Z Xdepois gt 0 Xdepois lt 3 Ydepois gt 0 Ydepois lt 3 not var Xdepois Dif1 is abs Xantes Xdepois Dif2 is abs Yantes Ydepois Difl Dif2 ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Accao is 0 posicao actual Peca Letra Ydepois MaxNivel not _ Cor ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Accao is 1 hRei de cor cor regra 75 Cor Xantes Yantes Xdepois Ydepois Accao MaxNivel var Xdepois Xdepois is Xantes 1 Ydepois is Yantes 1 Ydepois is Yantes 1 Xdepois is Xantes 1 Ydepois is Yantes 1 Ydepois is Yantes 1 Xdepois is Xantes 1 Ydepois is Yantes Xdepois is Xantes 1 Ydepois is Yantes Ydepois is Yantes 1 Xde
3. max to move Pos Val gt Val1 min to move Pos Val lt Val1 70 AP NDICE C LISTAGEM DO C DIGO betterof _ Pos1 Val1 Posi Vall 4 writeln Vali min to move Pos Y is Pos mod 2 Y 0 max to move Pos Y is Pos mod 2 Y 1 AI Jooo JoJo o a o a a a a o Jo Joo ooo JoJo do do do da a a a o Jo Jo JoJo JoJo Joao do do a da ala Jo Jo Jo JoJo Jo JoJo Jo do do a a da la Jo Jo Joo JoJo Jo h Z Fun o avaliadora 7 AAhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhkhhhhhhhhhhhhhhhhh funcao avaliadora Xa Ya Xd Yd Accao Nivel 1 Val apagar tab aux Nivel criar tab aux Nivel mover PecaNivel Xa Ya Xd Yd Nivel Accao min to move Nivel Cor 87 CorA 66 max to move Nivel Cor 66 CorA 87 valor tabuleiro Cor ValN Nivel valor tabuleiro CorA ValA Nivel Nivel gt 1 Val is 1 ValN ValA Val is ValN ValA apagar tab aux Nivel moves Xa Ya Xd Yd Accao Nivel L nivel prof Prof Nivel Prof jogadaN Num Num 5 min to move Nivel 87 max to move Nivel Cor 66 71 max Tab Nivel MaxNivel MaxNivel lt Nivel apagar tab aux MaxNivel criar tab aux Nivel mover PecaNivel Xa Ya Xd Yd Nivel Accao listagemAB R Nivel Cor listagem Pecas TodasAB Cor R ListaValores Nivel nivela ListaValores L moves PosLista criar tab aux 1 Cor 66 listagemAB R 0 Cor listagem Pecas TodasAB Cor R ListaValores 0
4. 7 da da da a a a Do o o o do Do do o do oo b o o o lo lo o lo o lo a a a a a a a a a a a a a a a a bo lo oo oo ooo JoJo Joo Joo oo 4 1 Pedido dos Nomes dos JOGADORES 4 7 da da da a a a Jo o o o do Do do o do oo oo o o o oo o o o o a a a la la a a a a a a a a a a a o o ho ho bo o oo ooo ooo Joo Joo nome 1 write 501 01 write Quais os nomes dos jogadores nl nl vrite Jogador 1 readln Nomel assert jogador 1 Nome1 nl vrite Jogador 2 readln Nome2 assert jogador 2 Nome2 nl nl jogador 1 N1 jogador 2 N2 write N1 write vai jogar com as pe as brancas nl nl write N2 write vai jogar com as pe as pretas nl nl write do oo o o o o o o o o lo o o o lo o a a a a a a a a a a a a ha gt 46 AP NDICE C LISTAGEM DO C DIGO nl nl write Boa Sorte nl nl nome X X 2 X 3 write Qual o nome do jogador que se atreve a jogar contra n s nl nl vrite Jogador readln Nomel assert jogador 1 Nome1 nl Nome2 Xana amp tbs assert jogador 2 Nome 7 da da da a a lle Jo bb o dodo dodo o lo o lo a a a a a a a a a a a a a a a o lle o o oo o o ooo oo lolo lolo Joo h Menu do JOGO h 7 da da da a a a Jo o do Do do Do do o do oo oo o o o oo o lo lo lo a la a la a a a a a a a a a a a a o o o olo ooo ooo ooo Joo Joo l jogar write Jogo do Xadrez Xana amp Tbs Lda nl nl write nl write nl writ
5. max Lista 0 MaxNivel constroi_Nivel Lista L posicao_actual _ _ _ Nivel not member Nivel L constroi Nivel Lista Nivel L constroi Nivel L L max Max Max max X R Inic Max Inic lt X InicN is X soma Inic Inic soma X R Valor Inic InicN is Inic X 59 60 AP NDICE C LISTAGEM DO C DIGO soma R Valor InicN maxValor 1 _ _ Z W Y T Z W Y T A A maxValor Xantes Yantes Xdepois Ydepois Accao V ValorAdv R Inic Max Z W Y T Xa Ya Xd Yd Inic lt V ValorAdv InicN is V ValorAdv maxValor R InicN Max Xantes Yantes Xdepois Ydepois Xa Ya Xd Yd Accao AccaoN maxValor R Inic Max Z W Y T Xa Ya Xd Yd AccaoInic AccaoN nivela L L nivela C IR L RP nivela R L RF nivela XIRJ XIR nivela XIR IRL LI L nivela XIRJ L3 nivela RL LR concatena LX LR L2 concatena L2 LI L concatena L L concatena X R L 1 concatena R L C escreve 1 escreve XIL writeln X escreve L 61 AI o o o ooo o a o a a a a o od ooo JoJo do do da da a a ao Jo Jo JoJo JoJo JoJo do Jo do a da a Jo Jo Jo JoJo JoJo JoJo Jo do do a a da la Jo Jo Joo lodo Jo 7 Z Fun o Avaliadora do tabuleiro 7 AI Idee o a o a a a a ooo Jo oo JoJo do do do do a a a o Jo Jo JoJo Jo o JoJo do do da a a a Jo do do da a a a la Jo Jo Jo lodo Joo do
6. Jogador Jogador 2 alphabeta 100000 100000 Xantes Yantes Xdepois Ydepois Accao apagar tab aux 1 mover PecaNivel Xantes Yantes Xdepois Ydepois 0 Accao validar fim Jogo 87 Nome fail validar fim Jogo Cor Nome 44 AP NDICE C LISTAGEM DO C DIGO fim Jogo Cor 0 Valor Valor 1 write Fim de Jogo Parab ns write Nome write Valor 0 write Fim de Jogo Empate nl fail Jogada do jogador TA e Ja o do a a a da a a o o a da Joo od oo da a a a a a o o dd Jo do ado fo o a a da lo o ada ooo lodo fofo lodo a jogada Jogada Jogador R name Jogada JogadaArray converter JogadaArray Xantes Yantes Xdepois Ydepois ASCIla is 64 Xantes char code LetraA ASCIIa posicao actual Peca LetraA Yantes name Peca Cor CJogador 1 Cor 87 Jogador 2 Cor 66 mover Peca Xantes Yantes Xdepois Ydepois converter l 1 45 converter LetraA NumA LetraD NumD LetraAn NumAn LetraDn NumDn LetraA gt 65 LetraA lt 72 LetraAn is LetraA 64 LetraA gt 97 LetraA lt 104 LetraAn is LetraA 96 LetraD gt 65 LetraD lt 72 LetraDn is LetraD 64 LetraD gt 97 LetraD lt 104 LetraDn is LetraD 96 NumA gt 49 NumA lt 56 NumAn is NumA 48 NumD gt 49 NumD lt 56 NumDn is NumD 48
7. s Este facto deve se poss vel confus o da representa o do Rei e da Rainha pois ambos come am pela mesma letra Assim adoptou se 5 6 CAP TULO 2 FUNCIONALIDADES a l ngua inglesa e tem se KB King Black para representar o Rei Preto e QB Queen Black para representar a Ra nha Preta e TB representa Torre Preta e HB representa Cavalo Preto e BB representa Bispo Preto e KB representa Rei Preto e QB representa Ra nha Preta e PB representa Pe o Preto e TW representa Torre Branca e HW representa Cavalo Branco e BW representa Bispo Branco e KW representa Rei Branco e QW representa Ra nha Branca e PW representa Torre Branca Em seguida pedido ao Jogador 1 que fa a a sua jogada e se essa for permitida passa a vez ao Jogador 2 Caso algum dos jogadores pretenda avan ar um movimento ilegal ter oportunidade de refazer o pedido No segundo caso existe apenas a necessidade de exist ncia de um jogador a quem se pede a identifica o e se informa sobre as pe as com que ir jogar A partir da o jogo inicia e pedido ao jogador que fa a o seu movimento e de seguida o computador far a sua jogada O terceiro caso apenas se distingue do segundo pelo n vel de profundidade do algoritmo usado suposto que nesta funcionalidade o computador seja mais inteligente que no segundo caso da o n vel dois Para o efeito e no primeiro caso usou se o algoritmo Min Max com profundidade um melh
8. 1 posicao inicialCQB E 1 posicao inicial CBB F 1 posicao inicial HB G 1 posicao inicialC TB H 1 posicao inicialC TW A 8 posicao inicial HW B 8 posicao inicial BW C 8 posicao inicialC KW D 8 posicao inicialC QW E 8 posicao inicial BW F 8 posicao inicial HW G 8 posicao inicialC TW H 8 posicao inicial PB A 2 posicao inicial C PB B 2 posicao inicial CPB C 2 posicao inicial C PB D 2 3 2 INICIALIZA O DAS PE AS NO TABULEIRO 9 posicao_inicial PB E 2 posicao inicial PB F 2 posicao inicial PB G 2 posicao inicial PB H 2 posicao inicial PW A 7 posicao inicial C PW B 7 posicao inicialCPW C 7 posicao inicial C PW D 7 posicao inicial PW E 7 posicao inicial C PW F 7 posicao_inicial PW G 7 posicao inicialC 7 linhas 19 colunas 37 valor 80 100 valor 66 325 valor 72 325 valor 84 500 valor 81 1000 valor 75 20000 Note se que o 80 66 72 84 81 75 s o o c digo ASCII das letras P B H T Q K que dizem respeito s iniciais das pe as intervenientes no jogo 3 2 Inicializa o das pe as no tabuleiro E nesta sec o do c digo que se inicializa o tabuleiro e se cria a tal base de conhecimento virtual que diz respeito s posi es actuais das pe as no tabuleiro No in cio a posi o actual toma o valor da posi o inicial
9. 40 35 130 60 55 50 45 140 35 30 25 55 50 45 40 35 30 25 20 50 45 40 35 130 25 20 15 45 40 35 30 25 120 15 10 40 35 30 25 20 15 10 5 NO RBR o U 30 90 25 120 115 10 5 0 3 11 4 Posi o diferente da inicial O pe o recebe um b nus de 10 vezes o n mero de casas em que se encontra e que diferente da posi o inicial No tabuleiro seguinte encontra se a pontua o recebida pe a valor 3 12 ALGORITMO MIN MAX COM CORTES ALFA BETA 17 Pe o A B C D E F G H 1 PW 60 2 PB 0 PW 50 3 PB 10 PW 40 4 PB 20 PW 30 5 PB 30 PW 20 6 PB 40 PW 10 7 PB 50 PW O 8 PB 60 3 11 5 Pe as defendidas por uma pe a igual O pe o recebe um b nus de 10 pontos por estar defendido por um pe o O bispo e a torre recebem um b nus de 25 pontos por serem defendidos por um bispo e uma torre respectivamente Por uma pe a diferente O bispo e a torre recebem um b nus de 25 pontos por serem defendidos pela rainha 3 12 Algoritmo Min Max com cortes Alfa beta A codifica o do algoritmo foi a ltima parte da estrutura do programa a ser desenvolvida 18 CAP TULO 3 ESTRUTURA DO PROGRAMA Cap tulo 4 Esquemas de Representa o O jogo de Xadrez tem v rios tipos de conhecimentos que t m que serem representados numa forma simples Esses conhecimentos s
10. e quarta coordenadas de 1 a 8 O primeiro par de coordenadas refere se posi o em que a pe a se encontra e o segundo par para onde se pretende que a pe a se mova 6 Repetir o passo 5 at ao fim do jogo Se pretender abandonar o jogo digite s 33 34 AP NDICE A MANUAL DO UTILIZADOR Ap ndice B Exemplo de uma execu o B 1 1 Humano vs Humano B 1 1 In cio do jogo Apresenta o dos jogadores 35 36 AP NDICE B EXEMPLO DE UMA EXECU O Primeira Jogada B 1 1 HUMANO VS HUMANO B 1 2 Movimento inv lido 37 38 AP NDICE B EXEMPLO DE UMA EXECU O B 1 3 Fim do jogo B 2 2 Humano vs Computador n vel 1 3 Humano vs Com putador n vel 2 Nestes dois casos a apresenta o do programa semelhante A nica diferen a que existe apenas um jogador Ap ndice C Listagem do c digo 7 a a a a a a a a a a a a a a o o o Jo o Do o o o o oo oo o o o o o o o o o o lo a a a a a a a a a a a a a a a a a o Lo ho do o lodo Z PROGRAMA XADREZ PROLOG 4 Ricardo Fernandes e Alexandra Bernardo 7 Metodologias de Intelig ncia Artificial MIACC 2002 2003 VA fado dado fado fado lodo do do lodo foe fo da fo ato ha fo da fo dado lado ha fo la fo a folha fa do Jada da a do da fadada lo da dada da da do doa Jada do da boda VAN ado ado fado da AAA AAA do dado lado dh lo dh do a do a do dh fo ha do ado a do ada odo a do da dh dad do fada A dodalo do da dh bolo o oa Z BASE DE CONHECIME
11. 4 11 4 Posi o diferente da inicial 4 11 5 Pe as defendidas 4 12 Algoritmo Min Max com cortes Alfa beta Esquemas de Representa ao Implementa o dos Esquemas de Representa o Complexidade Ambiente de desenvolvimento Conclus o 10 Melhoramentos A B Manual do Utilizador Exemplo de uma execu o 1 1 Humano vs Humano lee ns BA In cio do JOoBo nus ee EE peo e nu RT A e B 1 2 Movimento inv lido eh Bib3 Pim do jogo move mme bon ERREUR Su Q ERR B 2 2 Humano vs Computador n vel 1 3 Humano vs Computador n vel 2 Listagem do c digo 21 23 25 27 29 31 35 CONTE DO Cap tulo 1 Motiva o O xadrez j n o pode ser entendido como um jogo sen o que apesar de seu car cter de entretenimento uma prova de for a e testemunho da mente humana Se reflecte em nossa hist ria cultural e enzadr stica tanto como em nossos comportamentos considerados cl ssicos como ocorre na hist ria pol tica A natureza humana se mostra aqui como l em grande profundidade ideol gica no aux lio paciente no temperamento na vigorosa agressividade na prepara o t ctica e na cegueira repentina Sabendo que o xadrez um reflexo da condi o humana sua pr tica suporta formas pe culiares de raciocinar cuja origem tem a ver com a ver com a base ideol gica de
12. CAP TULO 5 IMPLEMENTA O DOS ESQUEMAS DE REPRESENTA O Cap tulo 6 Complexidade O espa o de estados do jogo de Xadrez bastante grande A partir de um tabuleiro em qualquer fase do jogo podem realizar se em m dia trinta e cinco jogadas e como a dura o de um jogo envolve aproximadamente cinquenta movimentos para gerar a rvore de todos os movimentos poss veis ou tabuleiros seriam necess rios cerca de 35190 tabuleiros Para diminuir o n mero de tabuleiros e aumentar a performance do jogo a n vel de tempo usou se o algoritmo Min Max com cortes Alfa Beta com n vel dois de profundidade 23 24 CAP TULO 6 COMPLEXIDADE Cap tulo 7 Ambiente de desenvolvimento O trabalho foi realizado num computador HP Pentium IV a 1 4 com 392MB de mem ria RAM cujo sistema operativo o 2000 Professional Para al m deste o programa tamb m foi testado HP OmiBook Xe3L com Processador Intel Celeron a 930 MHZ com 397 MB de mem ria RAM cujo sistema operativo o XP Professional Em ambos os casos foi usado o programa SWI Prolog version 5 0 10 by Jan Wielemaker O programa foi escrito em PROLOG e n o foi usado qualquer tipo de pacotes de software extra 25 26 CAP TULO 7 AMBIENTE DE DESENVOLVIMENTO Cap tulo 8 Conclusao Como sabido o jogo do xadrez um jogo de elevado n vel de complexidade O n mero de pe as e regras envolvidas s o a causa dessa complexidade A passagem da filosofia do xadr
13. Inicializa o das pegas no tabuleiro h VATA olo Da a Doo Do do a do da Do doa Jo da do doa Jo dado a do do dado Ja odo da Jo ha dolo ha dolo odo do do a lodo do do ha folha do lola do dynamic posicao actual 4 jogadaN 1 nivel prof 1 iniciar posicao inicial P X Y not posicao actual P X Y 0 assert posicao actual P X Y 0 iniciar 6 dh a do la da dada do da dad dado ada doa doa dada da olha foda a o a lo do da do da a a oa do la fo a ado la o a a doa fo ha ala a foda Y Inicializa o do JOGO VATA AV olo odo Lola olo a dolo Do doa olo dado a folo dado a odo deoa olo da A Joo a lolo do do ha lolo lola olo lo jogar Tipo jogo retractall posicao actual retractall jogador retractall cemiterio 41 42 AP NDICE C LISTAGEM DO C DIGO retractall jogadaN retractall nivel assert jogadaN 0 assert nivel prof 2 iniciar nome Tipo jogo 1 Tipo jogo 1 1 Tipo jogo Jogador not movimento Tipo jogo Jogador Jogador 1 JogadorN 2 jogadaN Num retractall jogadaN NumN is Num 1 assert jogadaN NumN JogadorN 1 1 jogo JogadorN jogar Volo a odo Da Ja Do a Do do a do dh do doa olo do AT AYA AT do a do dh do do da do dh do do ha Jo lo do do ha A lo Jo JoJo a dolo ha A lo Jo oh AT AT A 4 Movimentos dos Jogadores AAA AYA AT a Do a odo a do da do doa do dh do doa dado a folo dado a odo da do
14. NTO 7 a a a a a a a a a a a a a a a o o Do o Do o do Jo do oo oo o o o o o o lo o o o lo a la a la a a a a a a a a a a o a ha o Lo do o o lodo dynamic cemiterio 2 39 40 posicao inicial TB A 1 posicao inicialCHB B 1 posicao inicial BB C 1 posicao inicialCKB D 1 posicao_inicial QB E 1 posicao_inicial BB F 1 posicao inicial HB G 1 posicao inicialC TB H 1 posicao inicialC TW 4A7 8 posicao inicialCHW B 8 posicao inicialCBW C 8 posicao inicialCKW D 8 posicao inicialCQW E 8 posicao inicialCBW F 8 posicao inicialCHW G 8 posicao inicialC TW H 8 posicao inicial PB A 2 posicao inicial CPB B 2 posicao inicial PB C 2 posicao inicial CPB D 2 posicao inicial CPB E 2 posicao inicial CPB F 2 posicao inicial PB G 2 posicao inicial CPB H 2 posicao inicialCPW A 7 posicao inicialC PW B 7 posicao inicialC PW C 7 posicao inicialC PW D 7 posicao inicialC PW E 7 posicao inicialCPW F 7 posicao inicial PW G 7 posicao inicialC PW H 7 AP NDICE C LISTAGEM DO C DIGO linhas 19 colunas 37 valor 80 100 valor 66 325 valor 72 325 valor 84 500 valor 81 1000 valor 75 20000 6 dh da do a dad da foda dad dao ada foda oa da da a foda foda da foda fo do da od da a a do a do la a folha do a dad ao a ado a fo ha ada a foda Y
15. O jogo de Xadrez Alexandra Bernardo amp Ricardo Fernandes 09 de Janeiro de 2003 Conte do 1 Objectivo 2 Motiva o 3 Funcionalidades 4 Estrutura do Programa 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 Base de conhecimento Inicializa o das pe as no tabuleiro Inicializa o d JOBO hono o be s mago gua B V q s q Movimentos dos Jogadores lt lt lt lt lt lt lt lt 4 lt lt 4 4 lt 4 s s ee Jogada dojogader ss AER x Rx RR se ED DRE Pedido dos nomes dos jogadores lt lt lt lt lt lt lt lt 4 4 lt lt lt 4 lt Meni do jogo sa K RO l boj Roh dx Y wo Desenho do tabuleiro lt lt lt lt lt lt 4 4 4 4 ee 4 8 1 Aspecto inicial do tabuleiro Regras das pegas LI wu as LY S v ue SAE uza VY okn dl oh E 4 9 2 Cavalo adia uo ae a Vo s ADR KV dk P dk bo nb CEU 49 9 BISPO z Sas bob np n Umen aeg ariete AGA zel dy mese a ded a un 4 0 5 Ra e ce ue e Y Ses I To RS 49 06 READ a SA m AS CE ox S ue TEE Movimento das pe as Heuristicasi Li erts ente eeu AA eter Du OJ 4 11 1 Valor inicial das pe as 4 11 2 Dist ncia LTA Dist ncia d T l alpa Q it a C l B
16. XReiL YRei MaxNivel name XReiL ASCII XRei is ASCII 64 Y gt YRei DistY is Y YRei Y lt YRei DistY is YRei Y 64 AP NDICE C LISTAGEM DO C DIGO X gt XRei DistX is X XRei X lt XRei DistX is XRei X P 72 P 84 Valor is 70 DistY 2 DistX 2 Valor is 140 DistY 3 DistX 3 bonus Por Dist Rei 0 tabela Pontos Defendido MPeca Peca Valor name Peca PecaArray PecaArray 80 Valor is 10 PecaArray 66 Valor is 25 PecaArray 84 Valor is 25 Valor is 0 defendido MPeca Peca X Y MaxNivel name PecaArray Z 66 PecaNC is 87 PecaArray Z 87 PecaNC is 66 PecaN Z PecaNC funcao geradora PecaN X Y R MaxNivel not ver PecaDiferente Peca R ver PecaDiferente Peca X Y Accao Nivel R Accao 1 ASCII is 64 X char code Letra ASCII posicao actual PecaC Letra Y Nivel Peca PecaC fail ver_PecaDiferente Peca R ver PecaDiferente 65 peca defendida Rainha Peca X Y MaxNivel name PecaArray 66 PecaArray 84 1 PecaArray Z2 66 PecaNC is 87 PecaArray Z 87 PecaNC is 66 PecaN Z PecaNC funcao geradora PecaN X Y R MaxNivel not ver PecaRainha Peca R ver PecaRainha Peca X Y Accao Nivel R Accao 1 ASCII is 64 X char code Letra ASCII posicao actual PecaC Letra Y Nivel name _ name Pec
17. Xantes 1 Z Xdepois W is Yantes 1 W Ydepois ASCII is 64 Xdepois char code Letra ASCII posicao actual Peca Letra Ydepois MaxNivel name Peca 66 Accao is 1 Peao Preto regra 80 66 Xantes Yantes Xdepois Ydepois Accao MaxNivel Xantes Xdepois Z is Vantes 1 Ydepois Z ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel Ydepois 4 Yantes 2 ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel W is Ydepois 1 not posicao actual Letra W MaxNivel Accao is 0 regra 80 66 Xantes Yantes Xdepois Ydepois Accao MaxNivel Z is Xantes 1 Z Xdepois Z is Xantes 1 Z Xdepois W is Yantes 1 52 AP NDICE C LISTAGEM DO C DIGO W Ydepois ASCII is 64 Xdepois char code Letra ASCII posicao actual Peca Letra Ydepois MaxNivel name _ 87 1 Torre de cor regra 84 Cor Xantes Yantes Xdepois Ydepois Accao MaxNivel var Xdepois retornar num Z Xdepois is Xantes Z Ydepois is Yantes Z lt Xantes Xdepois is Xantes Z Z gt Xantes Xdepois is Z Xantes Ydepois is Yantes Ydepois is Yantes Z Xdepois is Xantes Z lt Yantes Ydepois is Yantes Z Z gt Yantes Ydepois is Z Yantes Xdepois is Xantes Xdepois gt 0 Xdepois lt 8 Ydepois gt 0 Ydepois lt 8 not var Xdepois Xantes Xdepois Yantes Ydepois
18. aC 81 PC fail ver_PecaRainha Peca R ver PecaRainha 7 e Joo JoJo Joa ele a a a ooo ooo JoJo do do da da a a ao dodo JoJo JoJo JoJo do do da a da Jo Jo Jo JoJo Jo JoJo Jo do do a ao Jo Jo Joo Joo Jo 7 Z Fun o Move para computador 7 III o o ooo o a a a a a a ooo ooo JoJo do do do da a a a Jo Jo JoJo JoJo Jo do do da a a a a Jo JoJo Jo do do da a a la la ooo Jo Jo dolo movimento maximo valor Cor MaxNivel Xa Ya Xd Yd Accao MaxNivelN is MaxNivel 1 66 AP NDICE C LISTAGEM DO C DIGO listagem R MaxNivelN Cor listagem Pecas Todas Cor R ListaValores MaxNivelN nivela ListaValores L avaliar L Xa Ya Xd Yd Cor MaxNivel Accao avaliar ListaValores Xa Ya Xd Yd Cor MaxNivel Accao avaliarLista ListaValores Cor L MaxNivel maxValor L 0 0 0 0 0 Xa Ya Xd Yd 0 Accao avaliarLista Xantes Yantes Xdepois Ydepois Accao IR Cor K L MaxNivel criar tab aux MaxNivel mover PecaNivel Xantes Yantes Xdepois Ydepois MaxNivel Accao valor tabuleiro Cor Valor MaxNivel Cor 66 valor tabuleiro 87 ValorAdv MaxNivel valor tabuleiro 66 ValorAdv MaxNivel apagar tab aux MaxNivel avaliarLista R Cor Xantes Yantes Xdepois Ydepois Accao Valor ValorAdv K L MaxNivel avaliarLista L L criar tab aux MaxNivel NivelAnt is MaxNivel 1 posicao actual P X Y NivelAnt not posicao actual P X Y MaxNivel assert posicao actual P X Y MaxNivel cria
19. apresentada na sec o anterior e vai sendo alterada medida que o jogo avan a posicao actual Peca X Y nivelDeProfundidade 10 CAP TULO 3 ESTRUTURA DO PROGRAMA onde nivelDeProfundidade indica o n vel de profundidade da peca Peca que se encontra na coordenada X Y 3 3 Inicializa o do jogo Neste momento o programa est pronto a ser inicializado Faz se uma limpeza da base de conhecimento virtual e dependendo do n mero de jogadores envolvidos come a se o jogo 3 4 Movimentos dos Jogadores Ao iniciar a execu o do programa sabido qual o n mero de jogadores envolvido por causa da escolha do menu Sendo assim h a necessidade de fazer com que cada um dos jogadores tenha oportunidade de jogar e saiba quando faz lo Uma vez que existem tr s modalidades diferentes de jogo aqui que se faz a altern ncia de jogadores quer sejam ambos humanos ou n o 3 5 Jogada do jogador Quando um jogador introduz a sua jogada h a necessidade de converter a mesma para valores que o programa possa processar Neste caso concreto a convers o num dos eixos feita para c digo ASCII para facilitar a introdu o das jogadas por parte do jogador Esta medida foi tomada como necess ria embora se pudesse jogar com um tabuleiro que apresentasse a numera o de 1 a 8 na horizontal e vertical 3 6 Pedido dos nomes dos jogadores Uma vez que existe a op o do jogo ser jogado com dois jogadores nesta sec o faz se
20. axNivel ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Accao is 0 posicao actual Peca Letra Ydepois MaxNivel not _ Cor ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Accao is 1 Cavalo de cor cor regra 72 Cor Xantes Yantes Xdepois Ydepois Accao MaxNivel var Xdepois Z is Xantes 1 Xdepois Z is Yantes 2 W is Yantes 2 Ydepois W Z is Xantes 1 Xdepois Z W is Yantes 2 W is Yantes 2 Ydepois W Z is Xantes 2 Xdepois Z is Yantes 1 W is Yantes 1 Ydepois W Z is Xantes 2 Xdepois Z W is Yantes 1 W is Yantes 1 Ydepois W Xdepois gt 0 Xdepois lt 8 Ydepois gt 0 Ydepois lt 8 not var Xdepois Dif1 is abs Xantes Xdepois 56 AP NDICE C LISTAGEM DO C DIGO Dif2 is abs Yantes Ydepois Difl 1 Dif2 2 Difl 2 Dif2 1 ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel Accao is 0 posicao actual Peca Letra Ydepois MaxNivel not name _ Cor Accao is 1 Volala dolo odo a Doda Do do da do da Dodo da do da foda da NY A NY A do a do dh do oa odo do o ha Jo lo do do dado a fo do dado a Jo ah Jalo A A do o ha Jo lo h Y Verifica o da exist ncia ou n o exist ncia de pegas interm dias A 6 a do aa da foda ede a o a dado a do a dad da foda dedo dado a do do a oh da dada da odo a A foda lodo a da a a doa da a dede fo da a
21. cada um O jogo ci ncia unem se ao ideol gico por meio do car cter da experi ncia e da teoria Assim o jogador do xadrez planeja decifra constr i e determina a partida segundo sua maneira de pensar e sua ideologia Em certa medida o xito ou o fracasso dependem da solidez e da profundidade desta Com os conhecimentos te ricos adquiridos na disciplina MIA a motiva o de aplicar estes conhecimentos num jogo com o n vel de complexidade do xadrez foi bastante elevada CAP TULO 1 MOTIVA O Cap tulo 2 Funcionalidades No in cio da execu o do programa disponibilizado um menu que permite ao utilizador fazer a escolha de entre tr s poss veis jogos 1 Jogador 1 contra Jogador 2 2 Jogador 1 contra computador n vel 1 3 Jogador 1 contra computador n vel 2 No primeiro caso Jogador 1 contra Jogador 2 pedida uma identifica o aos utilizadores Essa identifica o n o pode conter espa os logo o uso de um nick name ser o mais apropriado A partir desse momento o programa informa os jogadores sobre a cor das pe as com que cada um ir jogar e apresentado o tabuleiro que tem o seguinte aspecto A C D E F G JH 1 TB HB BB KB GB BB HB TB PB PB PB PB PB PB PB PB PW PW PW PW PW PW 2 3 4 5 6 7 8 TW HW BW KW QW BW TW As pe as do tabuleiro est o representados em ingl
22. char code Letra ASCII posicao actual Peca Letra Y MaxNivel bonus Defendido Por Peca ValorN X Y MaxNivel bonus Defendido Por Rainha Peca ValorN1 X Y MaxNivel bonus Por Dist Pos Inicial Peca ValorN2 Y bonus Por Dist Centro Peca ValorN3 X Y bonus Por Dist Rei Peca ValorN4 X Y MaxNivel name Peca P 1 valor P ValorN5 Valor is ValorN ValorNi ValorN2 ValorN3 ValorN4 ValorN5 bonus Defendido Por Peca Valor X Y MaxNivel defendido MPeca Peca X Y MaxNivel tabela Pontos Defendido MPeca Peca Valor bonus_Defendido_Por _ 0 _ _ _ bonus Defendido Por Rainha Peca Valor X Y MaxNivel 63 peca defendida Rainha Peca X Y MaxNivel Valor is 25 bonus Defendido Por Rainha 0 bonus Dist Pos Inicial Peca Valor Y name PecaArray 80 Cor Cor 87 Valor is 10 7 Y Cor 66 Valor is 10 Y 2 bonus Por Dist Pos Inicial 0 bonus Por Dist Centro Peca Valor X Y name Peca PecaArray PecaArray 72 Y lt 5 DistY is Y 1 Y gt 5 DistY is 8 Y X lt 5 DistX is X 1 X gt 5 DistX is 8 X PecaArray 80 Cor Cor 87 Y 5 DistY is 8 Y Cor 66 Y lt 5 DistY is Y 1 X lt 5 DistX is X 1 X gt 5 DistX is 8 X Valor is DistY 5b DistX 5 bonus Por Dist Centro 0 bonus Por Dist Rei Peca Valor X Y MaxNivel name Peca PecaArray PecaArray P C P 72 P 84 P 81 name Rei 75 C posicao actual Rei
23. do do da a a ao Jo Jo JoJo Jo Jo Ja do Jo do da a a a la Jo JoJo JoJo JoJo Jo do do da a da la la ooo lodo Jo Jo alphabetaT alphabeta 100000 100000 GoodPos Val writeln GoodPos writeln Val apagar tab aux 1 apagar tab aux 2 apagar tab aux 3 alphabeta Pos Alpha Beta GoodPos Val moves Pos PostList write Pos writeln PostList boundedbest PostList Alpha Beta GoodPos Val funcao avaliadora Pos Val boundedbest Pos PostList Alpha Beta GoodPos GoodVal alphabeta Pos Alpha Beta _ Val goodenough PostList Alpha Beta Pos Val GoodPos GoodVal 69 goodenough _ _ Pos Val Pos Val goodenough _ Alpha Beta X Y Z T W Pos _ Val X Y Z T W Pos Val max_to_move Pos Val gt Beta min_to_move Pos Val lt Alpha goodenough PostList Alpha Beta Pos Val GoodPos GoodVal newbounds Alpha Beta Pos Val NewAlpha NewBeta boundedbest PostList NewAlpha NewBeta Pos1 Vall betterof Pos Val Pos1 Val1 GoodPos GoodVal max to move Pos Val gt Alpha Awrite Val write C write Alpha write writeln Beta Awrite Val write C write Alpha write writeln Beta min to move Pos Val Beta Awrite Val write C write Alpha write writeln Beta newbounds Alpha Beta _ Alpha Beta 4 vrite Alpha urite writeln Beta betterof X Y Z T W Pos Val Vall X Y Z T W Pos Val
24. e nl write nl 1 Humano vs 2 Humano vs 3 Humano vs 4 N o quero Humano Computador n vel 1 Computador n vel 2 jogar nada readln X validar X jogar 47 validar X X 1 X 2 X 3 jogar Q0 X 4 nl write Adeus Volte sempre write 0 jogo write X write n o est dispon vel Tente novamente nl nl jogar AI o o Joo a do a a a a od JoJo Jo JoJo do do da a a a a Jo Jo Jo Jo JoJo JoJo Jo do do da a a a la ooo Joo fo ooo oh 7 Z Desenho do TABULEIRO 7 TA e Ja a aa a a o o o a do oo oa da a a oa do od ado doa do fo o a la a a do a NV desenhar desenharTabuleiro 1 desenharTabuleiro Linha linhas 7 Linha lt Z Y is Linha mod 2 Y 1 colunas X escrever Linha X n1 Y is Linha mod 2 Y 0 escrever Coluna Linha 1 nl LinhaN is Linha 1 desenharTabuleiro LinhaN escrever Linha X X gt 0 write escrever Linha X 1 escrever Coluna 2 X colunas lt traco X 0 write ver espaco X 0 write X23 write ver letra X 0 ASCII is 63 X 1 4 char code Letra ASCII write Letra 48 AP NDICE C LISTAGEM DO C DIGO Y is X 1 escrever_Coluna 2 Y escrever Coluna Y X colunas C X lt C ver traco X 0 write Z is X 1 X 2 ver espacoPeca X 0 write Z is X 1 X 3 W is Y 2 1 write W Z is X 1 ver Peca Y X Z is X 2 write Z is X 1
25. ez para o programa foi um passo dif cil mas o resultado obtido bastante satisfat rio uma vez que o objectivo de implementar um jogo de xadrez com o algoritmo Min Max com cortes Alfa Beta foi alcan ado O algoritmo atr s mencionado diminuiu significativamente o tempo de resposta por parte do computador Apesar destes tempos n o serem os inicialmente pretendidos o trabalho desenvolvido na cria o das heur sticas fun o avaliadora e a fun o geradora eram objectivos prim rios A diminui o do tempo poderia ser conseguida com a diminui o de heur sticas usadas 27 28 CAP TULO 8 CONCLUS O Cap tulo 9 Melhoramentos Uma vez que o tempo dispon vel para realizar o trabalho de MIA n o foi o desejado pois os compromissos profissionais nem sempre permitem essa flexibilidade a n vel de tempo a verdade que a interface gr fica podia ser melhorada No que diz respeito a esse aspecto o uso de PROLOG para a concretiza o da tarefa Apesar do PROLOG SWI conter uma componente gr fica que se poderia ter experimentado mas a verdade que o n vel de dificuldade do trabalho e mais uma vez o tempo dispon vel n o permitiram o aprofundamento nessa rea Outro aspecto que talvez se pudesse melhorar com o uso de outro tipo de programa o seria o aspecto que se relaciona com os tempos conseguidos principalmente no n vel dois nota se que a procura da melhor solu o um pouco lenta e mais ainda quando existem muitas pe a
26. lo fim Jogo Cor MaxNivel Valor name 75 Cor cemiterio Peca MaxNivel Valor is 1 Cor 66 CorN is 87 Cor 87 CorN is 66 name 75 CorN cemiterio Peca MaxNivel Valor is 2000 posicao actual C KW MaxNivel posicao actual CKB MaxNivel posicao actual Peca MaxNivel Pecal KB Pecal KW fail Valor is 0 fim JogoAB Cor MaxNivel Valor name 75 Cor cemiterio Peca MaxNivel Valor is 1 Cor 66 CorN is 87 name Peca 75 CorN cemiterio Peca MaxNivel Valor is 400 Cor 87 CorN is 66 name Peca 75 CorN cemiterio Peca MaxNivel Valor is 2 Cor 87 CorN is 66 name Peca 75 CorN cemiterio Peca MaxNivel Valor is 2 posicao actual KW MaxNivel posicao actual KB MaxNivel posicao actual Peca MaxNivel Pecal KB Pecal KW fail Valor is 0 valor tabuleiro Cor Valor MaxNivel fim JogoAB Cor MaxNivel Valor listagem Pecas Cor ListaValores MaxNivel soma ListaValores Valor 0 62 AP NDICE C LISTAGEM DO C DIGO listagem Pecas Cor L R LCoord MaxNivel posicao actual Peca XLetra Y MaxNivel name _ Cor name XLetra Num X is Num 64 Elemento X Y not member Elemento LCoord pontos Peca Valor X Y MaxNivel listagem Pecas Cor Valor L R Elemento LCoord MaxNivel listagem Pecas Lista Lista pontos Peca Valor X Y MaxNivel ASCII is 64 X
27. lo lodo da doa lolo do do a lolo do do ha olha ola olo ho movimento 1 Jogador desenhar jogador Jogador Nome write Nome write qual a sua jogada nl readln Jogada nl CCJogada 8 Jogada s jogar CCjogada Jogada Jogador Jogador 1 validar fim Jogo 66 Nome jogar movimento 1 2 Jogador 2 validar fim Jogo 87 Nome movimento 1 1 nl write Nome write efectuou um movimento inv lido nl movimento 1 Jogador 43 movimento 2 Jogador jogador Jogador Nome Jogador 1 desenhar write Nome write qual a sua jogada nl readln Jogada nl Jogada S Jogada s retractall cemiterio jogar Cjogada Jogada Jogador validar fim Jogo 66 Nome retractall cemiterio jogar fail nl write Nome write efectuou um movimento inv lido n1 movimento 2 Jogador Jogador 2 movimento maximo valor 66 1 Xantes Yantes Xdepois Ydepois Accao mover PecaNivel Xantes Yantes Xdepois Ydepois 0 Accao validar fim Jogo 87 Nome fail movimento 3 Jogador jogador Jogador Nome Jogador 1 desenhar write Nome write qual a sua jogada nl readln Jogada nl CCJogadaz Jogada s retractall cemiterio jogar Cjogada Jogada Jogador validar fim Jogo 66 Nome retractall cemiterio jogar fail nl write Nome write efectuou um movimento inv lido nl movimento 3
28. nder 3 9 REGRAS DAS PE AS 13 A B C D F H E a Z 2 S Z 3 Sel ZA 4 B 5 go 6 Z T p X 8 b 3 9 4 E permitido Ra nha mover se na diagonal horizontal ou vertical quantas casas pretender 3 9 5 Rei E permitido ao Rei mover se na diagonal horizontal ou vertical mas apenas uma casa em cada direc o 14 CAP TULO 3 ESTRUTURA DO PROGRAMA A C D E F IG 1 2 3 4 K 5 A 6 7 8 3 9 6 Pe o E permitido ao Pe o mover se na vertical apenas uma casa e s numa direc o No entanto permitido que o Pe o se mova duas casas na primeira jogada A IB IC D E F IG JH 1 2 PB 3 4 PB 5 6 7 8 3 10 Movimento das pe as Depois da jogada ser validada pelas regras das pe as o movimento desejado realizado Para isso existem dois tipos de ac es e comer retira se a pe a comida do tabuleiro e altera se o estado da pe a a ser movida e mover altera o do estado da pe a 3 11 HEUR STICAS 15 3 11 Heur sticas Para que o computador tome a decis o do movimento mais correcto necess rio dar algumas informa es sobre o jogo Heur sticas Quanto melhor a heur stica melhor a re
29. nivela ListaValores PosLista apagar tab aux 1
30. ntes Yantes Xdepois Ydepois not Ydepois Yantes not Xdepois Xantes ASCIId is 64 Xdepois char code LetraD ASCIId ASCIla is 64 Xantes 50 AP NDICE C LISTAGEM DO C DIGO char code LetraA ASCIIa posicao actual Peca LetraA Yantes 0 name regra PecaArray Xantes Yantes Xdepois Ydepois Accao 0 Accao 0 retract posicao actual Z LetraA Yantes 0 assert posicao actual Z LetraD Ydepois 0 Accao 1 retract posicao actual PecaMorta LetraD Ydepois 0 assert cemiterio PecaMorta 0 retract posicao actual Peca LetraA Yantes 0 assert posicao actual Peca LetraD Ydepois 0 7 da da da a da a Jo o do o do Do do o bb o o o lo o o lo o lo a la a a a a a a a a a a a a a da o ho Jo o oo oo ooo lo ooo Jo Joo 4 7 REGRAS DAS PE AS 4 7 da da da a a lle do o do Do do od oo oo o o o o o o lo o o a a a a a a a a a a a a a a a a bo ho Jo o Jo Joo Branco regra 80 87 Xantes Yantes Xdepois Ydepois Accao MaxNivel Xantes Xdepois Z is Yantes 1 Ydepois Z ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel Ydepois 5 Yantes 7 ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel 51 W is Ydepois 1 not posicao actual Letra W MaxNivel Accao is O regra 80 87 Xantes Yantes Xdepois Ydepois Accao MaxNivel Z is Xantes 1 Z Xdepois 7 is
31. o foda lado a do a fadada Movimento vertical ver Peca Intermedia Xantes Yantes Xantes Ydepois MaxNivel not Yantes Ydepois ASCII is 64 Xantes char code Letra ASCII Ydepois gt Yantes Z is Yantes 1 Ydepois lt Yantes Z is Yantes 1 Z Ydepois not posicao actual Letra Z MaxNivel ver Peca Intermedia Xantes Z Xantes Ydepois MaxNivel WMovimento horizontal ver Peca Intermedia Xantes Yantes Xdepois Yantes MaxNivel not Xantes Xdepois Xdepois gt Xantes Z is Xantes 1 Xdepois lt Xantes Z is Xantes 1 57 ASCII is 64 Z char code Letra ASCII Z Xdepois not posicao actual Letra Yantes MaxNivel ver Peca Intermedia Z Yantes Xdepois Yantes MaxNivel Movimento Diagonal ver Peca Intermedia Xantes Yantes Xdepois Ydepois MaxNivel Difl is abs Xantes Xdepois Dif2 is abs Yantes Ydepois Dif1 Dif2 Xdepois gt Xantes Z is Xantes 1 Xdepois lt Xantes Z is Xantes 1 Ydepois gt Yantes W is Yantes 1 Ydepois lt Yantes W is Yantes 1 ASCII is 64 Z char code Letra ASCII W Ydepois Z Xdepois not posicao actual Letra W MaxNivel ver Peca Intermedia Z W Xdepois Ydepois MaxNivel Movimento final ver Peca Intermedia Xdepois Ydepois Xdepois Ydepois 7 Jo o o o a a a a Jo Jo JoJo oo JoJo do do do a da a Jo Jo Lo JoJo Jo Ja Jo do do a ooo Jo Jo Jo Jo JoJo JoJo do Jo do da da a la Jo Jo ooo Jo Jo do o oa ha 4 Fung es Gerado
32. o e dados dos jogadores o n mero de jogador e o seu respectivo nome e v rios tipos de jogos Humano vs Humano Humano vs Computador etc e tabuleiro inicial conjunto de posi es de todas as pe as do tabuleiro e tabuleiro actual conjunto de posi es das pe as que ainda est o em jogo e tabuleiro futuro conjunto de posi es das pe as que formam um tabuleiro simulado se efectuar uma ac o virtual Algoritmo MinMax com cortes Alpha Beta e regras do jogo conjunto de regras v lidas do jogo tais como os movimentos fim de jogo e pe as comidas conjunto de pe as que foram mortas ou comidas pelos jogadores 19 20 CAP TULO 4 ESQUEMAS DE REPRESENTA O Cap tulo 5 Implementa o dos Esquemas de Representa o Os esquemas de representa o de conhecimento foram implementados usando factos Por exemplo para representar os tabuleiros posicao inicial Peca X Y posicao actual Peca X Y Nivel De Profundidade O n vel de profundidade no facto posicao actual tem como finalidade poder representar o tabuleiro actual e o tabuleiro final Para as pe as do tabuleiro actual o valor do n vel de profundidade deve ser igual a zero N o foram usadas nestas representa es as listas do Prolog pois os factos s o mais intuitivos e f ceis de serem utilizados No Ap ndice C encontra se a listagem do c digo onde se poder consultar as outras repre senta es do conhecimento 21 22
33. o controlo e guarda se a informa o que se acha necess ria em rela o aos jogadores neste caso o nome para que a interface se torne mais amig vel 3 7 Menu do jogo Antes de come ar a jogar existe um menu que permite ao jogador escolher a modalidade que pretende jogar O menu constitu do por 3 8 DESENHO DO TABULEIRO 11 1 Jogador 1 contra Jogador 2 2 Jogador 1 contra computador n vel 1 3 Jogador 1 contra computador n vel 2 4 Sair 3 8 Desenho do tabuleiro O tabuleiro constru do dinamicamente isto consegue construir se um tabuleiro de di mens o n x n 3 8 1 Aspecto inicial do tabuleiro Este o aspecto inicial do tabuleiro PB PB PB PB PB PB PB PB PW PW PW PW PW TW HW BW KW QW BW TW NB O K AW U 3 9 Regras das pe as 3 9 1 Torre E permitido torre mover se na horizontal ou na vertical quantas casas pretender 12 CAP TULO 3 ESTRUTURA DO PROGRAMA A C G 1 9 3 4 T gt gt gt gt 9 6 7 8 3 9 2 Cavalo E permitido ao cavalo mover se em L A IB IC ID E F G JH 1 2 3 4 H 5 6 7 8 3 9 3 Bispo E permitido ao Bispo mover se na na diagonal quantas casas prete
34. or primeira jogada No segundo caso o algoritmo Min Max com cortes Alpha Beta com n vel de profundidade dois Cap tulo 3 Estrutura do Programa O programa est dividido nas seguintes partes 10 11 12 13 14 15 Base de conhecimento Inicializa o das pe as no tabuleiro Inicializa o do jogo Movimentos dos Jogadores Jogada do jogador Pedido dos nomes dos jogadores Menu do jogo Desenho do tabuleiro Movimento das pecas Regras das pe as Verifica o da exist ncia ou n o exist ncia de pe as interm dias Fun es Geradoras de movimentos Fun es Auxiliares Fun o Avaliadora do tabuleiro Fun o Mover Pe a para o computador 8 CAP TULO 3 ESTRUTURA DO PROGRAMA 16 Algoritmo Min Max com cortes alpha beta 17 Fun o avaliadora 3 1 Base de conhecimento A base de conhecimento composta pelas posi es iniciais das pe as no jogo e pelo seu valor valor Peca Valor tamb m aqui que se indica o n mero de linhas e colunas total necess rias para o desenho posterior do tabuleiro Existe ainda uma base de conhecimento diga se virtual composta pelas posi es actuais das pe as em qualquer momento do jogo bem como um cemit rio de pe as que indica ao programa quais as pe as que sa ram de jogo dynamic cemiterio 2 posicao inicial TB A 1 posicao inicial HB B 1 posicao inicial CBB C 1 posicao inicial C KB D
35. pois is Xantes Ydepois is Yantes 1 Xdepois is Xantes 54 AP NDICE C LISTAGEM DO C DIGO Xdepois gt 0 Xdepois lt 8 Ydepois gt 0 Ydepois lt 8 not var Xdepois Dif1 is abs Xantes Xdepois Dif2 is abs Yantes Ydepois Dif1 Dif2 Dif1 1 Xantes Xdepois Z is Yantes 1 Ydepois Z Z is Yantes 1 Ydepois Z Yantes Ydepois Z is Xantes 1 Xdepois Z Z is Xantes 1 Xdepois Z ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois MaxNivel Accao is 0 posicao actual Peca Letra Ydepois MaxNivel not Cor Accao is 1 YRainha de cor cor regra 81 Cor Xantes Yantes Xdepois Ydepois Accao MaxNivel var Xdepois retornar num Z Xdepois is Xantes Z Ydepois is Yantes Z Ydepois is Yantes Z Xdepois is Xantes Z Ydepois is Yantes Z Ydepois is Yantes Z Xdepois is Xantes Z Ydepois is Yantes Z lt Xantes Xdepois is Xantes Z Z gt Xantes Xdepois is Z Xantes Ydepois is Yantes Ydepois is Yantes Z Xdepois is Xantes Z lt Yantes Ydepois is Yantes Z Z gt Yantes Ydepois is Z Yantes Xdepois is Xantes Xdepois gt 0 Xdepois lt 8 Ydepois gt 0 Ydepois lt 8 not var Xdepois Difl is abs Xantes Xdepois Dif2 is abs Yantes Ydepois Dif1 Dif2 Xantes Xdepois Yantes Ydepois ASCII is 64 Xdepois char code Letra ASCII not posicao actual Letra Ydepois M
36. r tab aux MaxNivel apagar tab aux MaxNivel posicao actual MaxNivel retractall posicao actual MaxNivel retractall cemiterio MaxNivel 67 listagem Pecas Todas Cor Peca X Y IL R R1 MaxNivel name Peca PecaArray funcao geradoraM PecaArray X Y M MaxNivel listagem Pecas Todas Cor L M R R1 MaxNivel listagem Pecas Todas R R listagem L R MaxNivel Cor LCoord posicao actual Peca XLetra Y MaxNivel name Peca Cor name XLetra Num X is Num 64 Elemento X Y not member Elemento LCoord listagem Peca X Y IL R MaxNivel Cor Elemento LCoord listagem R R listagem Pecas TodasAB Cor Peca X Y IL R R1 MaxNivel name Peca PecaArray funcao geradoraAB PecaArray X Y M MaxNivel O listagem Pecas TodasAB Cor L M R R1 MaxNivel listagem Pecas TodasAB R R listagemAB L R MaxNivel Cor LCoord posicao actual Peca XLetra Y MaxNivel name _ 68 AP NDICE C LISTAGEM DO C DIGO name XLetra Num X is Num 64 Elemento X Y not member Elemento LCoord listagemaB Peca X Y IL R MaxNivel Cor Elemento LCoord listagemAB R R _ _ _ AI o a o a a a a o Jo JoJo JoJo Jo Jo do do do da a a a Jo Jo Jo do do da a a JoJo JoJo do do a a da la Jo Jo Joo JoJo Jo 7 Z Algoritmo Min Max com cortes alpha beta 7 a o o o Jooo a a a a a a o ooo JoJo o JoJo do
37. ras de movimentos 7 funcao geradora Peca X Y L R Nivel regra Peca X Y Xdepois Ydepois Accao Nivel Elemento Xdepois Ydepois Accao Nivel not member Elemento L funcao geradora Peca X Y Elemento L R Nivel 58 AP NDICE C LISTAGEM DO C DIGO funcao geradora R R funcao geradoraM Peca X Y L R Nivel regra Peca X Y Xdepois Ydepois Accao Nivel Elemento X Y Xdepois Ydepois Accao not member Elemento L funcao geradoraM Peca X Y ElementolL R Nivel funcao geradoraM R R funcao geradoraAB Peca X Y L R Nivel Cont regra Peca X Y Xdepois Ydepois Accao Nivel NivelN is Nivel 1 ElementoT X Y Xdepois Ydepois Accao NivelN not member ElementoT L ContN is Cont 1 Elemento X Y Xdepois Ydepois Accao NivelN ContN funcao geradoraAB Peca X Y Elemento L R Nivel ContN funcao geradoraAB R R A o Jooo o a o a a a a o od JoJo o JoJo do do do da a a ao Jo ooo JoJo do do da a da JoJo Jo od JoJo JoJo Jo do do a da da Jo Jo Joo Joo Jo 7 Fun es Auxiliares 7 7 lo Joo ooo o a a a a a a o JoJo oo JoJo do do do da a a ao Jo Jo JoJo Jo Jo JoJo Jo do Jo do do a aa la la oo lodo Jo Jo retornar num X X 5 X 6 X 7 max Tab Nivel MaxNivel constroi Nivel Lista 0
38. s no tabuleiro As heur sticas tamb m poderiam ser melhoradas principalmente no que diz respeito ao fim do jogo mas caso houvesse oportunidade ter se ia implementado com certeza o Check Mate o Rock e a troca de pe a com pe o depois deste ter atravessado o tabuleiro s o algumas regras fundamentais do xadrez que n o foram implementadas devido falta de tempo 29 30 CAP TULO 9 MELHORAMENTOS Bibliografia 1 Prolog Programming for artificial intelligence Ivan Bratko 2 Artificial Intelligence A modern approach Stuart Russell and Peter Norvig 3 http www clubedexadrez com br 30 de Dezembro de 2002 4 Xadrez 2000 anos de hist ria Editora Anaya 1989 31 32 BIBLIOGRAFIA Ap ndice A Manual do Utilizador Para utilizar este programa tem que ter se acesso ao SWI PROLOG 1 Ap s a compila o digita se jogar 2 apresentado um menu com as seguintes quatro op es 1 Humano vs Humano 2 Humano vs Computador n vel 1 3 Humano vs Computador n vel 2 4 N o quero jogar nada 3 Escolhe se a op o pretendida de 1 a 4 4 pedida a identifica o dos jogadores Insira o nome que pretende para ser identificado e seguidamente ser informado das pe as com que vai jogar 5 apresentado o tabuleiro inicial e pedida a jogada que pretende fazer As entradas das jogadas s o do tipo a2a4 em que as primeira e terceira coordenadas s o valores de a a h ou de a He as segunda
39. sposta do computador 3 11 1 Valor inicial das pecas No in cio do jogo o valor das pecas o seguinte e O Pe o vale 100 pontos e A Torre vale 325 pontos e O Cavalo vale 325 pontos O Bispo vale 500 pontos e A Ra nha vale 1000 pontos 3 11 2 Dist ncia do centro O Cavalo e o Pe o receber o um bon s equivalente ao apresentado no quadro a seguir por aproxima o do centro do tabuleiro A IB IC ID E F G JH 1 0 10 15 15 10 0 2 o 10 15 20 20 15 10 5 3 10 15 20 25 25 20 15 10 4 15 20 25 30 80 25 20 15 4 15 20 25 30 30 25 20 15 6 10 15 20 25 25 20 15 10 7 5 10 15 20 120 15 10 5 8 0 5 10 115 115 110 5 0 3 11 3 Dist ncia do rei Ra nha a Torre e o Cavalo s o compensados se se encontrarem perto do Rei Nos quadros seguintes suponha se que a pe a correspondente que ganhar pontos se encontra na posi o H8 16 CAP TULO 3 ESTRUTURA DO PROGRAMA Caso da Rainha 1 130 120 110 100 90 80 70 130 120 110 100 90 80 70 60 120 110 100 90 80 70 60 50 110 100 90 30 70 60 50 40 100 90 80 70 60 50 140 30 90 80 70 60 50 40 30 20 80 70 60 50 140 30 20 110 oo O RBR A HN 70 160 50 40 30 20 110 0 Caso da Torre ou Cavalo 65 60 55 50 45
Download Pdf Manuals
Related Search
Related Contents
PDFファイル TWR-K70F120M Tower Module User`s Manual TDSHーBA 東芝 照明制御コントロー ラ取扱説明書 保管用 Page 1 Page 2 はじめに このたびは丶FUJー XER。X「写楽」をお Toshiba 26C100U 26" HD-Ready Black LCD TV Copyright © All rights reserved.
Failed to retrieve file