Alpha version of a dopewars client

This is an alpha version of a dopewars client. It's out here so that the brave can help test it, and so that Windows users know that there will be an easier way to get to dopewars in the future.

The user interface is a slightly tweaked version of the framework I used to test the rest of the program. If you're not comfortable using an ugly, inconsistent, and just plain flaky interface - then you probably shouldn't bother with this. Rewriting this to something that looks more like the real dopewars interface is the next thing on my list.

Your mission, should you decide to accept it, is to install the software and try playing it.

Installation

To install this, first you need to install Python for your platform. Python is the interpreted (like Visual Basic) cross-platform (unlike Visual Basic) programming language that this client is written in. Then you need to download the archive. Running this python script will create the python scripts that are the dopewars client. How you run it will depend on your Python platform, but usually something like python dopewars at a command prompt will do the trick.

Running the client

After you've done that, you can run the client by running the python script runme. This script is very short, and should be edited to change your defaults. The full form is:

User('Name').Run('hostname', port)

Name - if present - will be the initial name the client sends to the server. The hostname and port must be present, and are the host name and port number of the server to connect to. Those provided are for my server, of course.

Note that the single quotes in the example are crucial. If you don't have them in place, it won't work.

Using the client

You issue commands by typing a character followed by the Enter key. The prompt will sometimes indicate what keys you can enter, in the same way that dopewars does. Questions are one exception to that, and are answered by either a Y or a N.

The other exception is the prompt of the game date. At that point, the commands are B, S, G, T, P, J or Q with the same meanings as they have in the standard client. However, unlike the standard client, you MUST press enter for them to take effect. The system will then prompt you as needed.

The one extra command is the I command, for Inventory. If you give that command, the client will list all the things that are normally always displayed on the dopewars screen. This is also the only command that accepts more than just the first character - you can type the name of any thing in the inventory, and it will list just that item, or just those if you listed more than one.

When the prompt is the date, the client will be accepting messages from the server. This can cause messages to be printed, and then the prompt should be reprinted. Don't be surprised if it happens to you.

Dealing with errors

Any problems you encounter - in particular, Python exceptions, and reports of unfinished packet types, need to be reported back to me with as much detail as possible. In particular, the set of actions you took in the game to cause the problem will be of particular importance. Any complaints, problems or recommendations about the user interface should not be sent to me!

Python exceptions indicated a programming error of some kind. They look like this:

Traceback (innermost last):
  File "<stdin>", line 1, in ?
  File "par.py", line 31
    string.replace(my.Text, '"""',
         ^
SyntaxError: invalid syntax

Starting with traceback, ending with an error indicator, and some unknown number of File & line indicators. The text should be mailed to me along with the commands that caused it. Copying and pasting it into the mail is fine.

Unfinished packet warnings indicate that I've managed to not deal with some part of the game, and look like this:

Trying to process for unfished class: 
Objects Data is Y

There may be multiple lines in the Objects Data output. Again, you should copy all of those lines, and as many prior commands as possible, and mail them to me.

GUI Version

Finally, if there's a Tkinter guru thinking about doing a GUI interface, please drop me some mail first - the internal interfaces are going to change!


Mike W. Meyer