Repository for the diana chess competition. AI Lecture 21/22

Overview

Notes for Assignment 8 (Chess AI)

  • We recommend using an IDE (like Pycharm) for working on this assignment.

  • IMPORTANT: Please make sure you use python>=3.7 for this assignment.

  • First, you need to install python pygame package by executing the following command in terminal:

    • pip install pygame

    If you are using Pycharm, you can also add the package from: File-> Settings-> Project:dianachess-> Project Interpreter. Click the '+' sign to add new packages. Search pygame and install the package.

  • The game gui can be started by running the script 'ChessMain.py' the following way:

    • python ChessMain.py --agent1 [*] --agent2 [*] --verbose --time_control [how many seconds either player gets per move] --use_gui

    For [*] you can put either 'MrRandom', 'Agent1', 'Agent2', 'Human', or a path to your agent file. 'MrRandom' will play completely random moves (valid moves), 'Agent1' will use the class Agent from 'student_agents/template.py' while 'Agent2' will use the class Agent from 'student_agents/template2.py'. By entering 'Human' you act as the agent and can play yourself (if the gui is activated). WINDOWS USERS: Here you need to use 'Agent', it does not work to use the file path.

  • By choosing in between 1 and 2 in 'Settings.json' you can choose whichever board you like.

  • Please note that for the evaluation, --time_control=20 will be used (pending further tests, a higher value may instead be used to account for the server running the games being slightly slower, however your agent should be prepared for being given less time than expected by registering preliminary moves)

  • If your agent is still running after the time limit has passed, your agent will lose unless you have registered a preliminary move with update_move. See the template student_agents/template.py for details.

  • WHEN YOU WANT TO RUN ChessMain.py with '--agentx Agent1' you need to keep the file name 'template.py'.

  • FOR THE SUBMISSION you must rename the file studentagent.py to the last name of both team members (e.g. rahim_schroeder.py} for Rahim and Schröder). Keep the class name as 'Agent'. Your agent's functionality should be similar to the class MrRandom in 'agents/random.py'. You are not allowed to modify any other file in the program, so please make sure your agent works with the base version of the game as distributed. Please do not split your implementation across multiple files.

    Important: please include some documentation for your agent as a separate document. Document which algorithm you are using, what the idea behind your heuristic/evaluation function is, etc.

  • If you find any inefficiency in the code, e.g in ChessMain.py, ChessEngine.py, (or worse, bugs) and you can suggest any improvement, please send an email to [email protected].

  • You are allowed to use any basic package in python that helps in your implementation. Basic includes anything included in python3.7, numpy, and what might be discussed in the forum.

  • Your agent should be single-threaded. A multi-threaded agent will not get any marks for the assignment and will be disqualified from the tournament.

  • One agent is included in this framework to allow you to test your agent:

    • MrRandom: A very primitive agent that selects its moves randomly from the list of legal moves. Basically any agent should be able to beat this.
Owner
Cognitive Systems Research Group
Autonomous Mobile Robots; Bioinformatics; Chemo- and Geoinformatics; Evolutionary Algorithms; Machine Learning
Cognitive Systems Research Group
Dontdie-minecraft - A python program that causes your computer to bluescreen whenever you die in Minecraft

Don't Die - A Python Program A python program that causes your computer to blues

3 Apr 19, 2022
Command-line Hangman game

Hang-_an-game-python-build Hangman C command-line Hangman game. Compilation Navigate to the root of the repository from your Terminal and run make to

Hemant Choudhary 3 Jan 16, 2022
Chess - A python gui application

Chess Python version 3.10 or greater is required to play. Note This is a gui application, and as such will not run inside WSL.

Jonxslays 1 Dec 16, 2021
Ultimaze est un jeu en 2.5D, réalisé dans le cadre d'un projet de NSI.

Ultimaze Ultimaze est un jeu en 2.5D, réalisé dans le cadre d'un projet de NSI. La consigne était d'utiliser la librairie pygame pour créer un jeu en

