Stwórz program komputerowy, który będzie potrafił grać w szachy.
Program komputerowy powinien być w stanie obliczyć legalne ruchy szachowe na podstawie pozycji na planszy oraz zasad gry w szachy. Program powinien również móc ocenić pozycję i wybrać najlepszy ruch na podstawie określonych kryteriów oceny. Powinien także umieci śledzici swoje wcześniej wykonane ruchy i móc ponownie odtworzyć grę w interfejsie graficznym dla użytkownika. Dodatkowo, program powinien być w stanie grać przeciwko człowiekowi i ożywać drzewa gry do myślenia naprzud i szukania korzystnych ruchów.