This project is a work in progress to implement and experiment with path finding algorithms aiming at simulating RK Selection Theory, with a rabbit using different path finding algorithms to find a carrot as efficiently as possible.
Quick summary of current project components:
Engine
is the simulation engine that runs the loop for both logic and renderingTerminal
encapsulates most of the bindings with cursesMap
loads a simulation like a game loads a map/level- Each
Tile
can be walkable and has a specificPosition
Bunny
represents the player and uses the differentPathFinding
algorithms- Multiple algorithms can be implemented subclassing
PathFinding
It runs on the terminal and renders the simulation using curses, to see it in action run
bin/rk_theory.sh
To experiment with the code initiate a console with the project loaded using
bin/console
This project is structured as a gem even though it was never meant to be installed as one, feel free to try it for yourself
gem install rk_theory
Or add it to your application's Gemfile:
gem 'rk_theory'
And then execute:
$ bundle install
After checking out the repo, run bundle install
to install dependencies and then bin/rk_theory.sh
to see it in action.
You can run the tests with rspec
and code linting/best practices with rubocop
You can also run bin/console
for an interactive prompt that will allow you to experiment.
Bug reports and pull requests are welcome on GitHub at https://github.com/jasoares/rk_theory. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the RKTheory project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.