Ivor Sturgess gives you the opportunity to devise the strategy which will bring peace to war-torn Europe THIS is a strategy game for one or two players which simulates a war in Europe. It only works on the CPC 664 and CPC 6128. It will not work on a CPC 464 unless you have fitted a ROM other than V1.0. In the one player mode, you (Red) play against the computer (Black). The game is played on a 26 by 19 grid, and the object is to occupy all your opponent's squares. Each square has an alphabetical grid reference. When asked for your target square, enter the horizontal and then vertical reference. So to occupy Northern England you would type EF return. Certain squares contain hidden resources, and you are awarded points if you occupy one of these. (Mineral resources =10, Industry =15, and oil fields =20). Resources are consumed as you move. Moving to a square next to one you occupy uses one move, attacking an opponent uses two, an airboure operation three and an airborne attack on an opponent's square four moves. The number of moves you get each turn is determined by the amount of resources you have. 0-24 one move, 25-45 two moves, 50 - 74 three, 75 - 99 four and so on. Normally moves are made to squares next to the ones you already occupy, but you can launch an airborne attack on any square. This takes three moves - four if the square is occupied. Four neutral countries on the map have the ability to defend themselves. If one is attacked its army will join the opponent's side. To save a game, when asked for your target square enter the word SAVE then press any key after inserting the disc. You can only load a saved game at the start up screen. Computer logic At first glance this section of the program may seem a bit messy. This is because, in order to keep the running time to a minimum, it has been written in a sub-routine within sub-routine format. By using this method, decisions are made instantly, or within 3 seconds, in 99 per cent of cases However, under extreme conditions, it may take up to a minute for the machine to decide on its next move. To limit the number of moves the computer will make on each campaign, line 1960 decrements the variable stp by 1 and checks if its value has reached 0. If it has, stp is reset to 30 and the sub-routine starting at line 2240 is called. This sub-routine selects a number 0-9 at random. If this number is between 0 and 7 a 16 move campaign is selected from the data statements on lines 2470-2540 and the coordinates stored in the variables tx and ty. If the random number is 8 or 9, a 4 x 4 block of squares is selected at random and stored in the same way. Lines 2400- 2430 ensure that if the machine is winning at least one of the squares is occupied by player 2. Lines 2000-2230 then make the appropriate moves using the values stored in tx and ty. In addition to this, if player 2 is outnumbered by 10 to 1 or more, lines 2440-2460 select a "move in and finish him off" campaign. Line 1980 will cause the computer to consider a retreat to Iceland if it is outnumbered by 2 to 1, and Line 1970 will bring about a full scale retreat to a far corner of the map if the machine is losing and has the resources to do so. PROGRAM BREAKDOWN 10-16 Dimension arrays and display the title screen 70-140 Reads the screen addresses from the data statements in lines 1460-1740 and draws the map 150-160 Store the state of occupation of each square on the map at the beginning of the game into array occ using the data from lines 1750-1930 170-250 Randomises the position of resources at the beginning of the game and store this in array resorc 260-370 Set the state of the program ready to begin the game. 380-570 The main game loop. It checks who's turn it is. receives the player's instructions, checks if the move is valid, and acts on it accordingly 580-610 Sub-routine to receive all keyboard instructions and convert them into upper case 620-660 Display the updated scores to the right of the map 670-710 Alter the variable occ to the current player's number after a successful operation, and plots the player's colour on to that square 720-780 Check if any resources have been won, and if so increment the variable res by the appropriate number 790-1000 Check the variable occ for a value 36. If this is so then a neutral territory is under attack and you are asked if you wish to invade. If you answer yes the variable occ is changed to 7 (unoccupied), an extra army plotted and allocated to your opponent, and the move is continued 1010-1100 Decide the outcome of a battle, and act accordingly 1110-1280 Check if the target square is next to an occupied square. If not an airborne operation is offered and. if accepted, carried out 1290-1330 Line 410 checks if either player has lost the game at the beginning of each move. If so, this routine ends the game and runs the program again if a new game is selected 1340-1390 Saves all variables onto a datafile (file name WARDATA) 1400-1440 Load WARDATA if continue saved game is selected next time the program is run 1450-1740 Data statements containing the screen addresses to plot the map coastlines 1750-1930 Data statements containing the initial occupation of each square
- 0 = Sea
- 1 = Player 1
- 2 = Player 2
- 3 = Polish territory
- 4 = Russian territory
- 5 = Spanish territory
- 6 = Turkish territory
- 7 = Unoccupied square
1940-2540 The Computer's move in the one-player game, dealt with by the section computer logicACU #8802 |