|
|
Line 1: |
Line 1: |
| == Origin ==
| |
|
| |
|
| So, while I was scripting my Checkers board I had to incorporate an algorithm for arranging the pieces in a zig-zag pattern. As many of you already (but for those that don't, here you are), a checkers board is much like Quadrant-1 in a coordinate plane system. Which means in order to create this zig-zag effect, one has to construct as sequence like so: (0, 0), (1, 1), (2, 0), (3, 1), etc. And instead of using static, or hardcoded, values, I created a script that creates this sequence for me. Brace yourself, there is Trigonometry involved.
| |
|
| |
| == The Script ==
| |
|
| |
| <lsl>
| |
| ZigZag(integer max)
| |
| {
| |
| list sequence;
| |
| integer x;
| |
| for(; x <= max; ++x)
| |
| {
| |
| integer y = llCeil(llSin((x+1) * PI));
| |
| sequence += llList2CSV([x, y]);
| |
| sequence += "\n";
| |
| }
| |
| llSetText((string) sequence, <1, 1, 1>, 1); // The text is only necessary for debug-purposes.
| |
| }
| |
| default
| |
| {
| |
| state_entry() {
| |
| ZigZag(8);
| |
| }
| |
| }
| |
| </lsl>
| |