Giter Site home page Giter Site logo

alexandernorup / modulemon-advanced-ai Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jonaskaad/semesterproject-4

1.0 1.0 0.0 37.39 MB

Fork of my 4th semester project at SDU. Game is migrated to Java 18 without OSGi and dynamic components. Used for the Advanced AI for Games course E23 @ SDU

Java 100.00%

modulemon-advanced-ai's People

Contributors

alexandernorup avatar gorm2303 avatar jonaskaad avatar magnuskjaer avatar ras-e avatar sebmon avatar victoraboye avatar

Stargazers

 avatar

modulemon-advanced-ai's Issues

More AI's to test against

We could make more AI's to test against besides SimpleAI and Minimax

  • "Empty" AI which just makes empty moves and gets hit
    • HINT: Send null as the move to use.
  • Random AI which just makes random moves.
    • Could be seeded so that it will make the same random moves, maybe per team or per monster

Headless battleview

  • Concurrent battles
  • Only draw summary screen (Headless battles). Could show:
    • Amount of battles currently ongoing
    • Results of battles that are over
  • Be able to give lists of battles to the view, that will be simulated
  • Be able to choose the AI's that are battling

Custom Battle

Make a custom battle screen (create it as a new GameView that instantiates a battle, see MapView)
Make it possible to:

  • Select which monsters goes on what teams
  • Who controls the teams (untill #1 is implemented, the left side can only be human)

Concept art:
image

Catch IllegalStateExceptions in BattleSimulation

In #7 MCTS was implemented, but sometimes throws IllegalStateException if we run into a state that shouldn't occur.
We haven't experienced any of these yet, but it would probably be better to catch these in BattleSimulation so that the game doesn't crash.
However, if this happens we need to decide if we want the AI to make no move or do a random move so the game doesn't get stuck.

Implement AI vs AI

  • Simulate quick battle
  • Simulate lots of quick battles (headless)
  • Show summary after all quick battles

MCTS keeps running even when the entire tree has been discovered

While making #15 , I found out that MCTS just keeps going until the time is up, regardless of what it's doing.

It should stop prematurely if it has discovered the whole tree.

Easiest setup for this is making a custom battle where the MCTS opponent has GOD. It should be done almost immediately instead of waiting for the AI Processing Time to be up.

Export CSV for headless battle simulation results

A csv file should be created when headless battleview has simulated the battles it was set to.
These results should include:

  • Turns to win
  • Winner
  • Winner monsters
    • Name
    • HP
    • Type
  • Loser monsters
    • Name
    • HP
    • Type

Random teams for headless battleview

The teams should be chosen at random so that we don't always use the same team for all battles.
This should be seeded so that we get the same teams when we try to simulate more battles

Move updates

  • Accuracy moves
  • Critical hits
  • Stat-changing moves (Accuracy, Attack, Defence, Crit chance)

Maybe for later:

  • Status effects
  • Weather conditions

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.