一个关于DirectX的有关问题

一个关于DirectX的问题
前几天开始学的DirectX,看的是叫《游戏编程入门》的书,里面介绍写游戏时主要把所有的函数都集中到Game_Init,Game_Run和Game_End这3个函数中。
我想问的是,一般用DirectX写的程序都是这种结构吗?
另外有一个问题就是,我现在按照这种结构写的程序,只要一运行就是游戏开始,比如说像横版过关类的游戏,我想在运行游戏后先出现个选择玩家数量的界面而不是直接开始,我想请教各位大大规范的写法是怎样的?如果把这个写在Game_Run中的话,感觉每次都要有个判断语句,写在Game_Init中的话又好像不对...
求教,谢谢。
------最佳解决方案--------------------
刚开始采用这种方法比较合适,很清楚,初始化,运行,结束。
程序再大一些的话,类似还有DB_Init,DB_Run,DB_End, Net_Init, Net_Run, Net_End, Audio_Init, Audio_Run, Audio_End......。程序写多了,慢慢体会一下,就可以把这些操作抽象成class了,然后c++的认识也就提高了。这个不是规范的问题,是个学习渐进的过程。再大型的程序,都统一做成游戏引擎了,代码里见不到D3D Api。
------其他解决方案--------------------
这个属于程序构架的问题,你想怎么分就怎么分,没有关系的。只要处理好消息循环就OK了。
------其他解决方案--------------------
它那里所说的Game_Init,Game_Run和Game_End,是一个整体程序结构上的概念,并不是说具体的游戏逻辑。

像你说的这些肯定都是在Game_Run里面.
------其他解决方案--------------------
引用:
刚开始采用这种方法比较合适,很清楚,初始化,运行,结束。
程序再大一些的话,类似还有DB_Init,DB_Run,DB_End, Net_Init, Net_Run, Net_End, Audio_Init, Audio_Run, Audio_End......。程序写多了,慢慢体会一下,就可以把这些操作抽象成class了,然后c++的认识也就提高了。这个不是规范的问题……

谢谢各位,其实很多时候我都感觉自己写的代码很蛋疼,但是又不知道怎么改进,除非能看到一些高手写的代码,但是又很少能找到。
顺带问一下,能否推荐几本DirecrX方面的书?虽然是个老生常谈的问题,但大家推荐的貌似都是些偏理论的书,有没有一些比较偏实际一点的,拿实际项目来讲的那种呢?