WTL 海战游戏





4.00/5 (7投票s)
2004年8月13日
1分钟阅读

65916

1968
使用 WTL 编写的海战游戏。
引言
WTL 是一个相对不为人知的库,对于大多数 C++ 开发者来说。即使在当前状态下(据我所知,没有官方 Microsoft 支持),它也可以与 MFC 竞争,作为开发 GUI 应用程序的工具,特别是小型独立应用程序。它是一个模板库,如果您正确设计您的应用程序,那么它将依赖于最少或没有其他 DLL。因此,我决定编写一个 WTL 应用程序,只是为了获得经验,看看这样做有多困难。结果证明,对于具有 MFC 和 WinAPI 经验的程序员来说,这很容易。大多数类都与 MFC 类名称匹配,并提供相同的目的。而且我不需要担心在复制应用程序到其他机器时,是否获得了正确的 MFC DLL 版本。我想要做一些不太无聊的事情,所以编写一个有趣且无用的东西是一个合乎逻辑的选择:一个游戏。WTLSeaBattle 是一个广为人知的游戏“海战”的简单版本,它的唯一目的是提供一个基于对话框的 WTL 应用程序的示例。
构建环境
此应用程序使用 VC++ 6.0 SP6 和 WTL70 开发,并在 Windows XP 下测试。
应用程序描述
WTLSeaBattle 是一个使用 WTL 编写的基于对话框的应用程序。它的主类是 CMainDlg
(文件 maindlg.*),它处理对话框中的控件管理、“战场”类以及应用程序内部对象之间的通信。类 CMyShips
(MyShips.cpp)和 CEnemyShips
(EnemyShips.cpp)分别实现玩家和计算机的游戏区域。CMyShips
和 CEnemyShips
派生自公共基类 CDisplayAreaWnd
,其中包含公共功能。CMyShips
允许用户放置船只,CEnemyShips
放置计算机的船只并处理游戏过程中下一次“射击”的计算。