TinySnake Readme
Benjamin Strahs
bstrahs@optonline.net
12/29/03 8:45 AM
=======================
Files in Distribution
=======================
-TinySnake.prc
-Source
-Snake.c
-Snake.h
-Readme.txt (this file)
=======================
License
=======================
TinySnake is freeware and may be distributed without charge. Any commercial distribution
must first obtain written approval. The same terms apply to the source code.
Share and enjoy!
=======================
Installation
=======================
-Minimum requirements: In order to run TinySnake needs 1k of memory (940 bytes) and
Palm OS 1.0 or above.
-Copy TinySnake.prc to your Palm using your favorite install tool. To run, simply tap
on the TinySnake icon. To uninstall delete TinySnake.prc.
=======================
Game Instructions
=======================
TinySnake is a rendition of the venerable game Snake. The goal is to eat the apples
(small circles) while avoiding crashing into yourself and the walls. The Datebook and
Address buttons turn the snake left, the Todo and Memo buttons turn the snake right,
while the up and down buttons move the snake up and down. Good luck and have fun!
=======================
Game Details
=======================
TinySnake was written on a plane ride to Egypt and was a creation of many hours of
sitting in the same small seat with only my trusty Palm IIIx for entertainment.
I chose Snake because my first attempts at animation and movement were at a simple
clone of Snake. TinySnake, as the name suggests is currently the smallest game
for the Palm OS platform weighing in at only 940 bytes (the actual code is only 740
bytes however the icon takes up the rest of the space). It is compatible with ALL
versions of the Palm OS, from 1.0 to 5.2. The original framework was written completely
on a Palm IIIx using the OnboardC toolset. Once I got home, I ported it to PRC Tools
for better compiler optimization.
=======================
Technical Details
=======================
In order to make TinySnake as small as possible I used two strategies. First I removed
the default startup code provided by PRC Tools and the PilotMain routine. I replaced
this with a custom optimized version. The second strategy was to store all of the game
data in the screen. While most Snake games store an array of the board and test each
element for a crash or an eaten apple, I merely drew the Snake to the screen, and used
WinGetPixel() to test for crashes or an apple. Another advantage was that WinGetPixel()
will return a constant if the points passed to it are not on the screen so it was easy
to test if the Snake left the bounds of the board. By polling the screen I avoided large
arrays.
=======================
About Me
=======================
I am a 16 year old resident of New Jersey whose hobby is programming. I have worked with
many different platforms and systems, including the Palm. I started programming for the
Palm when I was 12 and have since branched out into shareware and freelanced for
companies around the globe. If you have any questions or comments, please send them to
bstrahs@optonline.net.