This tutorial is based on the game Palisaro,
written by edA-qa mort-ora-y. You can see more games
at http://disemia.com/games/. First
download the tutorial. The source code for the tutorial
itself is in the WallDetect.hx file in the 'package/tutorial' subdirectory. The code is written in
haXe, a language that can compile to the flash swf format.
To run the code, simply type in the path to the WallDetect.swf file into your browser,
e.g. file://c:/palisaro_wall_demo/package/WallDetect.swf. You can find this file
in the 'package' directory of the tutorial. If you wish to make changes and play around with
the source, you'll first have to install haXe. Once that's installed,
to compile the source, open a command line prompt and type: haxe tutorial/WallDetect.hxml from
the 'package' directory. This will regenerate the WallDetect.swf file.
The Basics
In this tutorial we will explore the algorithm and code that identifies when a player completes walls around
previously open areas. What are walls and areas? In the game itself, the goal is to surround areas
containing towers with walls within the time allowed. The larger one makes the surrounded areas the
better, since that allows for placement of more canons. However, any unfinished walls are removed when the
time is up so in the game there is a tradeoff between making the largest walls possible and
finishing smaller walls more quickly. The interactive demo below has been simplied
from the actual game. There are no towers. Instead when you surround an area of land with wall elements,
the squares inside the surrounded area become partially filled with a different color. Green squares represent
land and blue squares represent water. When you click on a land square, it will turn into a wall element.
You can remove the wall element by clicking on the same square again. You can also turn a square into water
by clicking on it while holding down the Ctrl key. The code in this tutorial highlights properly surrounded
areas with different colors. There is a slight difference between the 4 seed and 8 seed modes. In 4 seed mode,
walls don't need to have corners filled in to be considered complete. In 8 seed mode, corners have to be
completed as well.