vaarun-c / neat-cars Goto Github PK
View Code? Open in Web Editor NEWCars which learn to drive a track using the NEAT algorithm.
Cars which learn to drive a track using the NEAT algorithm.
Aim to implement a paint program using Pygame that allows users to draw tracks themselves. This user-generated track will serve as the training environment for the algorithm to learn and navigate.
Objective:
The primary objective of this issue is to develop a user-friendly paint program within our project that empowers users to create custom tracks for the algorithm to navigate. This feature not only adds interactivity to the project but also provides a valuable tool for testing and training the algorithm on diverse track designs.
Proposed Functionality:
Acceptance Criteria:
Have fun :)
The current implementation of the crossover
and mutation
functions in NEAT.py
is functional but could benefit from improvements in terms of readability, reusability, and configurability.
For the solution to be accepted please consider the repository's constraints and make sure that the solution does not rely on external libraries beyond PyGame.
Have fun :)
The current fitness function, defined in calc_fitness()
within the Computer(Car)
class in main.py
, calculates fitness as velocity multiplied by time. However, this approach has several limitations:
This has several issues:
Try to improve this by using a better way of calculating the fitness of the cars. You could also try penalizing the car for negative behavior. Ensure that the new fitness function is tailored to the specific requirements of our project and doesn't rely on external libraries beyond PyGame.
Acceptance Criteria:
Have fun :)
When attempting to add the player car to the game, we encounter an attribute error that prevents the player car from being added successfully.
Steps to Reproduce:
main.py
Expected Behavior:
The player car should be added successfully without encountering any attribute errors.
Actual Behavior:
An attribute error occurs when trying to add the player car, preventing its addition.
Acceptance Criteria:
Currently, the starting positions of the cars are hardcoded ( line 325 in main.py
), which limits flexibility when considering user-created tracks.
The user has to make sure that the hardcoded location is always part of the track to ensure that the program runs. To make our project more versatile and user-friendly, we need to develop a feature that allows users to specify the starting positions of the cars as well as the correct orientation.
Another viable solution is to find any valid position in the track after the user submits the track and go with that. This is more convenient as it does not require the user to place the car in the correct place and orientation. But this is equally more difficult to implement ( maybe ).
For the solution to be accepted please consider the repository's constraints and make sure that the solution does not rely on external libraries beyond PyGame.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.