Skip to content

Bonifatius94/Schafkopf.AI

Repository files navigation

Schafkopf AI

About

This project is about teaching an AI to play Schafkopf.

It covers topics such as:

  • low-level programming in C#
    • usage of memory-efficient structs
    • parallel / branchless techniques and SIMD
    • usage of unsafe pointer arithmetics
  • DDD / TDD techniques
    • concepts are properly modeled for low coupling
    • tests allow to gradually enhance the game logic with better performing structures / algorithms
  • AI training
    • custom neural network framework
    • several approaches to train agents (wip)

Quickstart

Install .NET Tools

sudo apt-get update && sudo apt-get install -y dotnet-sdk-7.0

Download the Source Code

git clone https://github.com/Bonifatius94/Schafkopf.AI
cd Schafkopf.AI

Build + Run Tests

dotnet test --configuration Release

Run Benchmarks

dotnet run  --configuration Release \
    --project Schafkopf.Lib.Benchmarks/Schafkopf.Lib.Benchmarks.csproj

Run AI Training

dotnet run  --configuration Release \
    --project Schafkopf.Training/Schafkopf.Training.csproj

DISCLAIMER: The training is currently under construction and won't deliver any results yet.

Install Docker (Optional)

sudo apt-get update && sudo apt-get install -y docker.io docker-compose
sudo usermod -aG docker $USER && reboot

Run AI Training (Docker)

docker-compose -f train-compose.yml build && \
    docker-compose -f train-compose.yml up

DISCLAIMER: The training is currently under construction and won't deliver any results yet.

About

Teaching an AI to play Schafkopf

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published