Home
Name Modified Size InfoDownloads / Week
v1.50 2013-10-31
v1.42 2013-03-17
v1.41 2013-03-13
v1.4 2013-03-13
v1.3 2013-03-12
v1.21 2013-03-11
v1.0 2013-03-10
v1.1 2013-03-10
v1.2 2013-03-10
README 2013-10-31 4.5 kB
Totals: 10 Items   4.5 kB 0
JS Worm v1.50

This is a clone of the classic Unix game 'Worm', originally distributed with
Berkeley Software Distribution (BSD) Unix in the 1980s.

Worm is originally by Michael Toy of UC Santa Cruz, and this clone by me, Joshua
Braun, is released under an MIT Open Source License and dedicated to Alex Braun.

This version of Worm, while faithful to the classic, is a clone rather than a
port of the original code—mostly because I figured it'd be more fun to reverse
engineer the game than to rework the original source.

The "Modern Terminal Emulator" backdrop is a public domain image from
Wikmedia Commons.


RELEASE NOTES

v1.50

Rewrote the code for clearing the board between frames to make it more
efficient, improving performance of the game while the board is maximized.

Added a state variable for the game version number, allowing easier updating
of the version information.

Updated the jQuery link to point to the latest version hosted by Google.

Added a dedication to the 'About' information.

Fixed a minor typo in the 'Instructions' section, which said that the game
score appeared in the upper left corner of the game board. The score actually
appears in the upper right. This typo came from the original BSD game
instructions (the score also appears at the upper right in the Unix game).

v1.42
Fixed a bug wherein the program failed to generate prizes with the value 9 or
plot prizes at coordinates that included the maximum X or Y values on the board.

v1.41

Optimized performance, alleviating sluggish response times that cropped up
in v1.4.

Removed the 'Original' option in the navigation menu to reduce menu clutter.

v1.4

Added the user option to 'maximize' the game board (i.e., resize it to fit the
browser window).

Improved the look of the ENCOM OS theme.

v1.3

Substantial cleanup and simplification of the program code. Consolidated and
removed unnecessary functions, state variables, etc.

Documented code from beginning to end to make it as comprehensible as possible.

Fixed a bug wherein the H, J, K, and L (Shift-h, Shift-j, Shift-k, Shift-l)
keybindings, which are intended to advance the worm multiple spaces at once,
would only advance the worm a single space after the first prize had been
claimed.

Fixed a bug that appeared, not in the first game played after the page had
loaded, but in subsequent games, wherein the mouse controls would advance the
worm multiple spaces at once rather than the expected one space.

v1.21

Fixed a bug wherein the worm continued to move after the game had ended when the
final play was called using H, J, K or L.

Fixed a bug wherein some text items failed to collapse when the player made a
move.

Began simplification and cleanup of code.

v1.2

Added keyboard shortcuts to allow users to select items from the navigation
menu using the Alt key, plus the underlined letter in the title of the
navigation item.

v1.1

Fixed a rare bug where the user could potentially run into a phantom trail left
after the worm had passed.

Added instructions tab to the navigation options.

Added support for the HJKL (shift-h, shift-j, shift-k, shift-l) keys from the
original worm game. These allow the player to move multiple spaces at once.

Added mouse controls. These should also give limited support for play on
mobile devices.

Added some IDs and classes to the HTML to simplify CSS and jQuery selectors.

v1.0

Original JS Worm goodness.


LICENSE INFORMATION

The MIT License (MIT)

Copyright (c) 2013 Joshua Braun

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Source: README, updated 2013-10-31