home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
513.lha
/
LordOfHosts
/
Lord_Of_Hosts.doc.pp
/
Lord_Of_Hosts.doc
Wrap
Text File
|
1991-06-07
|
15KB
|
308 lines
***************************************
** LORD OF HOSTS **
** ============= **
***************************************
** © April 1991 Tim Pietzcker **
***************************************
WHAT IS "LORD OF HOSTS" ?
=========================
Lord Of Hosts (from now on referred to as "Lord") is a strategy game for two
players. It's played on a 8x8 board. Each player controls seven knights and
one king. The goal of the game is to manoeuvre the opponent's king into a
situation in which he can no longer move, i.e. to checkmate him. Another way
of winning the game is to capture six of the opponent's knights.
ONE THING THAT SHOULD BE MENTIONED FIRST
========================================
I've made extensive use of CygnusSoft's "req.library" in this program. So, in
order to be able to start Lord_Of_Hosts, you need the req.library in your LIBS:
directory. I've included the req.library (V1.4) in this distribution. Just
execute the supplied script file Install_ReqLib (either from a Shell or from
the WorkBench) before the first time you run "Lord" if you don't already use
this library yourself.
DISCLAIMER AND COPYRIGHT NOTES
==============================
This program is supplied as is without representation or warranty of any kind,
either expressed or implied. I won't take any responsibility for any damage
that might be caused through the use (or better, misuse) of this program.
Lord Of Hosts is NOT public domain! It is Copyright © 1991 Tim Pietzcker. ALL
RIGHTS RESERVED. However, these files may be freely copied for a SMALL nominal
fee providing they remain together and in their original form. (a small fee is
LESS than seven dollars. I pay no more than 1,50 DM (about $1) for a public
domain disk. If you pay more, it's your own problem.) Lord Of Hosts may be
distributed in the Fred Fish series. Distribution in ANY other series requires
written permission from the author (see my address at the bottom of this file).
(And Mr. Stefan O. from Essen, Germany shouldn't even try to get it.)
***********************************
*Don't support PD software piracy!*
***********************************
RULES
=====
The rules are fairly simple. On each piece, there's a number indicating how
many squares this piece HAS GOT TO move. After the move, a different number
may appear on this piece. The pieces may move only horizontally or vertically,
*NOT* diagonally. One right-angle turn per move is permitted. For example,
one piece bearing the number 3 that is standing in the middle of the board may
- move 3 squares up
- move 1 square down and 2 to the left
- move 2 squares to the right and 1 square up
- etc.
There are only a few restrictions: Firstly, a piece cannot jump over any other
piece. Then, it's not possible to go forwards and backwards in one single
move. There is also a situation in which an otherwise legal move will not be
permitted: When a player's king is threatened by an enemy's piece ("CHECK !"),
only moves that lead the king out of this threat are valid. It's just like in
chess. Similarly, if a player attempts to move his king to a square on which
he could be beaten, or if he tries to do a move that exposes his king to
danger, he will not be able to do so.
Any piece can capture an enemy's knight simply by moving onto the square that
the knight is occupying. Remember that this is a way of winning the game:
beat six knights and victory is yours.
The idea of check and checkmate is directly taken from chess. So, if you
manage to create a situation that leaves the opponent's king no escape, you win
the game. Of course, the computer will tell you so if this happens.
As soon as one player does a move after which his opponent's king is beatable,
a message is displayed "Player x announces 'CHECK!'". As long as it doesn't
also say "Player y's King is checkmated!", there is at least one valid move for
player y left.
Well, that's about all for the rules. There also is a menu option "Rules" to be
found in the "Game" menu (keyboard shortcut RIGHT-AMIGA-?).
ONE WORD ABOUT THE MOUSE POINTER
================================
Since this is a mouse-controlled two player game, I had to find a way to give
both players a chance to move the mouse pointer (one after the other, of
course). Since fewest Amiga users have got two mice, I decided to have player
1 take the mouse and to have player 2 take a joystick. After player 1 has
finished his move, the mouse will be switched off internally and player 2's
joystick will become the new "mouse mover". So don't panic if the system seems
to have crashed (a motionless mouse pointer IS a frightening thing, I admit);
just give your joystick a little nudge and watch the pointer float majestically
over the screen (I'm getting carried away with this, sorry). The joystick's
fire button will act just like the mouse's select button (the left one, okay?).
Unfortunately, joysticks don't have menu buttons yet, so if you really have to
make a menu selection while the joystick is controlling the pointer, you have
to depress RIGHT-Alt-RIGHT-AMIGA to simulate the menu button.
If you don't like the JoyMouse's speed, you can change it by selecting "Set
JoyMouse Speed" (Special Menu), keyboard shortcut AMIGA-J. And if you don't
like the idea of mouse/joystick swapping, you can turn the whole thing off by
selecting "JoyMouse Off" (also Special Menu).
And if you don't have a joystick or if you are a fanatic keyboard addict, you
can still use the keyboard to move the mouse pointer (left AMIGA key plus
cursor keys [plus optional SHIFT key]).
HOW TO PLAY LORD OF HOSTS
=========================
This is really easy. First, select "Begin Game" (Game Menu). You will be
asked to enter your and your opponent's names. After you've done so, the
computer consults his random number generator to decide who starts the game.
Click on "Resume". You can always see whose turn it is by looking at the two
boxes containing the players' names. The words "Player 1" turn blue when it's
player 1's move. The same applies to player 2.
Player 1 gets the red pieces; player 2 gets the white ones.
Let's suppose player 1 starts the game. He should now choose the piece that he
wants to move. This is done as follows:
- move the mouse pointer over the piece
- click the left mouse button (or the joystick fire button).
A box will be drawn around this piece to show that it's the active one. Player
1 can now either change the active piece by clicking on a different piece of
his or select the piece's destination square (also by clicking on it). If
there is a valid way to move the active piece there, the move will be executed,
and player 2 will now get control over the mouse pointer. That's it.
AND NOW FOR ALL THE EXTRAS
==========================
The Amiga is an extraordinary computer. Therefore a game for the Amiga must
have extraordinary features. And here they are:
* Full Undo/Redo. Take back as many moves as you want and/or replay them.
* Three different help modes for each player.
* Load/Save Game facility. All the Undo/Redo information will also be saved.
* Four different kinds of boards - Infinite variability => Every game is
different from the last one.
* On-line help facility.
Detailed description of the extras
==================================
UNDO / REDO (Special Menu):
Selecting Undo (shortcut: AMIGA-U) takes back the last move. Selecting it
again takes back the move before that one. And so on. The limit to the
number of undo opeations is 500. In other words, a game that last over 501
moves can not be undone upto the first move. However, this limit is so high
that I doubt whether anyone can reach it in a normal game.
Redo (shortcut: AMIGA-R) does just the opposite: The last move that has
been undone is "played back". This can only work if no new moves have been
made since the last undo operation.
LOAD / SAVE GAME (Game Menu):
Selecting Load Game (AMIGA-L) will bring up the CygnusSoft File Requester
which is the best one that I've ever seen (I didn't program it, Bruce Dawson
and Colin Fox did)! On the left side, the files and subdirectories within
the current directory are displayed. On the right side there is the list of
all mounted devices (DF0:, RAM:, RAD:, C:, LIBS:, etc.) There's a Parent
gadget to get you one level up in the directory tree and some other rather
self- explanatory things. Select a game file by double clicking on it. If
a directory is changed by a different program, "Lord" will not be aware of
it until you reload that directory using the "Get Dir" gadget.
Saving a game is just as easy: Select "Save Game" (AMIGA-S), change to the
desired directory and enter the filename under which the game should be
saved. If the file already exists, you will be asked to confirm whether you
really want to write over the old file. Remember that the old contents of a
file are lost when it's overwritten.
HELP MODES:
Normally, none of the players receives any help from the computer. However,
it might be desirable to find out what value a certain piece will have after
a move. On the standard board, it is possible to deduce this value (I won't
tell you how, haha!), but if you want to get a hint anyway, you can instruct
the computer either
- to show you the new value if the piece has visited this square before
(i.e., it "knows" this square's value) or
- to show you the new value in any case, regardless of whether the piece
has been there before or not.
This works as follows: In the Special Menu, there are two menu items,
"Player 1 Help Mode" and "Player 2 Help Mode". Choose between "No Help",
"Show Known Values", and "Show All Values". If you choose one of the
"Show..." subitems, the way to move a piece will change:
- Select the piece you want to move.
- Select the destination square.
If the move is valid, the piece will move there. If you selected "Show
Known Values" and the value is not known, a question mark will be dis-
played. Otherwise, the new value will be displayed. Now the words
"Player 1/2" will change from blue to yellow. This indicates that the
computer is now waiting for you to confirm or to cancel the move. You
can now
- confirm the move by clicking again on the destination square. If there
was a question mark, it will be replaced by the new value.
- Alternatively, you can cancel the move by clicking on any other square
but the destination square. The move will be taken back, allowing to
select a new destination or even a different piece to move with.
DIFFERENT BOARD TYPES:
"Lord" is based on a board game. On this board, the pieces' values are
determined by little magnets hidden under the board. This leads to a
regular pattern of values (that you can find out by reading the program's
source code or simply by playing the game (if you're smart enough)). This
board is simulated by "Lord". It's called the Standard Board. If this
board is rotated by 90°, the patterns change. There's a menu called "Board"
in which you can change the type of board. The two items "Standard Board"
and "Standard Rotated 90°" have just been explained.
Since the generation of (pseudo) random numbers is possible, you can also
select a "Random Board". Random Boards come in two flavors:
- Balanced: When generating the random value patterns, the computer ensures
that the values are distributed evenly. So, each knight gets exactly 16
squares where his value will be 1, 16x2, 16x3 and 16x4. The kings gets
32 squares of 1s and 32 squares of 2s.
- Unbalanced: The computer doesn't force himself to distribute the values
evenly. Thus it is possible that p.e. one piece has a value of 4 on every
single square (but highly improbable [1 against 3.4028e38]).
ON-LINE-HELP:
There's a menu item "Rules" (mentioned earlier).
Also, the item "Explain Invalid Move" (Special Menu, AMIGA-E) will tell you
why the last unsuccessful attempt to move had failed.
THAT'S IT !
===========
Exit "Lord" by selecting "Quit" (Game Menu, AMIGA-Q). Hope you enjoyed it!
ABOUT THE REQ.LIBRARY
=====================
Quoted from the Req.library doc file:
"Req.library was written by Colin Fox (of Pyramyd Designs) an Bruce Dawson (of
CygnusSoft Software). Req.library is a freely distributable library [...].
Req.library is not public domain. The requester library and all documentation
and example programs are all copyright 1989."
I only included the files necessary to compile "Lord". In order to get all the
files plus docs etc. buy Fred Fish's disk #419. Better yet, buy CygnusEd
Professional.
REQUESTER KEYBOARD SHORTCUTS
============================
Instead of using the mouse to answer the requesters, you can also type 'y' or
'v' as a shortcut to a "Resume" or "Ok" gadget; ESC, 'n', 'b' or 'q' as a
shortcut to a "Cancel" or "Next Page" gadget; and finally 'm' as a shortcut to
the "Prev Page" gadget.
PROGRAMMER INFO
===============
Lord Of Hosts was developed on an AMIGA 2000A (Kickstart 1.3, 3.5MByte RAM).
It works with Kick 1.2. However, I've had no chance to find out whether it
works with Kick 2.0. Don't know why it shouldn't.
All the files necessary to compile Lord_Of_Hosts (Aztec C V5.0) are included in
this release. Start up your C environment, CD to the directory containing the
source codes and enter 'Make Lord'.
I have modified the req.h and reqglue.o files (supplied with CEDPro) in order
for them to work with Aztec C 5.0.
Lord Of Hosts has been tested on several different machines without any error
showing up. If something doesn't work on your Amiga, please let me know,
telling me everything about your system configuration and the error.
I don't think it would be difficult to port Lord Of Hosts to Lattice C.
However, I haven't tried yet.
CREDITS
=======
Many thanks are due to:
- Bruce Dawson and Colin Fox for the req.library
- CygnusSoft for CEDPro, the best editor for the Amiga.
If you are a programmer and haven't bought CEDPro yet, DO IT!
- Manx for Aztec C 5.0 and the source level debugger (Guru go home!)
- Dan Silva for DPaint that I used to design the game's graphics
- Kevin Bjorke for NewGetImage (Demo Version 1.3) that translated the DPaint
brushes into C structures
- My brothers, Jan & Ulf for beta testing all the bugs out of this game
(knock on wood)
MY ADDRESS
==========
Send all comments, suggestions, bug reports, dollar bills and accelerator
boards to:
Tim Pietzcker
Schwarzwaldstr. 52
W-7819 Denzlingen
Germany