GitHub

๐Ÿฐ GiuChess 2.0

A powerful chess engine written in C, supporting both XBoard and UCI protocols.

๐Ÿ“‹ Overview

GiuChess is a chess engine originally developed by Giuliano Ippoliti in 2005. This version 2.0 has been significantly improved with:

  • Zero compilation warnings - Professional, clean codebase
  • UCI protocol support - Compatible with modern chess GUIs
  • XBoard compatibility - Works with traditional interfaces
  • Optimized code - Removed unused variables and improved structure

โœจ Features

  • Dual Protocol Support: Both UCI and XBoard protocols
  • Arena GUI Compatible: Works seamlessly with Arena Chess GUI
  • Configurable Depth: Adjustable search depth (1-10 levels)
  • Hash Table Support: Configurable hash size (1-1024 MB)
  • Multi-threading Ready: Thread configuration support
  • Professional Codebase: Zero compilation warnings with -Wall

๐Ÿš€ Quick Start

Compilation

# Linux/Unix
make
# Windows (with GCC)
gcc -Wall -g -O2 -o GiuChess-2.0.exe *.c -lm

Running the Engine

UCI Mode (Recommended)

./GiuChess-2.0 uci

XBoard Mode

./GiuChess-2.0

๐ŸŽฎ Using with Chess GUIs

Arena Chess GUI

  1. Download and install Arena Chess GUI
  2. Go to Engines โ†’ Install New Engine
  3. Browse to your compiled GiuChess-2.0.exe
  4. Select "UCI" as the protocol
  5. Click OK and start playing!

Other UCI-Compatible GUIs

GiuChess 2.0 works with any UCI-compatible chess interface:

  • ChessBase
  • Fritz
  • Scid vs. PC
  • Cute Chess
  • And many more...

โš™๏ธ Configuration

UCI Options

  • Hash: Memory for hash tables (1-1024 MB, default: 32)
  • Threads: Number of threads (1-1, default: 1)
  • Depth: Search depth (1-10, default: 5)

Example UCI Session

uci
setoption name Hash value 64
setoption name Depth value 6
isready
position startpos moves e2e4 e7e5
go depth 5

๐Ÿ› ๏ธ Development

Project Structure

GiuChess/
โ”œโ”€โ”€ *.c, *.h          # Core engine source files
โ”œโ”€โ”€ uci.c, uci.h      # UCI protocol implementation
โ”œโ”€โ”€ Makefile          # Build configuration
โ”œโ”€โ”€ scripts/          # Utility scripts
โ”œโ”€โ”€ CODE_CLEANUP.md   # Development documentation
โ””โ”€โ”€ README_UCI.md     # UCI-specific documentation

Building from Source

Prerequisites

  • GCC compiler
  • Make utility
  • Standard C libraries

Compilation Options

# Debug build
make debug
# Release build (optimized)
make
# Clean build files
make clean

๐Ÿ“š Documentation

๐Ÿงช Testing

Quick UCI Test

echo -e "uci\nisready\nquit" | ./GiuChess-2.0 uci

Expected output:

id name GiuChess-2.0
id author Giuliano Ippoliti
option name Hash type spin default 32 min 1 max 1024
option name Threads type spin default 1 min 1 max 1
option name Depth type spin default 5 min 1 max 10
uciok
readyok

XBoard Test

Use the provided scripts in the scripts/ directory for XBoard testing.

๐Ÿ“ˆ Version History

Version 2.0 (2025)

  • โœ… Major code cleanup: Removed 60+ unused variables
  • โœ… Zero compilation warnings: Professional codebase with -Wall
  • โœ… UCI protocol support: Modern chess GUI compatibility
  • โœ… Improved documentation: Comprehensive guides and examples
  • โœ… Enhanced build system: Streamlined compilation process

Version 1.0 (2005)

  • Initial release by Giuliano Ippoliti
  • XBoard protocol support
  • Basic chess engine functionality

๐Ÿ‘ฅ Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with proper testing
  4. Ensure zero compilation warnings
  5. Submit a pull request

๐Ÿ“„ License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

๐Ÿ‘จโ€๐Ÿ’ป Authors

  • Giuliano Ippoliti - Original author (2005)
  • Code cleanup and UCI support - Enhanced with Claude 4 assistance (2025)

๐Ÿ”— Links


GiuChess 2.0 - A professional chess engine with modern compatibility ๐Ÿ†

Read the original on github.com โ†—