Flat Cube - Colin Young (Your Spectrum-No 3-Page 105) This is one of those frustrating puzzles, in much the same vein as Rubik's Cube. At the start of play, you are presented with a blank 20 by 20 grid. You have the choice of nine levels of difficulty, level one being the easiest and level nine being almost as bad as the original 'cubist' problem. Once you have made your choice, the computer starts to fill in areas of the board - by choosing one square at random, inverting it, and then inverting its eight surrounding neighbours (ie. to the north, east, west and south, and the permutations in- between). Consequently, if any of the blocks the computer is dealing with is already inverted, then the overlapping portion is returned to normal. The number of inversions made is related to the level of play you indicate - which means if you pick level nine, you have one heck of a mess on your hands! To play the game, you must type in the coordinates of the central square of the nine block square you wish to invert. Screen coordinates should be typed in with the letter denoting the column first followed by the number of the row. (Don't worry too much about getting it wrong though - it's been thoughtfully error-trapped for the unwary!) If you experiment a little, you will begin to see that, by cautiously re-arranging the grid, the overall screen can be returned to its original blank splendour; of course, you could always play the game the other way round and try to fill the complete grid with black squares, but you would have to re-write a lot of the published listing - not a task for the nervous at heart! A good tip for playing the game is to try and get all the inverted blocks towards the edge of the screen and then blast them out. Try having a go on the lowest level, just to get an idea of how the game operates, before attempting the more difficult stages. Luck is definitely not the name of this game - but you'll need a good deal of patience! Lines 5-8 Set the Caps Lock and the 'number of goes' counter, and then initialise the screen attributes. Lines 10-21 Contain the subroutine to print the title page. Lines 22-26 Check to see if instructions are required and, if so, jump to the 'instructions' routine. Lines 30-50 Draw the title page and prompt the user to input the difficulty level required. The value input, di, is then multiplied by 10, and this new value is the minimum number of goes needed to solve the puzzle. Lines 70-90 Draw the blank playing grid, setting the screen flags to show that there are no inverted characters on the screen. The playing area is then set to play, with all the necessary character inversions for the required level. Lines 100-170 Main loop. This area of the program increases the 'number of turns' counter, gets the users input and checks for its validity. Line 140 converts the user's input to x and y coordinates, and line 160 checks to see if the puzzle has been completed. Lines 1000-1050 Print the initial blank playing grid. Lines 2000-2105 This long routine inverts the screen surrounding and including the position you have chosen (x,y). Each square is inverted individually. (This routine is not the best written we have seen - in fact, it might be well worth your time employing a loop to try and shorten it.) Lines 2110-3050 Contain the 'scramble' routine, used by the computer at the start of each game to invert the nine-square blocks di times (di being the value you input for the level of difficulty). Lines 5000-5070 When the puzzle is completed, the 'completion' routine tells you how many 'goes' it took you and offers you another game. You will also get a message of congratulations - which on level nine, does your ego no end of good! Lines 5999-6110 Print out the instructions should you have requested them (see lines 22-26). ------------------------------------------------------------------------------ TYPE: Boardgame 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