home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Season's Greetings & Games Unlimited
/
UGOLD_cd2.iso
/
mancala
/
mancala.doc
< prev
next >
Wrap
Text File
|
1994-10-23
|
20KB
|
407 lines
┌─────────────────────────────────────────────────────────────┐
│ __ __ ___ _ _ ____ ___ _ ___ │
│ | \/ | / _ \ | \ | | / ___| / _ \ | | / _ \ │
│ | |\/| | | |_| | | \| | | | | |_| | | | | |_| | │
│ | | | | | _ | | |\ | | |___ | _ | | |___ | _ | │
│ |_| |_| |_| |_| |_| \_| \____| |_| |_| |_____| |_| |_| │
│ │
├─────────────────────────────────────────────────────────────┤
│ (C) Copyright 1990-1994, RCSOFT Written by Renier Crause │
╘═════════════════════════════════════════════════════════════╛
┌─────────────────────────┐
│ Introduction │
╘═════════════════════════╛
Mancala is often called the national game of Africa. I've never seen
a computer implementation, of this simple, but brilliant game, so I've
decided to write one myself. It seems fit that someone from Africa
should write an implementation of an African game.
Mancala has very simple rules, and each turn only has one of six
possible moves, but still the it requires quite a bit of skill and
foresight to realize what the consequences of each move will be. It
is not for nothing that Mancala is sometimes called African Chess.
┌─────────────────────────┐
│ Requirements │
╘═════════════════════════╛
This program requires the following:
■ MS-DOS 3.x of higher
■ 286 or higher CPU
■ VGA/MCGA Adapter with Color Monitor.
■ Mouse with driver loaded.
┌─────────────────────────┐
│ The Rules │
╘═════════════════════════╛
Mancala is not really a game on its own, but more a collection of over
two hundred games, all linked to the same fundamental rules.
Essentially Mancala is a two-player board game. The board consits of
two rows of cups, six cups on each side, and several playing pieces,
usually called seeds or stones. The board is then divided into two
halves along the length of the board. Player 1 in the computer
version always playes the bottom side and Player two the top cups.
Each Player also has a home cup which contains the pieces he has
captured. The home cup for Player 1 is at the right end of the board,
and Player 2 at the left.
This computer version of Mancala, implements 3 different variations of
play: ■ Awari
■ Ayo
■ Oware
In all these variations, play is based on the principal of sowing.
Sowing is done by taking up all the stones in any of your cups, and
then distributing these stones in an anti-clockwise direction around
the board, starting with the cup adjacent to the cup to be sowed from.
You must drop excatly one stone in each cup, and no cups may be
skipped from this sowing procedure. When the end of your cups are
reached you keep on sowing in an anti-clockwise direction, by
continuing on your opponents side. In Awari the sowing also includes
the home cups, but not in Ayo or Oware. Note that you may only start
sowing from any of the cups on your own side.
Because the game is based on where the last stone of a sowing lands,
my implementation as an optional guide, which will highlite the cup
the last stone will land. Because it is sometimes difficult to
distinguish the stones in a cup, the right mouse button will also
indicate how many stones there are in any cup. The total number of
stones in the home cups, are continuesly displayed at the bottom of
the home cup.
All three variations start with four stones in each cup, and none in
the home cups. Player 1 starts the first game, and the the loser of
the previous game gets to start the next. It does have a small
advantage to start, especially in Awari.
The purpose of the game is to capture as many stones as possible, the
player with the most stones, in the end, wins the game.
Play continues until all the stones on either side of the board are
depleted. Since there are only 48 stones in total, any player who has
25 or more stones naturally wins, and the game is ended.
┌─────────────────────────┐
│ Awari │
╘═════════════════════════╛
Awari is the simplest and easiest of the variations, and should be
learned first.
In Awari you can capture stones on any side of the board by sowing,
and droppping your last stone an empty cup directly opposite the the
stones you want to capture. Thus, for example, if your last stone
lands in your last cup, which is empty, you will capture all the
stones in your opponents first cup, which is directly opposite the
empty cup. This last stone of the sowing is also caputured. Note
that any number of stones can be captured in a single sowing. If your
last stone lands in a non-empty cup, you caputure no stones. Either
way, your turn is over, and your opponent plays, by sowing from any of
his cups.
As sowing in Awari includes the home cups, your last stone can land in
a home cup. If your last stone lands in your own home cup, you get
another turn. Thus if you have, for example, only one stone in your
last cup, and decide to sow it, this stone will land in the home cup,
and you get another turn.
┌─────────────────────────┐
│ Ayo │
╘═════════════════════════╛
Ayo is a little bit more skillful than Awari, but easier than Oware.
The rules are still simple though. Ayo is actually the most
satisfying of the rules for me.
Sowing doesn't include the home cups.
To capture your opponent's pieces, your last stone of a sowing must
land in a cup at the opposite side of the board, which contains either
1 or 2 stones, (2 or 3 after sowing). You then capture these 2 or 3
stones, and they are placed in your home cup. The capture is also
recursive of nature. That is, if the penultimate cup, after sowing,
also contains 2 or 3 stones, then these stones are also captured, and
the same for the cup before it, and before it, etc. This must be in
running order from the last cup, thus if the penultimate cups has four
stones, the cup before it is not captured.
Note that stones can only be captured on the opponent's side of the
board, not on your own side. Thus you shoud try to protect the stones
on your side, by not leaving one or two stones in a cup. Empty cups,
or cups with more than 2 stones are safe.
┌─────────────────────────┐
│ Oware │
╘═════════════════════════╛
Oware is the most difficult of the variations implemented, and I would
strongly advise that you first master Awari and Ayo before playing
Oware.
Again sowing excludes the home cups.
To capture stones, your last stone of a sowing must land in a cup
that contains excatly 3 stones (4 after sowing). The last cup can be
on either side of the board. If your last stone captures, or lands in
an empty cup, it marks the end of your turn, and your opponent sows
next.
If your last stone of a sowing lands in a cup containing 1,2 or more
than 3 stones, you take up these stones in the last cup, and continue
sowing leaving that cup empty. This keeps on going until your last
stone lands in an empty cup, or a cup containing 3 stones.
While you are sowing, if you ever sow a stone into a cup containing
exactly three stones, the player on whose side these stones are, can
take them, and place them in his own home cup, except of course for
the last stone, where the player who sowed gets the stones,
independently of the side it's on.
┌─────────────────────────┐
│ The controls │
╘═════════════════════════╛
The entire game is controlled with mouse. In all buttons the first
letter of the text on the button will also activate it.
The game will start with a title screen. Press any key, or a mouse
button to continue to the menu screen. On the menu screen you can
select the variation of the game you want to play by clicking with the
left mouse button on the name of the variation. The X-mark next to
the name shows the currently selected variation.
Clicking on the Exit button (or pressing Escape) will exit to DOS.
The Help button will display a window with a short summary of the
rules of each variation. Click on the small button in the top-left
corner of the help window to close the window.
The Options button will display a dialog box with options for:
■ Number of Players (1 or 2)
One player will mean you against the computer. In two player mode
two humans can play, by swapping the mouse between them.
■ Guide (on or off)
This turns the highlight guide, which shows you where your last
stone wil land, on or off. The guide is especially useful for
beginners, but even to advanced players it's still faster and
easier to play with the guide on.
■ Sound (on or off)
Mancala does have some simple digitized sounds, which can be played
through the SoundBlaster card, or through the PC-Speaker if no
SoundBlaster is detected. This switch can turn these sounds off.
Note that the /N command-line option, will disable all sounds.
Press the Start button to continue into playing area. The board will
be displayed together with a info box at the bottom and a pull-down
menu at the top.
The info box at the bottom contains the following:
■ A globe
The lit globe shows whose turn it is. The other player's globe
will be dark.
■ Accumulative score
For each player this will show how many games he has won, since
the last time you were at the menu screen. Note that the
accumulative score is reset to zero each time you return to the
menu screen.
■ Player type icon
The icon at the right of each player's info box just indicate if
it's a human player or a computer player.
The pull-down menu at the top left of the screen can be activated my
clicking with any mouse button on the menu button, and then holding
in the button, and releasing at the desired option. The pull-down
menu offer the following controls:
■ TakeBack
This will take back the last move made. Note that only your
last move can be taken back, and not any number of moves.
This option can also be ativated by pressing 'T' anytime.
■ Resign
If you see that there is no way of winning this particuar game
you can resign, and your opponent's accumulative score will be
increased. A new game can then be started.
This option can also be ativated by pressing 'R' anytime.
■ Hint
This is for those moments when you just don't know what the best
move will be. The computer will generate the best move, it
thinks, for you and then it will place your mouse cursor in the
cup that it recommends. You can then just click if you want to
play the hint move. The hints are based on the same strategy
that the computer uses to play it's side.
This option can also be ativated by pressing 'H' anytime.
■ Quit
This will return you to the menu screen. Note that the
accumulative scores will also be reset.
This option can also be ativated by pressing 'Q' or Escape anytime.
To play the game, you can use the left mouse button in the cup you
want to sow. The right mouse button will display the number of stones
in that cup. Note that you can just move the mouse cursor into a cup,
and the guide will be displayed, highlighting where the last stone of
a sowing from this cup will land. The guide can be turn off from the
options dialog box in the menu screen.
When the game ends, a dialog box will appear showing the scores. The
winner's name will be indented. You will then be asked if you want to
play another game.
┌─────────────────────────┐
│ Command line options │
╘═════════════════════════╛
Usage: MANCALA [options]
/N - No Sound effects
All sounds are disabled. The sound files will still be loaded
and the sounds can be re-enabled with the sound switch in the
options dialog box.
/S - Use PC-Speaker even if SoundBlaster detected
Use this option, if you have a SoundBlaster but want to here
how it sound on the PC-Speaker, or if the SoundBlaster doesn't
work correctly. This option will force that no SoundBlaster
detection routine is run.
/A### - SoundBlaster PORT to use (in hex) ex. /A220
Specify the BaseIO port to use for the SoundBlaster. If none
specified, then Mancala will first check for your BLASTER
environment setting, and if this is missing it will
autodetect. If autodetect fails it will default to 220h.
/I# - SoundBlaster IRQ to use ex. /I7
Specify IRQ value for SB. If not specified the game will
first check for BLASTER enviromenment variable, if that fails
it will default to 7.
┌─────────────────────────┐
│ History │
╘═════════════════════════╛
History of all released versions. Versions not mentioned were not
released to the public.
v1.0 94-10 First version released.
┌─────────────────────────┐
│ Other RC-SOFT products │
╘═════════════════════════╛
Some other creations by me, Renier Crause, which should be available
where you found this program. All these programs should also be
available for FTP, on site "ftp.sun.ac.za" directory "/pub/msdos/za"
DDIR - Replacement for the dos "dir" command, with many more
options, including 4DOS descriptions and extended wildcards,
like in Unix. Uses colors to display different filetypes in
different colors.
Newest Version: 9.3
Filename: RCDIR930.ZIP
DDEL - Deletes entire subdirectory trees. More options and more
powerful than Deltree. Also shows how much space will be
freed.
Newest Version: 2.7
Filename: RCDEL270.ZIP
RCCOPY - A nice interface, to select files and then copy these files
onto diskettes, filling each upto brim, by seach for a file
until a file is found that will fit onto the floppy. Gives a
constant display of statistics while copying.
Newest Version: 3.1
Filename: RCCOPY31.ZIP
DARTS - Darts game with VGA graphics, and a mouse. Different darts
games like 301,501,Killer and N.J.M ar supported. All games
are played with the mosue, which isn't as stable as it
usually is. Upto 4 players can play, or you can test your
skills against the computer.
Newest Version: 4.01
Filename: DARTS401.ZIP
SPUZZLE - Sliding puzzle game that works on VESA compatible SuperVGA
cards. Uses Sound Blaster or PC-Speaker for sound.
Strategy game that isn't as easy as it looks.
Requires 1Meg SVGA or 512k SVGA with 512k XMS free.
Newest Version: 1.25
Filename: SPZLE125.ZIP
MANCALA - A computer implementation of the very popular Afican board
game called Mancala. Uses nice VGA/MCGA graphics and a
mouse to control. SoundBlaster of PC-Speaker supported.
All rules are included, so beginners can learn the game.
This game is often called African Chess.
Newest version: 1.0
Filename: MANCLA10.ZIP
If you have eMail access, and you can't get any of the above programs,
feel free to contact me, and I'll send it to you. (eMail only)
Please Note that the Newest Version mentioned above is the newset when
this files was written, so newer versions may appear later, since I'm
always updating my programs, and thus filenmaes may also change to
show the newer version number.
┌─────────────────────────┐
│ License and copyright │
╘═════════════════════════╛
Mancala 1.0 (C) Copyright 1994 RC-SOFT, All rights reserved!
Written by Renier Crause.
This program is copyrighted by me, Renier Crause. That doesn't mean
you shouldn't copy this program, in fact I order you to give this
program to every living person you know (it would of course help, if
the person you give it to, owns a PC). No, this copyright means you may
not change my program, or disassemble it without my permission. This
program is NOT freeware.
This program is copyrighted under the Shareware concept. It is not free
software, it is rather is look first, pay later scheme. You may freely
copy this software (providing you include all files, including this
document) and I actually ask you to show or give this program to everyone
you see (heck, I've said that before so maybe it's important!). If you
find this program good (or likeable at least) and you continue to use it
after 30 days, you are required to send me R50 (or $25). Please send
International Postal Orders, since cashing a foreign, personal check
here is a pain, and exspensive. If you do send a check, then you are
required to pay $30. See below for my address. After paying, you will
become a registered user, and maybe receive free or low-cost
information and updates, (nothing guaranteed). eMail users WILL
receive updates and information, as long as I have access to the
internet.
Other credits must go to:
■ Barry Naujok for his excellent BNGUI unit which provides graphic
routines for VGA/SVGA, for use in Pascal.
■ Ethan Brodsky for his SBDSP unit which provided the code to play
the simple sounds through the SoundBlaster.
┌─────────────────────────┐
│ How to contact me │
╘═════════════════════════╛
I would prefer you to contact me through eMail. My internet address
is:
s9147659@rkw-lan.cs.up.ac.za
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Yes you read correctly I'm from South-Africa, and we can actually program
here (well some of us anyway). If you don't have access to internet eMail
(shame on you) you can also reach me at:
R.G. Crause
P.O. Box 38141
Garsfontein X10
0042 PRETORIA
South-Africa
All money should also be sent to the above sMail address.
PLEASE contact me if you have any comments, suggestions, wish lists,
bug reports, hate mail etc. I'll answer all meaningful eMail, and
even some meaningless ones. Sorry I can't answer any snail mail
comments, but I can sure act on any suggestions you mailed to me.
If you decide to register please tell me what your system looks like,
you know stuff like which CPU, which graphics etc. And please include
what you thought of this program. (Also include the VERSION number please)
My eMail address would probably only be available until the end of 1994,
but please still sMail me your eMail address, and maybe I can contact you.
---------------------------------------------------------------------------
Renier.
(written on October 24, 1994)
----------------------------------ooOoo------------------------------------