Coder Social home page Coder Social logo

freeflow-grid-solver-'s People

Contributors

antoinetd avatar jeanpierrethach avatar wilfriedcyrille avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

freeflow-grid-solver-'s Issues

Task list(second sprint)

Priority #1

  • Modulate mouse event listeners.

  • Allow dynamic resizing for the grid, lines and ellipses. (With height and width variables in mainwindow.h)

  • Read data from JSON files or any other format allowed.
    The previous implementation only reads from a stringstream object that replicates a JSON file. It has to read from a JSON file.
    The current implementation reads from a JSON file using QT classes.

  • Generate color palettes for the level generator. (Not implemented: Keep a count of the amount of origins generated to parameterize generateColorPalette function and reduce nbOfColors generated)

  • Set levels from the data.

  • Allow the user to save a game.

  • Allow the user to load a saved game.

  • Add path verification algorithm.

  • Allow user to play against an AI. (generate a random level of X format that can be solve)

  • Clear paths from generated level.

  • Change matrix pos into method

  • Dynamically create 2d array according to the level JSON file.

  • Allow the user to go back to the level selection.

  • Modulate project.

  • Refactor/rename Path into Cell.

Priority #2

  • Allow the user to restart the current level.

  • Allow the user to go back to the main screen.

  • Implement our own push buttons and dynamically position and resize itself according to mainwindow frame.

Priority #3

Moved to #4

Bugs to fix

  • Bug to fix:
    Context: Any level is opened.
    Action: When the user moves on a blank case towards another blank case.
    Issue: It crashes.
    Possible solution: It cannot find an appropriate color from the vector of QColor?
    [Resolved]
    Solution: Added restriction on the color of currentX and currentY mouse movement events (Not equal to the blank color).

  • Bug to fix:
    Context: Loading a saved game after performing the action.
    Actions:
    [Resolved] When the user connects two origins then clears the path by clicking the origin or a case of the path.
    [Resolved] When the user overrides a path connected with a different path.
    [Resolved] When the user moves overrides until the first case right before the origin of a different path.
    Issue: The origin on the other end will be cleared.
    Possible solution: (Look at clearPathColorCase() and mouse movement event functions)
    Solution for resolved actions: Use clearOrigin() on the next pointer and added or operator (Check if the point has next or previous or is an origin)

  • Bug to fix:
    Context: The application is running.
    Action: A sequence of actions related to the back and load functions.
    Issue: The application closes on the taskbar.
    Possible solution: Check signals and slots implementation, mostly close() calls?

  • Bug to fix:
    Context: A level is loaded.
    Action: Clicking outside the grid frame and dragging towards the grid.
    Issue: The application crashes.
    Possible solution: Check mouse listeners, check width/height/interval values, check vector (could be getColor from those vectors when calling the painter?)

Task list (first sprint)

Game logic

Priority #1

  • Add play and quit menu before loading the level.

  • When the user tries to link the same two color origin grid case, it has to be fully connected.

  • If the user clicks on the origin, the cases going forward that path must be cleared.

  • If the user clicks on a case from a path, the cases going forward that path must be cleared.

  • If the user overrides a path with another path and then clicks to clear the path forward from the path overrided, it has to only clear his path.

  • Restrict diagonal path.

  • If the user moves pass the first origin after creating a path, disallow the creation of path pass that origin.

  • If the user moves pass the second origin after creating a path, disallow the creation of path pass that origin.

  • If the user moves on an origin, its case will be highlighted and will not be available to be linked unless he resets the origin.

Priority #2

  • Allow the user to move back from cases created for a path.

  • If the users tries to create a path that goes pass another path, the path already established has to keep its cases until the point of collision.

  • If the users tries to create a path at the end of another path, only clear that case.

  • If the users tries the step above and move his cursor backwards to the original path, it shouldn't clear the cases.

  • Path 1 Red, Path 2 Blue.
    If the user create Path 1 and cuts on the Path 2 and then recreates Path 1 onto the end case of Path 2, the logic of clearing that case only should be applied.

  • If the users clicks on an origin, all path created must be from that point.
    (Functionality to adjust : Moving to another origin of the same color resets its origin to the new one)

Priority #3

Moved to second sprint #2

List of completed tasks before the listing

  • Draw a static grid
  • Add a static level
  • Add visual effects on user action
  • Restrict mouse movement to the current window
  • Allow line drawing from origin grid cases

Task list (Third sprint)

Priority #1

  • Allow user to create level.

  • Modify load implementation to allow loading file from any repositories.

  • Differentiate json file from a generated level/defined level to a user-created level (Loading slot).

  • Add path resolution algorithm. (Partially complete)

  • Allow the user to choose his level and difficulty.

Priority #2

  • At odd grid size, the painter inside the grid cases is off a little bit. (Change int to double)

  • Allow offset changes on the left, top, right, bottom side for the grid frame.

  • Deallocate memory when possible and fix memory leaks.
    (gridbuilder class, clear() method, pointers, etc.)
    Memory leak (Path* next[1], previous[1], delete grid, etc.)

  • Refactor/clean up code.

  • Path* (setter), grid->getGrid[][]...

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.