This is for a school project, please enjoy.
It was very difficult, but I was able to make the code good.