GithubHelp home page GithubHelp logo

junghyun397 / gomokubot Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 5.0 3.05 MB

Multiplatform Gomoku/Renju Chatbot service

License: BSD Zero Clause License

Kotlin 92.89% Dockerfile 0.06% Shell 0.08% Java 6.97%
gomoku discord renju grpc jda reactor

gomokubot's Introduction

GomokuBot

Gradle build Deploy to production

Now play Gomoku in your chat room. GomokuBot can do it. ― GomokuBot is an AI Chatbot designed to collect data for reinforcement learning. GomokuBot can be services with any platform and can handle many requests reliably based on reactive streams.

For the Renju engine and inference server used by GomokuBot, please refer to the ResRenju repository.

Features

  • Renju Rule Support. With the ResRenju renju engine, GomokuBot always correctly applies Renju rules.
  • Multilingual Support. Currently, six languages are supported: English, 한국어, 조선말, 日本語, 國漢文混用體, and Tiếng Việt. Thanks to the community translators.
  • Fully Customizable. Various elements such as board style, focus type, and hint type can be set.
  • Intuitive Input. Within chatbot's environment, the ResRenju renju engine helps intuitive input.
  • Multiplatform Support. Business logic and parser logic are completely separate. Just write a command parser to make GomokuBot service on various platforms.
  • Non-Blocking IO. All IO tasks with Project Reactor and Coroutines. The database is also connected using the R2DBC SPI to ensure complete non-blocking IO.
  • Immutable, Functional. Almost all parts of GomokuBot are composed of immutable objects, and business logic is programmed using monadic operations.

Platforms

gomokubot-discord

help in game game result
discord-help discord-in-game discord-finished-game

Based on JDA, jda-reactor, jda-ktx. See discord module. You can invite gomokubot-discord bot via this link.

gomokubot-telegram

WIP

gomokubot-irc

WIP

Quick Start

build jar

gradlew build

build DockerFile

cd discord
docker build -t gomokubot-discord .

docker-compose

echo "GOMOKUBOT_DISCORD_TOKEN=discordapplicationtoken
GOMOKUBOT_DISCORD_OFFICIAL_SERVER_ID=0
GOMOKUBOT_DISCORD_ARCHIVE_CHANNEL_ID=0
GOMOKUBOT_DISCORD_TESTER_ROLE_ID=0
" > .env
docker-compose up -d

Contributing

New features, bug fixes, new language support, GomokuBot welcome all forms of contribution. Feel free to open PR to contribute to this project. If you want to participate more deeply in this project and develop it together as a main contributor, please contact me.

License

BSD Zero Clause License (0BSD)

Copyright (C) 2022 by JeongHyeon Choi <[email protected]>

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.