C++ is very good for rougelikes. (One of the most popular roguelikes, Nethack, is programmed in C, so doing something similar with C++'s features should definitely be no problem.)
Since you first went with Java, I'm going to take a wild guess and say you're programming with some sort of GUI in C++. If I'm wrong, please ignore the rest of this paragraph
. So, looks like I guessed correctly
. I would recommend getting away from doing GUI stuff and focus on doing commandline based programs for the time being. Trying to work with a GUI while learning programming is, I predict, not the best way to get in the hang of things. Especially if you're exploring something brand new ("today I want to get my head around polymorphism!" for example), it's best to stick to printing text to a terminal for the time being.
Since you're beginning with C++, I would strongly advise against reading C tutorials and articles unless/until you know the differences between what C and C++ offer, their respective strengths, and so on. As a quick example, where C prints stuff to the terminal with
printf(), C++ would do the same with
std::cout . There are of course times where you might want to/have to do things the way they're done in C, but in my opinion what works well in C++ is different from what works well in C. Stick to C++ resources.
Also, some quick C++ tips:
- For the love of all that is good, do not use using namespace std; ever. Namespaces (such as the std namespace) exist to avoid name conflicts. While it's slightly less likely for another C++ library to conflict with names in std, it just a bad habit to make namespaces useless. You can, however, import certain names you use often, for example using std::cout;. This means you can type cout instead of std::cout, but you still have to put std:: in font of other names. Details here.
- If you click on the link in the above bullet point, that C++ FAQ is a wonderful thing to keep handy.
If you have anything more specific you need help on, I'm sure we'll be happy to help.