C#, in my opinion, is the best language to start with(syntax is simple). You can easly understand how the code works. For example, C++ is much harder to learn, but programs are more effective (faster). Your choice. Remember, everything what youneed is motivation.
A good starting place is to look at free game engines for learning game development. Unreal Engine, Unity , Godot are a few good examples.You will probably need to learn C++ and C # and many other scripting langauges. It is a longterm commitment and the learning will never stop. Also read alot of books on Game Graphics and Game math. The more skills you learn the better you will become. Goodluck and have fun.
PS Unity have a lot of free stuff on the unity store that should help you get started with that puzzle game.
If your teacher restricted you from using any game engine, then go for python.
Otherwise, try Unity. For coding in unity, consider learning C#. You don't need to know a lot, just some basic language syntax. Also you will have to look a bit into Unity's docs to help you write scripts for your game.