GithubHelp home page GithubHelp logo

metzzo / mancala Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 0.0 132.37 MB

Bachelor thesis for my degree at University of Technology Vienna. An implementation of the Mancala board game with own engine, Monte-Carlo Tree-Search based Agent and Alpha-Beta Pruning based Agent and documentation.

Java 84.26% XSLT 14.54% CSS 0.27% HTML 0.93%

mancala's People

Contributors

metzzo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mancala's Issues

TripleA Evaluation vs. Eigene Engine

Support von Brettspielen ist bei der TripleA Engine leider seit einiger Zeit nicht mehr verfügbar, das heißt es müsste mit einer stark veralteten Version geschrieben werden. Die Frage ist, ob es dennoch einfacher ist eine eigene Brettspielengine zu schreiben.

User Dokumentation

Damit Studierende neue Agenten entwickeln können muss folgendes dokumentiert werden

  • Wie erstellt man einen neuen Agenten?
  • Wie funktionieren die beiden existierenden Agenten?
  • Wie funktioniert die Bedienung des Spiels?
  • Wie erstellt man ein neues Brettspiel?

Als Format sollte dabei das Markdown Format dienen.

Tiefensuche Agent

Agent für die Tiefensuche implementieren.

  • Beispielimplementierung eines Tiefensuche Algorithmus (ohne spezielle Heuristiken) für das Brettspiel.
  • Besonders achten auf gut dokumentierten und sauberen Code, da zukünftige Gruppen basierend auf diesem Code eigene Agenten implementieren werden.

Dynamisches Laden von Agents

Javas ServiceLoader API in Kombination mit Runtime Classloading erlaubt das laden neuer Services zur Laufzeit.

Projekt aufsetzen

Aufsetzen des Projekts:

  • Gradle aufsetzen
  • Package Struktur
  • Graphikkontext öffnen

Agent System

Die Steuerung des Spiels soll mithilfe eines Agentsystems erfolgen. Dabei soll es möglich sein beliebig viele Agents dynamisch und statisch in das Spiel zu laden.

  • Agent API
  • Human Agent: Mensch macht Züge
  • Random Agent: Computer macht zufällige Züge
  • MCTS Agent: Agent mit MCTS (nicht Teil dieses Tickets)
  • Tiefensuche Agent: Agent mit Tiefensuche (nicht Teil dieses Tickets)

Spiel Starten UI

UI um das Spiel zu starten und Einstellungen vorzunehmen:

  • Auswahl der Agents die gegeneinander antreten
  • Laden neuer Agents
  • Einstellung der Brettgröße
  • Maximale "Nachdenk" Dauer pro Agent

MCTS Agent

Monte Carlo Treesearch Agent implementieren:

  • Beispielimplementierung eines Monte Carlo Treesearch Algorithmus (ohne spezielle Heuristiken) für das Brettspiel.
  • Besonders achten auf gut dokumentierten und sauberen Code, da zukünftige Gruppen basierend auf diesem Code eigene Agenten implementieren werden.

User Interface aufpeppen

Aktuell ist das UI nicht sonderlich ansehnlich, es muss nicht sonderlich fancy sein.

  • Steine Buttons
  • Set Up
  • Agent hinzufügen

About Screen

Sollte allgemeine Informationen über das Projekt enthalten.

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.