GithubHelp home page GithubHelp logo

gameoflife's People

Contributors

spacarar avatar

gameoflife's Issues

Camera Panning

It would be nice if the camera for the playing field could be panned around somehow to get a better view, and expand the possibility of grids larger than the screen.

Multithreaded Collisions

In the multithreaded implementation, there is high possibility of thread collision when writing to the global web structure or the global root structure. this has happened on multiple occasions when running more than 1 thread. To fix this a mutex needs to be implemented to stop the WebWorkers from writing at the same time. Without further investigation I'm unsure whether the mutex should live at the web and all the workers need access to it, or rather if it needs to live inside the WebWorker class since those are the functions that are crashing.

Add HUD for gameplay

the hud should consist of:

  • a pause button in the upper left corner
  • the node information in the upper right corner
    • the size_t identifier and node height
  • the current update rate of the grid on display on the lower left corner
  • buttons to control modes on the lower right corner
    • select button: select a rectangle region (to be used for saving patterns in future)
    • deselect button: ^transform to deselect all
    • paint button: left mouse draw piece, right mouse erase piece
    • search button: ^transform left mouse next grid, right mouse previous grid

Add Main Menu

Main Menu should consist of ttf font saying

Conways Game of Life

New Game

Exit

some ideas for the future include a pattern maker and painter, but that may just be involved into the gameplay mode.

Implement a pause menu

This should be another step on top of freezing the grid. the pause menu should consist of:

  • Conways Game of Life title at the top
  • Main Menu
  • Clear Web (this erases the data in the dictionary to clear out memory if needed)
    • it might be worth thinking about ways to trim the web
  • Exit (directly exit the game)

Create reversible identifier

The unique identifier for the gridweb should maintain its type as a size_t; however, it would be in the best interest of storage to create a reversible way to retreive the coordinates of the grid to recreate the grid from just its identifier alone. This would mitigate all requirements for vector<pair<int, int> > startCoords;. Futhermore this would allow patterns to be easily stored in a small writable data structure, many patterns could be stored in a single file while being easily readable by the program.

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.