parlabarbedeMerlin 3 Sep 17, 2022
My goofy little script for playing wordle

my wordle "solver" My goofy little script for playing wordle. It actually runs really slowly at first but once you've added some info (e.g. which lett

MB 3 Feb 04, 2022
XPlaneROS is a ROS wrapper for the XPlane-11 flight simulator.

XPlaneROS XPlaneROS is a ROS wrapper for the XPlane-11 flight simulator. The wrapper provides functionality for extracting aircraft data from the simu

AirLab Stacks 26 Dec 04, 2022
A Tetris game made using PyGame as renderer only, for a school project.

Tetris_Python A Tetris game made using PyGame as renderer only, for a school project. Twist in the Game Blocks can pentrate through right and left bou

Ravi Arora 2 Jan 31, 2022
A DDQN that learned to play tic tac toe by playing against itself

TicTacToeAI A DDQN that learned to play tic tac toe by playing against itself Cu

Anik Patel 3 Apr 09, 2022
This is a simple game of rock-paper-scissors developed in Python

This is a simple game of rock-paper-scissors developed in Python. It allows two players to play with one another on different command lines through networking.

NAMAN JAIN 3 Oct 21, 2022
Just a simple Tic Tac Toe game, built with Python

TicTacToe Author: Gabriel Lima Table of Contents About Getting Started Linux Windows About This is one of the first projects I built when I first star

1 Nov 28, 2021
Made by Ashish and Avinash-sord12k. Powered by pygame

Spook_alle About -Made by Ashish (Github: Ashish-Github193) and Avinash-sord12k Version - BETA v_1.0 /1-11-2021/ (game is at its base version more ite

Ashish Kumar Jha 1 Nov 01, 2021
Console 2D GameEngine {C2DGE} [0.1.0]

Console 2D GameEngine {C2DGE} [0.1.0] By Grosse pastèque#6705 The Project's Goal : This projects was just a challenge so if you have bad reviews, it's

Big watermelon 1 Nov 06, 2021
A classic alien shooting game.

Space-Invaders A classic alien shooting game. Description An open source game created by me and friends. How to play Install the latest python version

Phạm Thanh Sơn 1 Feb 08, 2022
made a life sim game because i was tired of a astray gamedev company, everything here is open-source

Srel made a life sim game because i was tired of a astray gamedev company, everything here is open-source Progress Currently making the cmd-line versi

2 Nov 14, 2021
Automatic game data translator for RPGMaker-MV

RPGMaker-MV Translator 🕹️ 🎮 Use AI to translate all the dialogs and texts of your RPGMaker automatically. 👊 You worked hard to make your game, now

Davide Liu 11 Dec 26, 2022
Termordle - a terminal based wordle clone in python

Termordle - a terminal based wordle clone in python

2 Feb 08, 2022
A simple pygame implementation of the LOGO programming language.

LOGO-py A simple pygame implementation of the LOGO programming language. Latest Version Notes Fixed a bug where penup/pendown would not work properly.

Ethan Evans 1 Dec 05, 2021
Creating Tetris with Pygame

Tetris 🤝 Contributing Contributions, issues and feature requests are welcome! Feel free to check issues page. Show your support Give a ⭐️ if this pro

Gavin Capriola 0 Mar 01, 2022
A Tetris Game for programming education

Tetris Game プログラミング学習を目的とした、ブロックを操作してスコアを競うゲームです。 FAQはこちら。 tutorialはこちら。 実行環境準備 Mac環境 Finder→Application→Utility→Terminalから、ターミナルを起動して以下コマンドを実行する。 # i

11 Dec 01, 2022
Implementation of the Spider-Man Game

Projeto FPRO FPRO/LEIC, 2021/22 Francisco Campos (up202108735) 1LEIC08 Objetivo Criar um clone do clássico Spider-Man em Pygame... Repositório de códi

1 Dec 24, 2021