home *** CD-ROM | disk | FTP | other *** search
- #! rnews 70436
- Path: van-bc!ubc-vision!uw-beaver!cornell!rochester!seismo!rutgers!clyde!watmath!utgpu!utfyzx!sq!hobie
- From: hobie@sq.uucp (Hobie Orris)
- Newsgroups: comp.sys.amiga
- Subject: Amiga Ogre (Part 2/2)
- Message-ID: <1987Feb22.121205.9387@sq.uucp>
- Date: 22 Feb 87 17:12:05 GMT
- Reply-To: hobie@sq.uucp (Hobie Orris)
- Organization: SoftQuad Inc., Toronto
- Lines: 3124
- Checksum: 01662
-
- # Amiga Ogre Part 2: The source
- # This file contains:
- # README
- # linkfile - Alink WITH file
- # ogre.h ext.h
- # termcap.c initround.c main.c init.c help.c map.c move.c
- # attack.c resolve.c ogrecom.c ogrestat.c
- : To unbundle, sh this file
- echo x - README 1>&2
- cat >README <<'@@@End of README'
-
- This file describes the programs comprising the Ogre game, and
- instructions for making it. For instructions on how to play it, read the
- file `Instructions'.
-
- Building the Ogre program:
-
- Compile the individual files, making sure that the compiler can find
- ext.h and ogre.h in the current directory.
-
- Link the files to form ogre by typing: 'lc:c/alink with linkfile',
- assuming your linker is on volume lc: and the modules to be linked
- are in the current directory.
-
- Type `ogre' to run the game, or use the icon.
-
- The Instructions menu will not work unless the Instructions file
- is on the volume `Ogre:'.
-
- The Files:
-
- ext.h - external variables such as the ogre and the friendly units.
- ogre.h - typedefs and defines of the global structures and constants.
- main.c - the main() routine.
- termcap.c - all console I/O routines for the Amiga.
- map.c - all the map handling routines for displaying units and craters,
- and stuff. Also contains the range calculating routine.
- attack.c - collect attack orders and display odds. Doesn't actually
- execute the attacks.
- init.c - initializes all the units and executes the initial deployment
- orders. A notable deviation from the original program is that
- I used the K&R shell sort, where the original used the Unix
- qsort(), for which I had no source.
- initround.c - does the initializations required every game turn, such
- as updating hexes, calculating ranges to the ogre and more.
- move.c - does the player's movements.
- ogrecom.c - the routines behind the ogre's "strategy". See below.
- ogrestat.c - handles the status display at the bottom of the screen.
- resolve.c - resolve all attacks and rammings.
-
- The Ogre's Strategy
-
- Movement: Weights are assigned to all the directions in which the
- ogre can move. The primary consideration is the distance
- to the CP; in the absence of other factors the Ogre will
- take the fastest route to it. However, it will crush any
- unit it can (best attacker first) and moves towards units
- that are in range of its missiles and batteries. It tries
- to weight so that dangerous, immobile units (howitzers)
- are attacked first.
-
- Fire: The basic strategy here is to fire at the next unit in
- range. Since the units are sorted by value, this will
- usually resuly in reasonable choices for targets, although
- the Ogre tends to overkill.
-
-
- Suggested improvements:
- -----------------------
-
- Some things you may like to add to the game are additional units. The
- following are units from the game GEV:
-
- Mobile Howitzer (6/6 M1 D2)
-
- Ogre Mark IV
- ------------
-
- Main Batteries: 1 (4/3 D4)
- Missile Racks: 3 (D4) Each contains 5 missiles and can be
- attacked instead of the missiles themselves
- Missiles: 15 (6/5) Only one missile per rack can be fired per
- turn
- Secondary Bats: 2 (3/2 D3)
- Anti-personnel: 8 (1/1 D1)
- Treads: 60 These treads are in groups of 4 instead of
- 3. The initial movement is 4, and is
- reduced by 1 per 15 treads destroyed.
-
- -----------------------------------------------------------------------------
-
- Any comments, suggestions or enhancements are welcome.
-
- Hobie Orris
- 9 Ferrier Ave.
- Toronto, Ont.,
- M4K 3H5
-
-
-
-