Cross The River - Chris Howard Stone (ZX Computing-Aug/Sep 84) One day, a farmer was carrying a bag of corn home, accompanied by a hen and a wolf, when he came to a river. After a while the farmer found he could wade across the river carrying either the corn bag, the hen or the wolf. He then realised that if the hen and the corn were left together without his supervision, the hen would eat the corn. He also realised that if the wolf and hen were left unsupervised, the wolf would eat the hen. How did the farmer solve his problem? The farmer can be made to carry one article across the river by pressing W (to transfer the wolf), H (to transfer the hen) or C (to transfer the corn bag). Remember that an article can only be transferred across the river if it is on the same bank as the farmer. THE PROGRAM Each graphic representation (farmer, corn bag, hen, wolf) is made up of four user-defined graphics characters. The procedure for defining these characters consists of lines 10 to 332. Lines 400 to 450 draw the bank and the river. Each character is given a numerical variable which is either 1 or -1 according to which bank they are on. This variable is then used to print the characters on the appropriate side of the bank. The subroutine beginning at line 1000 ensures that any mistakes (e.g. wolf eats hen) are spotted and acts accordingly. If a mistake has been made, the player is informed and the game starts again. Line 1000 checks to see whether the puzzle has been successfully completed and, if this is the case, prints a message of congratulation. Line 520 gets a key-press from the keyboard and checks to see if it is either H, C, W or F (upper or lower case). No other input is permitted. Having verified that the key-press is O.K., lines 545 to 557 check whether the move is O.K. No illegal moves (e.g. pressing H when farmer and hen are on opposite banks) are allowed. Assuming all is well, lines 580 to 620 erase the present image of the characters to be moved, and also that of the farmer as he is always moved from bank to bank whether he carried something with him or not. When a character crosses the river, its assigned variable changes sign and this is accomplished via lines 630 and 550 to 570. [What an incredibly tedious UDG setup routine! ] [About ten times as long as it needs to be. JimG ] ------------------------------------------------------------------------------ TYPE: Thinker Comment: This info file was typed by Jim Grimwood Downloaded from: Desert Island Disks -- http://www.image.dk/~frankie/ Maintained by: Michael Bruhn -- frankie@image.dk