- This repository is maintained and managed by the community.
- The aim is to disclose the most common to the most complex algorithms that can be implemented in Pawn.
- If you have a unique algorithm, share it by following the guidelines in this file.
- Simple and adapted algorithms for Pawn are also welcome, as long as their origin/author is specified in the file and if its license permits.
- If you have an algorithm developed by someone, please credit it.
- If you share, your work will be distributed under the GPL-3.0 License once it is integrated into the main project.
- Main: Each file will contain the titles (at the top of the file): Name of the function, "Original Post By" and "Maintainers", everyone who helps to improve the file itself will be marked in it.
- Author: If the function is taken from some other repository, if the license asks, put the title Author as well.
- Structure Example:
- AddNumbers Function
- Author: @Name, repository.
- Original Post By: @Name (who created the post for this function)
- Maintainers: @Name, @Name, ... (Anyone who has helped maintain this file)
- Code Practices: Clearly, you should always seek to use good code practices. But don't worry, if you have an algorithm and want to share, follow this guide and go ahead. Over time the architecture of the codes will be improved, with this, you will be able to follow the changes and study these new structures in detail, understanding how to apply good practices and why to apply them.
- Helping: Any help is welcome to maintain a good repository, from a spell check to a new implementation for an algorithm.
- Opened Issues: If you found an error in a file and want to open an "issue" make sure that there is no an open one explaining this same problem.
- Openening Issues: If you cannot find an open issue, you can open one, pay attention to describe what you found.
- Openening PR's: If you think you can solve the problem, open the issue and send a Pull Request marking the issue, then the file will be evaluated.
- Compiling: Although we check if the code compiles and does what it promises, make sure it is compiling before opening a Pull Request, speeding up the whole process.
- Openening PR's: If you want to contribute by adding new files, descriptions, algorithms or whatever, just open a Pull Request, pay attention to describe in detail in the Title and Description the features and objectives.
- Openening Issues: If what you want to implement, structurally speaking, is an addition with many details and project ramifications, open an issue and discuss with the community before proceeding to a pull request.
- Test Cases: When submitting a new algorithm, be sure to add examples and test cases and indicate it as an option for its implementation.
- Directory Case: Make sure to put your new file in the correct directory, if it doesn't fit in any, create one for it with a short and simple name that explains what the folder is about, following the Directory guidelines below
- Directory Guidelines: Avoid creating new directories as much as possible, but if it is "impossible" follow:
- Do not use "-" or "_" between words, use only space.
- The initial letter must be uppercase for each word, the others, lower case.
- Use "()" to separate a Main title from a sub-category in the folder e.g: Math (Geometry)
When you contribute, be aware of this protocol:
- Be kind and respectful when talking and debating with other members and contributors.
- For issues and Pull Requests make useful and detailed suggestions and comments aware that nobody knows everything.
- Be sure not to make invalid suggestions/comments, but if you do it by mistake, don't worry, we're here to learn.
- If you want to review or make suggestions, guide the author of the Pull Request, helping him to finalize it.