Aim
[ facets | news || art | calc | stories | lego | me || links ]
[ CALC || aim | pics | skins ]
Aim! by Tavis Segura

Aim is a tank-shooting game in which your player (or team of players) selects a power and angle in order to hit your opponents. There is currently only one weapon, but its size and behavior can be adjusted in the setup, which is saved in a list named 'set'. The list 'set' is generated by Aim when you save your favorite setup, but it isn't required to run the game. You could just run the game on its defaults, if you prefer to conserve your calculator's memory.

 Features       \__
----------------/__\
Aim has many features including:
 How to play    \__
----------------/__\
This is just another Scorched Earth-style game in which you are out to destroy all the other tanks until there is only one of your tanks (or none) remain. You control your projectile's initial speed and angle (where 0 degrees is straight up) in order to hit your target.

The program starts in the setup toolbar, where you can customize your game to suit your moods or tastes.There are three dialog boxes for the many options in the configure menu, organized by player, firing options, and terrain. These affect gameplay and speed.

Press "Game: Start" for a new game. Alternatively, you can skip your startup toolbar altogether by creating a file named bypass". It doesn't matter what it is: a macro, data, expression, whatever. If it exists, and the setup is valid, the toolbar is bypassed and goes straight to the start. Of course, you should save the setup list before using this feature.

The current graph is stored, and the program begins to generate the terrain. Once it is drawn, a popup will allow you to select a human or any of the installed computer players in playing order. If no computer players are installed, the popup is not shown. When you are done, the game will draw the tanks in sequential order. From then on, the play will cycle from left to right. An arrow near the top of the screen will indicate the current player's tank and respond to the controls below:

Quick reference: Keys
--------------------
F1                   Shows the Quick Reference dialogs

UP and DOWN          increase and decrease power
LEFT and RIGHT       adjust your angle left and right
Enter or Space       fires
ESC                  ends the round
[2nd]-QUIT           immediately exits the game

APPS                 invokes the aim dialog box
Clear or F4          redraws the screen, clearing out the dead tanks

p                    saves a screen shot as a pic (screen capture)
                     (active only in human controls or after firing)
[STO->]              saves a game (input an index name)
--------------------
 Variables      \__
----------------/__\
Aim is a stand-alone program. It does not require any other files in order to perform most of its features, but the addition of the other files enhances Aim's capabilities.

Included Files

Program-Generated Files User-Created Files All the variables used within Aim itself are local in order to minimize interference with any programs of variables you may already have on your calculator. Another special feature put in Aim is the ability to restore your graph image, that is, your functions, your window settings, your Format settings, and even your drawings! Although it will not harm your variables to press the [ON] button during the game, it is preferrable for you to exit the program normally. This way, Aim can restore your graph settings. For this reason, I recommend using the built-in exits for the program.
 Players        \__
----------------/__\
Aim accepts external functions as calculator-based strategies. Some examples of these strategies have been included in this version of Aim. I have provided a quick description of them for reference and to provide ideas for your own strategies. A strategy is installed when the name of the function is saved in the playlist. Aim uses this list to find strategy functions. The strategies currently available for Aim are described below:
 Developers    \__
---------------/__\
Aim computer players receive five parameters, namely, the data created by saving a game. The variables are as follows: Aim also asks the function for a name by sending it a 1 for each variable, i.e., filename(1,1,1,1,1). Simply testing the type of the first paremeter to see if it is not a list will be sufficient for Aim. The name entered here will be what appears in the select player type popup at the beginning of the game. I suggest adding credit information as comments in the heading of your function.

By referencing the playlist with the type number, such as with playlist[b[j,4]-1], you can obtain the name of any other installed player and even attempt to access it. The Thief strategy uses this trick to steal the strategies used by other players. A counter-strategy may check for the Thief's spoofing and then respond in its own favor.

For studying purposes, you may view the code for the computer players included with aim.

 History       \__
---------------/__\
* some older TI-92 versions of Aim require the pic war and the subroutine screen()
-Aim was created on the TI-85.-
Dec 94
 Only 1 player
 Bar controls
 Used pics for everything
Jan 95
 Added projectile equations
 Line-based terrain
Apr 95
 Added piecewise equation: Terra
May 95
 Added 2 sine-based functions:
  Terr2 and Terr3
 Used two players
 Bar controls for each player
Sep 95
 More sine terrains
 Added wind features
Feb 96
 Dot-angle controls
 Terrain generator
 Unlimited players
 Player data stored in a matrix
Apr 96
 Calculator memory lost
 Rewrote Aim
 Built-in setup
 QuickRefresh: Saved terrain as a pic
 Improved projectile calculations 

*Oct 96
 Rewrote Aim for the TI-92
 Altered scaling to fit screen
 Separate menu control system
 Added Setup
 Computer players
 Borders
 Tank patterns (10)
Sept 97
 Dual control design; [APPS]
Aug 97
 AutoRefresh added
 Screen capture; save as pics
Oct 97
 Added divots:
  QuickRefresh is now obsolete
Nov/Dec 97
 Moving turrets
 Digital controls
Jan 98
 Got a Graphlink!
 40 tank patterns
Feb 20, 1998
 Added wind
June 24, 1998
 Control help: Use F1 to view keyboard commands
 The tanks fall down terrain

1999-2000 (history fuzzy since the homepage was not online)
 Ported ti-85 version to TI-89
 Added some TI-92 features including patterns and new terrain generator
 Added some new calculator players

Feb 2001
 Rewrote much of Aim, ported TI-92 version to TI-89
 Animated falling tanks
 Moved Calculator player to an external function
 Added more external calculator players ported from TI-86 version of Aim
   Dummy - Picks a random power and angle
   Persistent - Like calc, but more stubborn
March/April 2001
 Working on external player SDK;
 Added new external players
   Direct - Relies on direct line-of-sight warfare
   Bouncer - Uses Rubber walls to bounce stuff off the ceiling
May 2001
 Porting for TI-92+; fixing miscellaneous cross-compatibility bugs
 Added two more external players
   Thief - Steals the strategies used by other tanks
   Bigot - Prefers targeting human players

Little was done to the code in the meantime; there was not much 
to fix and even less in terms of new things to add to it.
Much consideration was placed on the desire to make the interface
for user-created strategies to be easier, but little was done about it.

March 2003
 Improved error checking from dialog boxes; Now it handles the
  occasional accidental ALPHA locked text entry more gracefully.
  This became a problem after the newer AMS software automatically
  turned the ALPHA lock on in dialogs.
 Remedied a problem in which the angle controls were too sluggish
  by slowing down the inner getkey() loop. Very ironic.
April 2003
 Cleaned up program code somewhat; preparing for big rewrites
 Reduced program size by about 500; program now 9984 bytes on calc
 Credits       \__
---------------/__\
I wish to thank Wendell Hicken, the creator of the real Scorched Earth game for providing such a great game on which the concept for this one is based. Also, I must thank TI for providing me the wealth of information from their manuals about programming their calculators. I also wish to thank all my teachers who helped me achieve new things.