Battleship -- CS 351 Fall 2002 Final Project
Prev

5. Extra Credit

As can easily be seen by our project's relative blandness, we have purposley left a great deal of room for you to be creative (and also because our time was extremely limited). You must understand, however, that there will only be a small amount of points associated with the extra credit so as to not allow some to forgo their normal CS 351 lab assignments and exams. Despite this, the points will still be substantial enough to allow some grade movement.

5.1 Graphics and Sound

While drawing filled rectangles is nice, it's also not exactly what one would call professional, elegant, or even intelligent. Graphics for water, the ships, and even the misses on the grid can be found online. Or, for the more artistic among you, the graphics can easily be made with all the legally bought graphics editor software you own ... right? Some possibilities are:

            
Displaying these bitmaps should be almost as easy as drawing filled rectangles.

Perhaps even better would be simple animations! A burning ship would be cool. For this just use several (maybe 4 or 5) slightly different fire bitmaps and display them one after the other. Use timers, use threads, use whatever you feel is best!

Another obvious area of improvement would be sound effects. Even the addition of one sound, perhaps for a 'miss' would greatly add to the completeness of your project. Again, small .wav sounds (exactly like the one played in the very first lab assignment) can easily be found or made for this simple project.

5.2 Chat Client

What's the difference between sending MSG_TORPEDO packets and plain text? Ughmm. Nothing actually! We have left all message IDs 100 and above open for experimentation. This means that you can set up a simple chat window control within your main battleship window and use something like:

	char messageId = 100;
	...
	send messageId across the network
	send text across the network
So you have a way to send packets and you have a structured way of displaying text (your log window). And a simple edit control will do just fine for text input. What else do you really need to implement a simple text based client? And do not be afraid to colorize those log messages or chat messages as well.


Prev Home
Implementation