Beta
Overview
Snake
Game State
Engine Interface
Duel Snakes
Game State
Engine Interface
Chess
Game State
Engine Interface

Chess Overview

This is vanilla chess with no bells and whistles. Our engine implements all standard stalemate rules:

  • Insufficient Material
  • Repetition
  • Fifty Move Rule

It is helpful to be familiar with Standard Algebraic Notation (SAN). For help on strategy visit the chess programming wiki.

Details

Time per move Each algo gets 300,000 milliseconds (5 minutes) total to finish the entire game. This emulates a real life chess clock. (We are still figuring out the best amount of time to provide for our games. This is subject to change.)
Ranking system The algos are ranked based on win percentage (we plan to change this to some sort of Elo system).
Algo initializing config config['color'] is a string representing the color your algo is playing. This will be 'w' if your algo is white or 'b' if your algo is black.
Valid moves A string that is a valid move in SAN for the current game state.

Sample Algo

import random

class Algo:

    def __init__(self, config: dict):
        self.color = config['color']

    def take_turn(
        self,
        state: ChessGameState,
        interface: ChessInterface
    ) -> str:
        # Log the FEN of the current state
        interface.log(state.fen)

        # Iterate over possible moves
        moves = state.all_valid_moves
        for m in moves:
            # Log the move
            interface.log(m)
            
            # Get the resulting game state if you played that move
            next_gs = interface.make_pseudo_move(state, m)
            # Log the resulting game state
            interface.log(next_gs.fen)
            
        # Return a random legal move
        return random.choice(moves)