Yes I did read the OP, and I am saying that you have only a few weeks of experience, I looked at your code and its quite good for someone of your experience. But at the same time, DF has taken years of development. Even imitating something like it would be a difficult task, and probably not need the speed advantage of C. What do you plan to do, Pathfinding is a given, but what else, are you going into water-simulation, How advanced would the AI be. All I'm saying is that imitating DF would be an extremely complex project.
That being said though, Its a good idea to learn C/C++. Switching languages is somewhat easy if you already know how to program, As C is more low-level though be prepared to have quite a few difficulties. Just remember that C++ compared to Java is quite low-level, and does not come with standard libraries.
How-long do you want to spend designing and programming a DF clone. It would take several months and at the end of the day, everyone will just go back to playing DF anyway.
IMO get more experience on a complex project. How-much do you know about algorithm efficiency, learn it. If you seriously want to code a clone then feel free to do so(Ask Toady first though), But seriously it is a very complex project.
Remember that the language is no substitute for inefficient coding.
EDIT: Should say that C does not come with LARGE standard libraries
SECONDEDIT: Sorry if the post sounds like its criticising your skills too much but I tend to get pessimistic of new programmers trying to recreate something that has taken people with alot more experience years to do