Merge branch 'feature/add_sharp2048' into develop
fixing unit tests to understand that random tiles will show up
ugh sorry huge commit. added a ton of stuff. better organized solutions. gui neat runners. sharp2048 domain. selenium runner of sharp2048 genomes. oof
adding back in delete node ability\probabilities
fixing neuron deletion - no clue how it got removed (shrug)
adding unit tests and tweaking experiments
- changing inputs to be log(value)
- major upgrade to game handler and game state to not be creating tons of objects all the time (just referencing and projects the internal state)
- fixing log4net so it outputs appropriately now
- added data project and entity framework for sharp neat db
- added service project to add a layer between db and using genomes that have been saved
- updated web project to have a relevant controller
- added a FluentMigrator project and hooked it up to use some migrations :)
adding basic functionality to sharpneat service
castle windsor into web project and a lot of wiring to get some resemblance of a service in the web project
- adding 2048 css to the site
- adding validation and saving for LoadGenome post action
preparing for play controller\view and service hooks to process states through NEAT
- added js from 2048 to play game
- adding play view which is the actual 2048 game
- added ajax hook to controller state processing
- started view models for processing json state
-getting json encoded into a service readable state
-parsing and testing the load of a genome
- realizing sql server not installed to test further
- hooked web config up to sql server
- fixed bug in play view that didn't ajax guid over correctly
- fixed bug in controller: we need to transpose returned state
- fixed bug in service so unicode is the standard encoding
- adding IGenomeGenerator so we can DI some sillyness into the neat service wrapper
- allowing static neat libraries to take in dependencies on NeatGenomeFactory so above point can inject further
- activation functions normalized in db
- activation function factory and other installers added
- input\output added as webconfig settings
- adding migration to move nullfn to id 0
- fixing activation function factory so it works
- fixing genome generator to dynamically employ whatever encoding the genome describes
- activating phenome when deciding next move
- realized my homegrown id mapping for moves needs to be transposed into how js engine thinks about move ids
- allowing neat genome xml to map function ids to what exists and update loaded genomes accordingly
- adding setter in neuron gene for activation function id for above hack
- fixed namespace of Sharp2048 project to be Sharp2048.State
- adding IGenome2048Ai with two implementing classes: a board evaluator version and a direct mover
- added Evaluator factory for above classes
- ability to decide if Sharp2048 experiment should use HyperNeat or not
- HyperNeat setup for experiments
- migrations to hold evaluator on a per-genome basis
-
Wiring up new eval factory in windsor