Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \documentclass[conference]{IEEEtran}
- \IEEEoverridecommandlockouts
- \usepackage{minted}
- %encoding
- %--------------------------------------
- \usepackage[T1]{fontenc}
- \usepackage[utf8]{inputenc}
- %--------------------------------------
- %Portuguese-specific commands
- %--------------------------------------
- \usepackage[portuguese]{babel}
- %--------------------------------------
- %Hyphenation rules
- %--------------------------------------
- \usepackage{hyphenat}
- \hyphenation{mate-mática recu-perar}
- %--------------------------------------
- % The preceding line is only needed to identify funding in the first footnote. If that is unneeded, please comment it out.
- \usepackage{cite}
- \usepackage{amsmath,amssymb,amsfonts}
- \usepackage{algorithmic}
- \usepackage{graphicx}
- \usepackage{textcomp}
- \usepackage{xcolor}
- \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
- T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
- \begin{document}
- \title{Connect Four (Atividade 2b)\\
- {\footnotesize Resolução da atividade 2b com Métodos de Pesquisa com Adversários em Linguagem Python }
- }
- \author{\IEEEauthorblockN{Ricardo Moura (201604912)}
- \IEEEauthorblockA{\textit{Mestrado Integrado em Engenharia Informática e Computação} \\
- \textit{Faculdade de Engenharia da Universidade do Porto}\\
- Porto, Portugal \\
- up201604912@fe.up.pt}}
- \maketitle
- \section{REPRESENTAÇÃO DO ESTADO DE JOGO}
- O estado de jogo será representado por um dictionary (python) composto por board – dictionary que guarda todas as jogadas da seguinte forma {Posição : Jogador}; Utility – guarda 1 quando o player1 (por default ‘X’) ganha, -1 quando o player1 perde e 0 caso contrário; moves – lista que guarda todos os movimentos possíveis nesse estado (incluindo os não validos para o jogo); e por último nextToPlay – guarda o próximo jogador a jogar, por default ‘X’ ou ‘0’. Um exemplo de estado de jogo:
- \begin{minted}{python}
- {'nextToPlay': 'X',
- 'board':{(0, 0):'X',(2, 0):'0',(0, 1):'X',
- (2, 1):'0',(1, 0):'X',(4, 0):'0',
- (5, 0):'X',(6, 0):'0',(3, 0):'X',
- (3, 1):'0',(3, 2):'X',(3, 3):'0'},
- 'utility': 0,
- 'moves': [(0, 2),(0, 3),(0, 4),(0, 5),
- (1, 1),(1, 2),(1, 3),(1, 4),(1, 5),
- (2, 2),(2, 3),(2, 4),(2, 5),(3, 4),
- (3, 5),(4, 1),(4, 2),(4, 3),(4, 4),
- (4, 5),(5, 1),(5, 2),(5, 3),(5, 4),
- (5, 5),(6, 1),(6, 2),(6, 3),(6, 4),
- (6, 5)]
- }
- \end{minted}
- \section{ESTADO INICIAL}
- O estado inicial tem o board vazio; Utility a 0, já que o player1 nem perdeu nem ganhou; a lista moves com todas as coordenadas do tabuleiro completo; e o nextToPlay será igual ao primeiro elemento da lista self.players, por default ‘X’.
- \begin{minted}{python}
- {'nextToPlay': 'X',
- 'board':{},
- 'utility': 0,
- 'moves': [(0, 0),(0, 1),(0, 2),(0, 3),
- (0, 4),(0, 5),(1, 0),(1, 1),(1, 2),
- (1, 3),(1, 4),(1, 5),(2, 0),(2, 1),
- (2, 2),(2, 3),(2, 4),(2, 5),(3, 0),
- (3, 1),(3, 2),(3, 3),(3, 4),(3, 5),
- (4, 0),(4, 1),(4, 2),(4, 3),(4, 4),
- (4, 5),(5, 0),(5, 1),(5, 2),(5, 3),
- (5, 4),(5, 5),(6, 0),(6, 1),(6, 2),
- (6, 3),(6, 4),(6, 5)]
- }
- \end{minted}
- \section{TESTE OBJECTIVO}
- O jogo terminará, se a utility guardada no estado for diferente de 0 (o que significa que o player1 ganhou ou perdeu). A outra hipótese para o jogo terminar é já não haver movimentos possíveis, o que quer dizer que houve empate.
- \section{OPERADOR}
- O operador pode ser usado para escolher uma das 7 colunas (A-G). A única pré-condição é a coluna escolhida ter pelo menos um espaço
- - Colocar uma peça numa coluna na posição mais baixa da mesma. Sendo a pré-condição essa coluna ter pelo menos um espaço vazio.
- \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement