Introduction
============
This is another implementation of the well known game. Don't expect anything
fancy, with awsome graphics and impressive sounds; my main concern was to
write portable code that could be compiled on any machine, with minimal changes.
Initially I wrote the game on the Unix BSD 4.3 operating system...I just
recompiled it with Mark Williams C on my ST.
The Gameplay
============
For those who have never played master-mind let me say a few words.
Master-Mind requires a lot of thinking, logical deductions and luck.
The player is called to guess (in 10 turns max) a 5-symbol pattern generated
by the computer.
After each guess the computer gives some hints, in the form of two symbols:
* means that the guess contains a correct symbol which is placed at
the correct position.
# means that the guess contains a correct symbol but it is misplaced
Examples:
--------
1. Hidden Pattern: ebhhg
Guess : agaah
Hints : ##
(the guessing pattern contains 2 misplaced symbols: h and g.
so the computer displays 2 sharp signs (##), one for each
misplaced symbol)
2. Hidden Pattern: ebhhg
Guess : gdhde
Hints : *##
(the guessing pattern contains three correct symbols: g, h and e.
the symbol e is placed correctly, so the computer displays a star
refering to that symbol. The symbols g and h are misplaced so
the computer displays two sharp signs, one for each misplaced symbol
So the hint pattern for that particular guess is *##)
3. Hidden Pattern: ebhhg
Guess : ggggg
Hints : *
(*** EXCEPTION ? ***
-------------------
Here we have an "exception" to the rules. "Normaly" the above
guessing pattern should lead to the following hint pattern: *####
meaning that the guess contains 5 correct symbols, with only one
of them placed correctly (the last g) and the rest being misplaced.
Well the above way of thinking is WRONG, and the reason is very
simple:
the hint pattern *#### gives the impression that the player has
found all the symbols of the hidden pattern, and he only needs
to rearrange them in order to construct the hidden pattern.
Obviously this is not the case. He has only found ONE symbol of
the hidden pattern, which is placed correctly in the pattern.
That's why the program displays only ONE star (*), refering to the
last g in the hidden pattern.)
** IMPORTANT POINTS **
----------------------
- Keep in mind that the order of the symbols in the hint-pattern has nothing
to do with the order of the symbols in the guessing pattern. (i.e. if there
is a star in the second place in the hint-pattern, it does not necessarily
mean that the 2nd symbol in the guessing pattern is the same with the 2nd
symbol in the hidden pattern)
- When displaying hints, the program displays the stars (*) first, and
then the sharp signs (#).
- If the hint-pattern is empty, then the hidden and the guessing pattern
have NO symbols in common
The Implementation
==================
When launched, the program displays the table of high scorers, and asks for
the name of the player. Just type in your name and hit (or ).
Now you should be in the main screen of the game. At the top left of the
screen there is the name of the last player along with his score. Just below
that there is the name of the current player. The meaning of the hint symbols
appears at the top right portion of the screen.
The rest of the screen is arranged in tabular form with the following headers
for each column (from left to right):
- SCORE : your current score. The formula for calculating the score is:
score = score - 100 * (number of turn) + 5 * (number of stars)
+ 3 * (number of sharps)
Of course high score indicates high performance.
- PATTERN : the guessing pattern you just entered. If instead of
a valid pattern you see: xxxxx, then you have made a
mistake. To see what that mistake was, just type r in
the input column. (see below)
- HINTS : the hint-pattern generated by the computer
- This column is used for INPUTing the guessing pattern.
o You can type your guess in either upper or lower case.
o If the column under the header PATTERN contains 5 x's (xxxxx)
you can type here the character 'r' (no quotes) in order to
figure out what went wrong.
o When things get confusing you can quit prematurely by typing
'quit' or just 'q' (no quotes)
When either the hidden pattern has been found or 10 turns have been completed
the program asks the player if it is supposed to run again. The valid reponses
are:
- y (yes) : the program asks for a new name and starts over again
- n (no) : exit to the desktop
- a (again): start again using the name of the current player
Epilogue & Disclaimer
=====================
Super Master Mind is in the Public Domain, which means that you can do
whatever you want with it, except from using it for making profit. It also means
that I don't take any reasponsibility for any damages the usage of the program
may cause to your system. _Use_it_at_your_own_risk_.
Since I include the source code, I will not bother to fix bugs (I haven't
found any so far). Of course you can always try to convince me to fix a bug
for you.
Although I don't demand it, I would appreciate it if you mention my name when
you distribute an enhanced version of the game (which will be based on my code)
Lastly, I would like to ask from anyone who may enhance the game to send me a
copy so we can all play the same game.
Well, this is it folks, have fun.
-------------------------------------------------------------------------------
NEW REALEASE
-------------------------------------------------------------------------------
Available now....
A T Z E N T A ver 2 . 0 0, the complete Phone/Address + Calendar program
for the ST computer series. ATZENTA is an outstanding application that helps
you organize and keep track of the records of all your friends,customers,etc.
Its powerful features include:
- up to 4 different files on screen
- records are displayed inside GEM windows
- easy access to any record with just a keypress
- 10 different sorting options
- auto dial the telephone number of any record (local & long distance)
- copy/move records from one file to another
- merge 2 files to 1
- output filtered lists of records to the screen, printer or ASCII files
...plus a lot more
It comes with a complete C A L E N D A R inspired from the unix program 'cal'
Featuring:
- american and european date format
- memos for any day in the present month
- calculate the difference between any two dates
- search operation for any string in all memos
- print calendars for any year or month
...plus a lot more
A demo version of the program has been posted to Usenet; you should also be
able to find it at any BBS in the Boston area. ATZENTA ver 2.00 is Shareware
with suggested registration fee $15 (US).
For more information, or a free (usable) demo of the program
call : (617) 787-1648
e-mail : CSCRZCC@BUACCA.bu.edu
or post: Harry Karayiannis
15 N. Beacon, #316
Allston, MA 02134
U.S.A.
(please include a self addressed envelope)
If you decide to purchase the program and want to speed things up, you can
deposit $15 (US) directly into my bank account:
Haralabos Karayiannis
National Bank of Boston
Kenmore Sq. Branch
Checking account number: 912-35792
(please write your name and address in the comments-field)
-------------------------------------------------------------------------------