How to implement a Roguelike

A roguelike is a character based fantasy game. By character I mean @^! not an individual as such! A question on the C SubReddit had asked about Project ideas for simple applications and someone had suggested a Roguelike. It’s not a bad idea but probably quite a bit more than just a simple project.
So I suggested breaking it down into stages. Here’s what I said.
Rather than a roguelike in one go (that’s a actually quite a bit of code) so do it in these stages.
-
A Dungeon level generator. Create rooms and link them by corridors.
-
Generate a bunch of levels – link them via randomly stairs, pits, transporters.
-
Add random monsters and treasures in rooms.
-
Implement a moving player able to navigate through the levels.
-
Add combat. Weapons, range weapons, spell casting. Add monster hit points.
-
Turn it into a polished game. Add everything else needed. Permadeath, collecting treasures. Moving monsters.
-
(Optional) Make it multiplayer and allow PvP.
PvP means allow Player v Player combat. Doing it multiplayer is actually quite a lot of work which is why I made it an option. Rogues are often created using simple ASCII chars for monsters and treasures. Some programmers have used graphics and there are plenty of free graphics sets for 8 x 8 or 16 x 16 pixel sized monsters etc. like the Kenney.nl microrogue set. Shown in action below.

I am tempted to make this the 3rd game idea for the Raspi game book. 30 years ago I created a multiplayer postal game Quest that is still running albeit on the web not by post. That included a dungeon generator. It wasn’t in C but it’s easy enough to translate Turbo Pascal to C.
I’m not fond of JavaScript but I am still in awe at the ingenuity of people who created a HTML5 game in JavaScript in just 13KB. There’s an annual competition called 
Confession, I can program in C++ though I’m a bit rusty and my C++ knowledge stops short of creating template classes but I can use them. But given that probably most games these days are programmed in C++ why is this site about C?
I’ve done a snake game in the past for About. That’s the picture and today I’ve uploaded it complete with source to
Match Three games have been around for the best part of a decade and have a basic mechanic of swapping two adjacent pieces to make a line up of three, four or five pieces which get removed.