/pv112

Primary LanguageKotlin

PV112 seminar project - The Solar system model

This project represents a simple game of Hanoi Towers. Your goal is to move all ring from the first stick to another. However, you can move only one ring at time and you can't put larger ring on the top of the smaller one. For controls, scroll down.

Features

The game features very advanced AI, that will help you to accomplish your goal by always moving you in the right direction. You can start the game manually and whenever you feel lost, you just press A and the game will take care of the rest.

First, it will reverse your bad moves until your last good step and then it will continue with solving.

How to run

On Linux/Mac:

./gradlew clean run

On Windows:

gradlew.bat clean run

Run the script from within the root folder of the project.

Controls:

  • Manual mode:

    • Each step consists of selecting the origin stick and the target stick.
    • This can be done using keys 1, 2 or 3 each representing exactly one stick
    • For example the sequence of keys 1 3 means that the player wants to move one ring from the leftmost stick to the rightmost one.
    • Sequence of two identical numbers (eg. 1 1) is invalid and will be ignored.
    • The desired sequence can be modified. The sequence of keys 1 2 3 1 3 will result in the valid sequence 3 1. Similarly the sequence 1 2 2 1 ends up as 2 1
    • The sequence of numbers is then confirmed with Enter.
    • The whole user input can be cleared using C.
    • User can switch to the automatic mode using A.
  • Automatic mode:

    • The automatic mode continuously tries to solve the problem.
    • The automatic mode can be stopped using M which also switches the game into the manual mode.
  • Once the game is finished (all rings are moved to the stick that is different than the origin), it can be reset using R.

  • Menu can be shown using P.

  • Menu can be hidden using P.

Requirements met:

  • At least 2 lights
  • Animations
  • Textures (at least 8 objects, using at least 3 distinct textures)
  • Number of objects in the scene (at least 10 objects, at least 3 distinct, at least 8 loaded from file)
  • GUI
  • Conic lights
  • Procedural textures (brick wall)
  • Sounds

Licensed resources: