TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T A TTTTTTTTTTTT A CCCCC K K SSSSSSS A A T T A A C K K S S A A T T A A C KK SS AAAAAAA T T AAAAAAA C K K SSS A A T T A A C K K SS A A T T A A CCCCC K K S SS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS Modeled after the arcade game called Ataxx, it's a new strategy game for the Amiga world. I'm pretty sure I have all the kinks worked out. Hope you all like it. But what you all want to know is how to play. HOW TO PLAY ----------- Attacks is a strategy game played by two, one, or no players on a seven by seven grid. Some of the squares of the grid are empty, some have barriers, and some are occupied by either of the two playing sides. A move is accomplished by selecting a piece of your color (indicated by the color of the mouse), dragging it to an empty location, and then releasing the mouse button. This should be a maneuver that you are all very familiar with. If not, I suggest reading the manual that came with your Amiga, unless you've thrown it out already. An empty square is simply a square that is not occupied by a block square (shaded dark grey) or a circular piece of either color. Simply put, an empty square is drawn as a plain light grey square. There are two types of moves: GROW and JUMP. If the destination square is adjacent to the starting square of a move, then the move is a GROW. In this CASE, a new piece of the player's color is put in the destination square. A JUMP is when the move goes two squares away from the starting square. Here, the piece is removed from its original location and placed in the destination square. These are the only allowable moves. You cannot move more than two spaces away. IMPORTANT! The results of a move are what makes Attacks the game that it is. Every opposing piece that is adjacent to the destination of a move (be it a GROW or a JUMP) is changed to the color of the player that made the move. You'll probably notice that this changes the face of the game dramatically. Also, if you're trying to save precious memory by skimping on the stack, think again. This program needs about 10000 bytes of stack space to run properly in every mode. So go ahead and beef up your stack. Your mom would be proud of you. WINNING ------- The winner is simply the person with the most squares occupied with their color at the end of the game. The game is concluded when either all the empty squares are filled or only one color is remaining. MENU OPTIONS ------------ Like most things, this program has options. There is most everything that I wanted implemented, but the menus may not be crystal clear upon first glance. So here are the gory details about what they do (at least what they are supposed to do). Like similar keyboard shortcuts on other programs, using the right Amiga button in conjunction with the letter indicated in the menu selection will allow you to do the menu selection with the keyboard only. Only the indicated menu selections have shortcuts. Project It seems like every program has a menu column labeled ------- "Project". So why shouldn't I? New Game -------- This tells the program that you are done with the current game. The program responds by drawing a new board randomly selected from an internal list and setting up a new game. Edit Board ---------- So, you don't like the boards that I have, hunh? Well, here's your chance to go ahead and make the perfect setup for yourself. Interestingly, the game changes dramatically with different board setups. Experiment to your heart's desire. During editing, the menus change. This new menu strip is explained later in the Editing section. About ----- This is the obligatory self-glorification part of the program. It'll show you an address where I can be reached in case you win the lottery and care to share your wealth. Simply click the left mouse button to continue on your merry way. Quit ---- If you don't know what this means, you probably don't know how to turn your computer on either. Commands In trouble? or just curious about what's happening? Check -------- out this menu column. Important: whenever you Backup or Redo, the program disables the computer's ability to make moves. This is done so that you can take your time while looking at the effects of the help functions. Once you make a move with your mouse or force the computer to move, the computer will assume that you are done with the help and will continue to play as usual. Backup A Move ------------- When this menu item is selected, the game reverts to the previous state. That is (in most cases) the last move is undone, and it is now the previous player's turn to move. This can be done all the way back to the beginning of the game, but not back to previous games. Redo A Move ----------- You backed up a move, but change your mind? No problem. Attacks remembers not only all the moves you made in the past, but also all the moves you made in the future, if that makes any sense. What it means is that moves that were backed up may also be replayed. However, if you back up some moves and then start playing, you no longer have those moves that you backed up. Aaah, it's really easier to do than it is to explain. Just fool around with these two options until you get the feel of it. Incidentally, it is often instructive to Backup and then Redo an entire game. Force Computer to move ---------------------- This allows you to let the computer take over for just this one turn. It also tells the program that you are through backing up and redoing moves. Please note that if you back up some moves and then choose this option, you will no longer be able to "Redo" the moves you backed up. Options These are the parameters that you can modify to affect ------- how the game is played. Note that when a new game is started, the settings in this menu column are not changed. Red is Human <- Default Red is Computer Blue is Human Blue is Computer <- Default ---------------- These tell Attacks how many players you want. The sides which aren't played by humans (who must all use the regular mouse--yep, you have to share) are automatically tackled by the computer. The check marks indicate what the current settings are. The default is Red (who usually plays first) is Human, and Blue is played by the Computer. Since most people who have computers are lonely geeks who aren't too bright, I figured that this is the most popular configuation. (Moving first is typically, but not always an advantage.) Tries to Lose Easy Kinda' Good <- Default Good Very Good ----------- Here you find the difficulty level at which the computer will play. The first one means that the computer will play to lose (but it's not terribly bright about it). The other settings are pretty explanatory, but you should know that the brighter the computer gets, the longer it takes to think through its moves. The levels beyond Very Good take so long that I have not even bothered to allow them as options. As you know, the difficulty is a combinatoric explosion, or Order(n!). WHILE THE COMPUTER IS THINKING ------------------------------ Well, your options are limited. All you really can do is abort the computer's thinking. It then stops playing, allowing you to move for it, back up and redo, and of course you can always force the computer to move again. This is a life-saver if you set the game to the bizarre setting of computer vs. computer and they are both playing to lose. At the lower levels, the computer generally moves so fast that you won't have time to access the menus, but it's here and it works nevertheless. EDITING ------- So, you want to venture out and play god with my program, eh? Great! I was hoping you'd get the nerve to try it. The cursor should help you figure out which kind of square you are currently building. to change a square, simply click with the left mouse button while the mouse is above the square to change. The Square menu column allows you to change the current square type. You options are an empty square, a block square, and a square occupied by the red player or a blue player. While in the Edit mode, the menu bar changes. Here are the descriptions of the new menu selections. One final note: while in the Edit mode, you cannot access any of the regular menu selections. in other words, the "hot keys" don't work when editing. Project Exactly what does "Project" mean anyway? ------- Exit Edit Mode -------------- Does what it says it does. Play resumes as normal on the board as it looks when this item is selected. Player This allows you to change whose turn it is to move. The ------ checkmark and the message above the playfield indicate who is currently about to play. Red to move Blue to move ------------ Build Here you can change which kind of square you are making. ----- The menu shows a check mark and the mouse cursor alters to display which kind of square has been selected. To then alter the board, simply click on the desired location. Empty <- Default. Makes an empty location. Block Draws an impassable block. Red Puts a red player at the location. Blue Same for blue. ----- Major As it turns out, there are some useful editing features ----- that are a pain to do. This provides some shortcuts and an easy way for you to change your mind. Cancel All ---------- Ahh, isn't life easier when you can so simply change your mind? Selecting this menu option reverts the board to exactly the way it was when you started editing. All Empty --------- Not particularly intuitive, but I was running out of space in the menus. What this does is it clears the entire board, making every space an empty space. This is very useful for creating a brand new board to play on. All Blocks ---------- Similar to All Empty, this makes every square on the board a block square. I find this menu selection surprisingly useful. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Okay, here's the boring stuff. You should be thankful that I put it way back at the end so you don't have to wade through this muck like you do in most documentations. First, and most importantly, this program is public domain. It's my gift to you the Amiga community. I don't care if the source code is distributed or not, since most people don't want it anyway. But if you'd like to see the code for whatever reason and don't have it with your copy of the program, drop me a note. I can be found at locations listed at the end of this document. It'd be damn shitty if someone decided to charge $$ for this program. It's FREE! Get it? I'd prefer if public domain distributors and bulletin boards wouldn't charge anything for distributing this software, but I really shouldn't complain about very minor fees to recoup media costs (but I don't have to like it though). Next, I'd like to thank Chris Mlsna for doing all the grunt work for the menus. Jennifer Comeau should also be given a big hug for putting up with me while I've been working on this big waste of time. This program took me about a hundred hours or so to do. It was programmed in Modula-2, using the Benchmark compiler by Leon Frenkel (Avant Garde Software). I use an Amiga 500 with a hard drive and some extra memory. I also run just about everything in Workbench 1.2 using various versions of the Amiga Replacement Project (ARP) that I find lying around. I don't access anything in any funny ways, so there should be no compatability problems, but who knows? I'll be damned if I'm gonna stick my neck out and say it's guaranteed to work on every machine in the world. If there are some bugs that you've just gotta have fixed, or if your just want to correspond, or if YOU'VE GOT A JOB TO OFFER, I can be reached at the following locations: biggs@cs.utexas.edu 6313 Walnut Hills Austin, TX 78723 Wallingford Electronics BBS (512) 452-0955 I'm user number 39 Well, that's about it. Maybe we'll run into each other. Maybe not. So it goes. Scott Biggs aka Mighty Dog