Автор: M.J. Edwards,Кащей Бессмертный
Год: 1985
Издатели: ZX Computing
Языки:
Английский
Формат:
TAP лента
Требования:
ZX Spectrum 16K
Ссылки:
Страница на ZXArt
Страница на Virtual TR-DOS
Страница на World Of Spectrum
Страница на Spectrum Computing
Скриншоты:
Год: 1985
Издатели: ZX Computing
Языки:
Формат:
Требования:
Ссылки:
Скриншоты:
AFRICAN SEEDS
-------------
by M.J.Edwards
from ZX Computing August/September 1985
Down in darkest Gwent something stirs. It's M.J.Edwards playing this brain
testing game!!!
AFRICAN SEEDS is based on the mancala games popular in Africa. The nature of
the games varies widely from place to place, but they are usually based on
capturing counters from rows of cells. The counters may be seeds, beans,
stones or twigs. The cells may be holes in the ground, cups, or hollows in
beautifully carved wooden game-boards. There may be two, three or four
players and either two or four rows of cells, and the way they are divided
between the players, and the conditions under which capture can occur, vary
according to whether the game is Awari, Ayo, Ba-Awa, Lontu-holo, Wari, Whyo,
or one of the four-rank mancala games. Wari and Awari are probably the most
profound in strategy, and are considered to be on a level with chess, but
other games are faster, with more dramatic changes in fortune.
The games are well suited for computer play. The element of calculation is
important, and computers can be programmed without too much difficulty to
beat humans. From the player�s point of view, it is much easier to type in a
letter on a computer keyboard, than to pick up maybe thirteen counters from
one cup and put them individually into another row of cups.
This program can be beaten � though at level 0 you�ll have to work rather
hard to do so. Sometimes you will see how to win easily, but a sequence of
lifts can continue for, say, twenty-five moves, and the computer is rather
better at keeping track of them than I am! Don�t lose heart, though, the
computer�s depth of search is deliberately limited � and even at its highest
level, it�s still capable of blunders just as big as yours.
At the start of the game, the computer tosses for first move. If you win, you
will be invited to enter a letter to denote the cup you want to lift. The
computer will take the seeds out, and sow them in successive cups in an
anti-clockwise direction. If the final seed of the lift falls into an
occupied cell, all the seeds in that cell are lifted and the sowing continues
as before. Otherwise, if the final seed lands in an empty hole � and the
sowing must continue until this is so � you capture the seeds in the hole
immediately opposite, if it is in your opponent's row, or none if it is in
your own row.
The only problem with making captures is that if you leave the computer with
no seeds to play, it will claim the win by forfeit. With that proviso, once
you have captured twenty-five or more seeds, the victory is yours.
The computer�s speed of response depends upon the level chosen, but is
reasonably fast anyway. Just in case you get bored, you are treated to a
display of flashing lights and bleeps (a feature lacking in the African
originals?). They are intended for more than diversion, though � they show
which moves are being made or considered. A steady blue light shows the cup
where a sequence of lifts ends. A flashing blue light shows where a capture
occurs.
The structure of the program is simple, and the table should make it easy to
modify. For example, if you leave out the instructions and some "special
effects", it ought to be possible to squeeze it all into a 16 K Spectrum. Or,
you might prefer to display integers, as in Lines 2325-2330, instead of the
pips in Lines 2301-2324. If you want to make the computer stronger, then you
could replace the part of Line 1150 after the INPUT with the simpler "GO TO
1300",and replace the "+20" in Line 1070 with "+50". Save the program with
(using whatever title you like) SAVE "AS" LINE 1000.
LINES FUNCTION SUBROUTINES CALLED
1000 Initialise Display
User-defined graphics
Instructions
Codes for print positions held in strings
1200 Computer's move End check
1300 Analysis and evaluation Move check and capture check
Display board
End check
1500 Player's move Make move
Tidy display
Display board
GO TO 1200 ELSE
END
Subroutines:
100 Lift and sow = Make or Check a move
200 Check for end of move and capture
300 Display board
400 Tidy display
500/600 Result = END
700 End of game check
2000 Display
2100 User-defined graphics
2160 Codes for letter positions
3000 Codes for seed positions
2400 Instructions
Variables used:
zx set to 1 for computer�s move
d depth of search
l level chosen
c stalemate counter
sc set to 1 to make a move, or set to 0 to evaluate the position
win number of points scored on a move
end set to one if a sequence of lifts reaches an end
op the cell opposite the end of a sequence of lifts
Arrays used:
b(12) board positions
h(12) model board fo analysis
m(12) move evaluation
s(2) the scores: s(1) is the computer's, and s(2) the player's
a$(12) column positions for letter display
x$(12) row positions for seed display
y$(12) column positions for seed display
Data and user-defined graphics:
Lines 2300-2324 consititute a "look-up" table which works much faster than a
user-defined function displays integers.
Graphics A to H represent the numbers 1 to 8.
Graphics I to L represent the corners of the cups in the order top right, top
left, bottom left, bottom right.
-------------
by M.J.Edwards
from ZX Computing August/September 1985
Down in darkest Gwent something stirs. It's M.J.Edwards playing this brain
testing game!!!
AFRICAN SEEDS is based on the mancala games popular in Africa. The nature of
the games varies widely from place to place, but they are usually based on
capturing counters from rows of cells. The counters may be seeds, beans,
stones or twigs. The cells may be holes in the ground, cups, or hollows in
beautifully carved wooden game-boards. There may be two, three or four
players and either two or four rows of cells, and the way they are divided
between the players, and the conditions under which capture can occur, vary
according to whether the game is Awari, Ayo, Ba-Awa, Lontu-holo, Wari, Whyo,
or one of the four-rank mancala games. Wari and Awari are probably the most
profound in strategy, and are considered to be on a level with chess, but
other games are faster, with more dramatic changes in fortune.
The games are well suited for computer play. The element of calculation is
important, and computers can be programmed without too much difficulty to
beat humans. From the player�s point of view, it is much easier to type in a
letter on a computer keyboard, than to pick up maybe thirteen counters from
one cup and put them individually into another row of cups.
This program can be beaten � though at level 0 you�ll have to work rather
hard to do so. Sometimes you will see how to win easily, but a sequence of
lifts can continue for, say, twenty-five moves, and the computer is rather
better at keeping track of them than I am! Don�t lose heart, though, the
computer�s depth of search is deliberately limited � and even at its highest
level, it�s still capable of blunders just as big as yours.
At the start of the game, the computer tosses for first move. If you win, you
will be invited to enter a letter to denote the cup you want to lift. The
computer will take the seeds out, and sow them in successive cups in an
anti-clockwise direction. If the final seed of the lift falls into an
occupied cell, all the seeds in that cell are lifted and the sowing continues
as before. Otherwise, if the final seed lands in an empty hole � and the
sowing must continue until this is so � you capture the seeds in the hole
immediately opposite, if it is in your opponent's row, or none if it is in
your own row.
The only problem with making captures is that if you leave the computer with
no seeds to play, it will claim the win by forfeit. With that proviso, once
you have captured twenty-five or more seeds, the victory is yours.
The computer�s speed of response depends upon the level chosen, but is
reasonably fast anyway. Just in case you get bored, you are treated to a
display of flashing lights and bleeps (a feature lacking in the African
originals?). They are intended for more than diversion, though � they show
which moves are being made or considered. A steady blue light shows the cup
where a sequence of lifts ends. A flashing blue light shows where a capture
occurs.
The structure of the program is simple, and the table should make it easy to
modify. For example, if you leave out the instructions and some "special
effects", it ought to be possible to squeeze it all into a 16 K Spectrum. Or,
you might prefer to display integers, as in Lines 2325-2330, instead of the
pips in Lines 2301-2324. If you want to make the computer stronger, then you
could replace the part of Line 1150 after the INPUT with the simpler "GO TO
1300",and replace the "+20" in Line 1070 with "+50". Save the program with
(using whatever title you like) SAVE "AS" LINE 1000.
LINES FUNCTION SUBROUTINES CALLED
1000 Initialise Display
User-defined graphics
Instructions
Codes for print positions held in strings
1200 Computer's move End check
1300 Analysis and evaluation Move check and capture check
Display board
End check
1500 Player's move Make move
Tidy display
Display board
GO TO 1200 ELSE
END
Subroutines:
100 Lift and sow = Make or Check a move
200 Check for end of move and capture
300 Display board
400 Tidy display
500/600 Result = END
700 End of game check
2000 Display
2100 User-defined graphics
2160 Codes for letter positions
3000 Codes for seed positions
2400 Instructions
Variables used:
zx set to 1 for computer�s move
d depth of search
l level chosen
c stalemate counter
sc set to 1 to make a move, or set to 0 to evaluate the position
win number of points scored on a move
end set to one if a sequence of lifts reaches an end
op the cell opposite the end of a sequence of lifts
Arrays used:
b(12) board positions
h(12) model board fo analysis
m(12) move evaluation
s(2) the scores: s(1) is the computer's, and s(2) the player's
a$(12) column positions for letter display
x$(12) row positions for seed display
y$(12) column positions for seed display
Data and user-defined graphics:
Lines 2300-2324 consititute a "look-up" table which works much faster than a
user-defined function displays integers.
Graphics A to H represent the numbers 1 to 8.
Graphics I to L represent the corners of the cups in the order top right, top
left, bottom left, bottom right.