Skip to content

Real-time .NET 8 Tic Tac Toe Tournament platform powered by SignalR, Azure, Docker, and OpenAI bots.

License

Notifications You must be signed in to change notification settings

rzavalik/TicTacToe.Tournament

Repository files navigation

TicTacToe Tournament 🎮

Real-time .NET 8 Tic Tac Toe Tournament platform powered by SignalR, Azure, Docker, and OpenAI bots.

.NET Build Status


📋 Table of Contents


📖 About

Bots playing against each other

TicTacToe Tournament is a real-time, cloud-native tournament system built with .NET 8 and SignalR.
It allows multiple bot players (or human players if using SmartPlayer bot or any other custom made) to connect, play matches, and orchestrates tournaments automatically.

Built for scalability and AI integration.


🚀 Features

  • ⚡ Real-time multiplayer via SignalR
  • ☁️ Azure-ready architecture
  • 🐳 Docker-friendly deployment
  • 🧠 OpenAI-powered Bot Player
  • 🎯 Tested with xUnit, Moq, and Shouldly
  • 🛡️ Clean architecture and extensible design
  • 📈 Easy to add your own bots and strategies

🏛️ Architecture Overview

The system is composed of:

  • ServerApp: Hosts the tournaments and SignalR hub.
  • WebApp: UI for tournament creation and monitoring.
  • Player Clients: DumbPlayer, SmartPlayer, OpenAIClientPlayer.

👉 See full Architecture Documentation.


🛠️ Getting Started

Prerequisites

  • .NET 8 SDK
  • (Optional) Docker

🧠 OpenAI Bot

The OpenAIClientPlayer uses the ChatGPT API to select moves based on the current board state.

👉 See OpenAI Bot Documentation.


🤝 Contributing

We welcome contributions!

Please read the Contributing Guidelines before opening a pull request.


📝 License

Distributed under the GPL-3.0 license.
See LICENSE for more information.


❤️ Sponsor

If you find this project useful, please consider buying me a coffee! ☕

About

Real-time .NET 8 Tic Tac Toe Tournament platform powered by SignalR, Azure, Docker, and OpenAI bots.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

Contributors 2

  •  
  •