Actually i am kind of against game development tutorials in general, but that's another story.
I agree there.
This tutorial teaches its readers how to create a map structure, how to display it, and how to make a @ move on it. It is also done in the simplest way possible. For example, there are two separate integers which describe the position of the player (x,y coordinates). I agree that this is simple, but if we are being serious about writing a roguelike, then it is very likely that we should actually create a "point" class. Maybe even we should create a "monster" class and let a player be a special instance of it (both my Hydra Slayer and HyperRogue don't do this, but if it is important for your design that the player is just as a special monster, then you should).
Another example: in
Article II movement is done by repeating roughly the same piece of code four times. Yeah, this is the simplest way for this tutorial, but obviously this piece of code is incomplete, as later we will have to add monster movement after each our move, a check whether we have wandered into a trap, special abilities activated by special movement patterns should be activated, and so on. We will have to remember to always add these new stuff to four places. And we will repeat the same four-repetition structure whenever we add monster movement, missile weapons, and so on.
But it is much more convenient to create an array of directions: create an array of 4 vectors which correspond to the four directions, and simply write the general routine which adds the i-th vector. This makes serious roguelikes easier to write, and as an added bonus, if you later decide to make movement eight-directional or hex-based, or decide to let the player choose for themselves, then you can change this without any problem.
By writing this in the simplest way possible, you make it harder for your readers to continue development. And you don't teach the very important design principle, which is that you should never repeat yourself.
Even more important thing the tutorial teaches you is that whenever you write a roguelike, you should write the @ moving on screen. This is
false! Good programmers do not do that.
Jeff Lait has written eight seven day roguelikes. If you look at the newest one, Sword in In Hand, you will notice stuff that traces back to the oldest one, You Only Live Once. If you look at the source, you will notice things that are obviously irrelevant for Sword In Hand, but have been written for one of his previous 7DRLs and not removed. I have been once teaching programming to a friend, and he noticed that whenever we started a new project, I copied the sources of something else and removed almost everything.
That's how development is done. Bad artists imitate, great artists steal. You don't write basic stuff, just copy it from your older projects, or if you have no older projects from your own, learn/copy from older projects of other people.
I have created a roguelike which uses
hyperbolic geometry. I think this was a good idea and want other people to create hyperbolic geometry roguelikes too. But I would not recommend people to implement hyperbolic geometry on their own, or write a tutorial which explains how to do that. Instead, I would recommend them to take HyperRogue source, learn how it was done, and modify it. They would only need to throw away the game mechanics engine and write their own, and understand vectors and matrices if they want to create new graphics, but they would not need to understand how the map structure was implemented, only use what is already done.
The same goes for generic roguelikes. Thomas Biskup has created
QHack which is a simple roguelike written in C. I think a well documented and free-to-use working example is better than a tutorial. Other people would start with Angband, or with T-Engine. There are probably other good choices.
As far as I can tell, it is currently impossible to download the complete roguelike written in this tutorial. That is wrong. I think that you should comment it thoroughly, make it available for download, tell the players to download it and modify it, and provide the tutorial as a backup for those who want to understand why something has been done in a specific way.
That being said, i wouldn't use something like C (or c++) as a tutorial for programming or game design.
Do not write a roguelike in C. Write it in C++, it has many extensions, some of them will be useless for you, but there are other ones which are very useful (for example, I would not recommend a newbie to use C style strings, STL strings are OK). Don't write it in pure C++ either. Use an existing roguelike base (possibly based on C++ itself), it has extensions which will be even more useful for you.