65.9K
CodeProject is changing. Read more.
Home

WTL SeaBattle game

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (7 votes)

Aug 13, 2004

1 min read

viewsIcon

65253

downloadIcon

1941

SeaBattle game written using WTL

Introduction

WTL is relatively unknown library for most of C++ developers. Even in its current state (with no official Microsoft support as far as I know) it could compete with MFC as tool for development GUI applications a especially small standalone applications. It is template library and if you design your application right, then it would depend on minimal or none other dll. So I decided to write WTL application just for sake of experience to see how hard to do it. It turns out to easy enough for a programmer with experience in MFC and WinAPI. Most of the classes match names of MFC classes serving the same purpose. And I did not have to wonder if I got right version of MFC dlls on any other machine where I copied my application. I wanted to do something which would not be too boring, so it was a logical choice to write something funny and useless: a game. WTLSeaBattle is simple version of widely known game “Sea Battle”, it sole purpose is to give an example of dialog based WTL application.

Building Environment

This application was developed using VC++ 6.0 SP6 and WTL70, and tested under Windows XP.

Application Description

WTLSeaBattle is dialog-based application written using WTL. Its main class is CMainDlg (files maindlg.*) which deals with managing controls in dialog, “battle field” classes and communications between objects inside application. Classes CMyShips (MyShips.cpp) and CEnemyShips (EnemyShips.cpp) implement player’s and computer’s game fields respectively. CMyShips and CEnemyShips derived from common base class CDisplayAreaWnd which contains common functionality. CMyShips allows user to place ships, CEnemyShips places computer’s ships and handles calculation of next “shot” during game.