2D-raycasting-with-reflections inspired by YouTube channel "The Coding Train". Extended version with ray reflections.