Code journal #1 Chess neural netowork

in #coding7 years ago (edited)

Hello Steemit!

My name is Alex and I'm a Computer Engineering student in Barcelona, Spain. This quarter I will be undertaking my final degree project, which will be related to Artificial Intelligence and Neural Networks. However, the actual subject of the project is still undecided, so I am for the moment just gathering information and practising coding.

ann2.png

This blog is therefore intended as the coding journal to keep track of all the difficulties I encounter in the completion of the project and the way I solve them. I also work as a Java development part-time intern, so maybe some of that stuff comes out over here too. But anyway, without further ado, these are my thoughts, ideas and problems in the first week of work:

My first idea was to develop a chess engine. Or more specifically, the AI engine behind the chess engine. In taking this approach I would avoid having to define the movement of each pieces, the rules of chess, controlling the time... allowing me to focus on the learning component instead. However, the alternative isn't easy, either. I need to find libraries or applications for:

  • The GUI (Graphic User Interface)
  • The chess engine itself (controlling rules, movements, etc.)
  • The neural network or the machine learning

And what's harder, making them work together smoothly. This first week I have been mainly looking for the libraries I could use, or looking for projects and implementations about computer chess. In this regard, this wiki has been a tremendous help:

https://chessprogramming.wikispaces.com/

I think it was in this wiki where I found python-chess (https://github.com/niklasf/python-chess), which appears to me to be the best option so far. It is a chess engine which includes move generation and validation, plus a GUI, which unfortunately only works with notebooks (IPython/Jupyter). The installation of python-chess was quickly, on the other hand, IPython has been a bit of a pain, and it hasn't let me a lot of time to play with the library. These are my first lines:

1.jpg

I think the GUI looks pretty clean and the documentation is quite extensive, but I haven't had so much time left to begin playing with the library on this first day.

By the way, I thought Python was the appropriate language to work with in this case, given the subject and the amount of Machine Learning libraries available in this language, but my knowledge about it is only superficial. I will have to learn a lot and quickly, because my starting point is low, but I think it's a good thing to take this opportunity to learn a new language.

And that's it for the first day, I look forward to start coding and writing about it in here. The next post will probably be more technical, but for the moment feel free to comment anything you like!

Hasta pronto!