\section{Introduction} \begin{displayquote} Go is an ancient game which, from its forgotten origins in China, spread first to the rest of East Asia, and then to the entire world. How ancient? Historians aren't sure; it has a definite history of over 3000 years, but according to tradition Go was invented more than 4000 years ago. The English name comes from the Japanese name Igo, which means ``surrounding boardgame''. In this game, each player tries to use threats of death, capture, or isolation to assert control over more of the board than his opponent. An abstract strategy game at heart, Go has nonetheless been interpreted as a stylized representation of fighting a war, settling a frontier, cornering a market, thrashing out an argument, or even of fortune-telling and prophecy. Go has always been one of the most played games in the world.\cite{sl_go} \end{displayquote} As old and deep as Go is it has recently lived a revolution by the appearance of artificial intelligences with superhuman strength. While not expecting to achieve what a full team of developers and computer scientists at Google did, this project aims to evaluate how an engine able to play the game of Go could be created, implement such an engine and evaluate the results of the whole process. \subsection{Driving Needs} As one of the deepest and most studied games in the world, Go presents a very interesting problem for artificial intelligence. Implementing not only the game's simple but subtle rules, but a system capable of playing it with a satisfying level of skill, is a task worth of pursuing as an exercise on software design, algorithmics and AI research. On the practical level, this project can be a foundation for the development of different Go analysis algorithms by providing an existing engine to house them, which can be of interest to Go players and software scientists alike. \subsection{Reach} Presented here are the ideal targets of the project. \begin{itemize} \item An implementation of the game of Go, that is, a system for holding the moves and variants of a match (a tree of moves) and the logic for the game's rules. \item An engine capable of analyzing board positions and generating strong moves via various decision algorithms. \item Either a GUI specifically developed for the project or an implementation of an existing protocol so the engine can be used with existing tools and GUIs. \item A way for processing existing records of games, which are usually recorded in the SGF format. \end{itemize}