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
A networking library for multiplayer games.

Aerics A networking library for multiplayer games. Getting Started Install Python Open cmd/terminal and type: pip install Aerics Examples Creating a

Yusuf Rençber 3 Jan 04, 2023
This project is an exciting fun game for beginners to build up

This project is an exciting fun game for beginners to build up. The program generates a random number from 1 to 10, or 1 to 100 any range that is specified and the user must guess the number after a

PyLaboratory 0 Feb 07, 2022
An exploration of a fantasy world, to autobattle your way to ruling the demesne.

Not Quite Paradise 2 (no relation to NQP, I just like the name enough to want to keep it.) Badges! Current position: Quality of last commit: Who dunni

9 Mar 12, 2022
Lucky Balls is gambling game where user try to guess 6 numbers from 1 to 48 that computer has picked.

LUCKY BALLS Lucky Balls is gambling game where user try to guess 6 numbers from 1 to 48 that computer has picked. INSTRUCTIONS User input his bet, tha

rile037 2 Dec 28, 2021
A simple yet powerful Snake Game made with myPygameWorkflow

snakeGame A simple yet powerful Snake Game made with myPygameWorkflow. Requirments python3 Python.org myPygameWorkflow Github Ripo Usage $ cd main $ p

DuskyElf 1 Dec 26, 2021
Quantum version of the classical Nim game. An automatic opponent allows to game to not be as easy as it seems.

Nim game Running the game To run the program just launch : python3 game.py Rules This game is inspiring from the Nim game. You are 2 players face to f

Michaël 1 Jan 08, 2022
Jogo da velha com interface gráfica desenvolvida em Python utilizando pygame e IA(Inteligência Artificial)

Jogo-da-Velha Sobre o projeto Jogo da velha com interface gráfica desenvolvida em Python utilizando pygame e IA(Inteligência Artificial) Layout tela d

Matheus Maia Alvarez 6 Apr 09, 2022
Games: Create interesting games by pure python.

Create interesting games by pure python.

4.2k Jan 06, 2023
Experimental Brawl Stars v37.222 server emulator written in Python.

Brawl Stars v37 Experimental Brawl Stars v37.222 server emulator written in Python. Requirements: Python 3.7 or higher colorama Running the server In

13 Oct 08, 2021
A Higher-Lower web game made in Python using Flask framework.

Higher Lower Web Game Guess the random number from 0 to 9 in this web game made with Python and Flask Framework Modules that were used Random Flask In

Yago Goltara 1 Oct 27, 2021
Snake (PyGame-based) port for Minecraft:Bedrock Edition using PEWSAPI

Snake_PEWSAPI Snake (PyGame-based) port for Minecraft:Bedrock Edition using PEWSAPI And we are not going to make any change to the original Snake sour

Azuki 1 Mar 17, 2022
Automatically prepare your Minecraft maps for release

map-prepare Automatically prepare Mineraft map for release. Current state: kinda works Make sure you have backups for your world before running this p

11 Oct 11, 2022
AI Games and its programming solution with Python.

Problem: Save the princess: Problem defination on Hackerrank: https://www.hackerrank.com/challenges/saveprincess About problem: Princess Peach is trap

Hasit Parmar 1 Feb 19, 2022
Minecraft-Bedrock-Modpack-Maker - Simple tool to combine multiple addons into one. Not finished

Minecraft-Bedrock-Modpack-Maker Simple tool to combine multiple addons into one. Not finished! Any contributing is welcome. How to use: Move all .mcpa

MivianCoin 1 Jan 06, 2022
Ice-Walker-Game - This repository is about the Ice Walker game made in Python.

Ice-Walker-Game Ce dépot contient le jeu Ice Walker programmé en Python. Les différentes grilles du jeu sont contenues dans le sous-dossier datas. Vou

Mohamed Amine SABIL 1 Jan 02, 2022
游戏中按TAB键查看所有玩家分数的小程序

DDNet-show-points-in-game DDRaceNetwork 游戏中按TAB键查看所有玩家分数的小程序

3 Oct 13, 2022
Gamelib is a pure-Python single-file library/framework for writing simple games.

Gamelib is a pure-Python single-file library/framework for writing simple games. It is intended for educational purposes (e.g. to be used in b

Diego Essaya 15 Dec 22, 2022
In the works, creating a new Chess Board and way to Play...

sWJz4KingsChess date started on github.com 11-13-2021 In the works, creating a new Chess Board and way to Play... starting to write this in Pygame, an

Shawn 2 Nov 18, 2021
Racers-API - a game where you have to go around racing with your car, earning money

Racers-API About Racers API is a game where you have to go around racing with yo

3 Jan 09, 2022
CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts

CTF Wiki 中文 English Welcome to CTF Wiki! CTF (Capture The Flag) started from DEFCON CTF, a competitive game among computer security enthusiasts, origi

CTF Wiki 6.4k Jan 03, 2023