Skip to main content

A package to play chess with ChatGPT

Project description

ChatChess

A simple python package to play chess with ChatGPT

Installation

pip install chatchess

Usage

Import the package:

import ChatChess

First a Game object needs to be decalerd as follows:

bot = ChatChess.Game("OPENAI_API_KEY")

Additional parameters:

  • bot.maxTokens = 10: Set max_tokens passed to ChatGPT on each move
  • bot.maxFails = 5: Amount of times to retry sending prompt to ChatGPT when invalid move is returned
  • bot.prompt = {"normal" : "", "failed" : "", "start" : ""}: The prompts to send to ChatGPt at each game state
  • bot.board = chess.Board(): Chess board object
  • bot.message = "": Set to move into after each GPT move
  • bot.printDebug = False: Print debug info - occaisonaly useful

Functions

Main functions

  • move = bot.play("e4"): Plays the player's move, then ChatGPT's response - returns ChatGPT's move
  • move = getGPTMove(): Plays ChatGPT's move in the current position - returns ChatGPT's move

Other functions

  • bot.pushPlayerMove("e4"): Push a move without ChatGPT responding
  • prompt = bot.createPrompt(): Creates prompt to send to ChatGPT based on current position and previous fails - returns prompt
  • response = bot.askGPT(prompt): Queries ChatGPT prompt based on set parameters
  • move = bot.handleResponse(response): Gets move from reponse - returns move

Examples

Simple player vs ChatGPT game

import ChatChess

bot = ChatChess.Game("OPENAI_API_KEY")  # Set API key

while True:
    print(bot.board())  # Print the board
    bot.play(input("Make a move: "))  # Ask player to make a move, then ChatGPT responds
    if bot.board.is_game_over():  # Break if game over
        break

Simple ChatGPT vs ChatGPT game from a set position

import chess
import chess.fen
import ChatChess

bot = ChatChess.Game("OPENAI_API_KEY")  # Set API key
bot.board = chess.Board("rnbq1bnr/ppppkppp/8/4p3/4P3/8/PPPPKPPP/RNBQ1BNR w - - 2 3")  # Set position

while True:
    bot.getGPTMove()  # Ask ChatGPT to make a move
    print(bot.message)  # Print move and info
    if bot.board.is_game_over():  # Break if game over
        print(str(chess.pgn.Game.from_board(bot.board)))
        break

Info

Uses

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

chatchess-1.0.10-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file chatchess-1.0.10-py3-none-any.whl.

File metadata

  • Download URL: chatchess-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.2

File hashes

Hashes for chatchess-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 87f1b88a13ff80103d26d16964fdc5c2b45cbc4205fc2400841cb315a5285e36
MD5 003bba6bab80e04087d87a89cf86de02
BLAKE2b-256 f808b38f68b47c97c5c1c0f29b5f03babc9a7afb95efff432e65cff69eec631b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page