Dancing fly formations explained

Everything about the various Boulder Dash tools, and other stuff created by the fans.

Moderator: Admin

User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Episode 14: Cassiopeia

In this episode we will examine a quite special DFF. It consists of 5 butterflies moving up-right. Although we already know some existing butterfly-formations moving in such a diagonal direction (Crawling-B4 and Glider-B5), this formation seems unrelated to these formations. In fact, the formation discussed in this episode is not built around a vortex. After the simple FnF and BnB, this is the first more complex DFF which is not based on a moving vortex.

The properties this formation are as follows:
- Name: Cassiopeia
- Composition: 5 BF
- Short loop: 7 phases
- Long loop: 42 phases
- Shift per short loop: 1 Up, 1 Right

This formation was named after the star constellation ‘Cassiopeia’ (thanks Dustin for this name suggestion). This is because in one of its phases the 5 butterflies are aligned in a W-shape, which is also the shape of the star constellation.

How does this formations work?

Below picture shows the 7 phases of Cassiopeia. Before reading on, take a moment to try the following exercise.

Exercise:
Look at phase 6 of the DFF. This is actually the phase which forms the W-shape. Can you derive a launch-method for this configuration of the 5 butterflies? In other words, can you find a method to bring 5 butterflies together such that this configuration is triggered and effectively a Cassiopeia-formation will be launched?
The answer will be provided later on in this article.

Image

As noted before, Cassiopeia is not built around a vortex, so the story will not involve any “dancing couples”. Does this mean that there are no drama and love-stories behind this formation? Well, there are, but in a different way.

Two “couples” can be distinguished: Red/Purple and Green/Yellow. However, instead of dancing in a vortex shape, the partners of each couple are just walking together. The Blue butterfly is a sneaky single, having an eye on the Purple fly.
Unfortunately for the couples, walking next to each other is a less stable form of “celebrating the partnership” than dancing in a vortex shape. In phase 2, Green and Yellow move apart. The same happens for Red and Purple in phase 4. Also Blue has also lost touch with Purple in phase 4.
In phase 6, Blue does a new attempt to get closer to Purple. He starts a vortex dance with Yellow. (So actually, there is a vortex, although it lasts for only two frames.) This action by Blue is successful because it forces Purple to move up through the vortex and start walking in front of Blue. In phase 7 and 1’, Green breaks the vortex, which has two effects. First, Yellow and Green are brought together again, but they swapped their roles. Second, the Blue/Yellow-vortex is broken so that Blue now walks next to Purple. The Red fly has taken over the role of the sneaky single.

Interesting to note is that the couple Green/Yellow makes similar movements in phase 1-6 as Red/Purple in phase 3-1’, due to interference of several other flies. The difference is that Green/Yellow become a walking couple again (thanks to the interference of Red), while Red loses his Purple partner to Blue.

Like various previous formations, also in Cassiopeia two role groups of different size exist. Green and Yellow (the strong couple) start and end walking together, but both change roles after each short loop. The other group is formed by Red, Purple and Blue. Red takes over the role of Blue, Blue the role of Purple, and Purple the role of Red.
From this it follows that it takes 6 short loops until all flies have returned to their original position within the formation. Therefore, the long loop takes 6*7 = 42 phases.

Why does this formation move up-right?

As this formation is not built around a vortex, it is not so easy to give a simple explanation for its moving direction.
On the other hand, it is also clearly visible that in most scenarios when a BF forces another BF to move forward, it moves either upwards or to the right. This is not very surprising, since due to the cave scanning order, a BF at the left or above another BF is scanned first and will move forward. Since butterflies turn clockwise, these scenarios give BF’s moving up or right.
In other words, up and right seem to be the “natural” directions of butterfly formations not build around a vortex.

How to launch this formation?

Earlier in this article I asked you to try to derive a launch method for phase 6 of the Cassiopeia formation. I will now describe how this phase could be triggered using 5 separate butterflies.

Step 1:
As you can see in phase 6, the Yellow and Blue butterflies form a vortex – a very short one, which exists for only two phases and in both phases other flies are present in their 2x2 square as well. Anyway, this is a vortex. The first step is therefore to create a vortex.

Step 2:
Next, the Purple and Green butterflies can be added from below when they form a horizontal “stack” moving upwards. Their timing when they touch the vortex should be such that Purple can enter the vortex while Green collides with one of the spinning BFs. Then, Purple will just move forward, while Green will pause for one frame (pointing to the left) and continue upwards the next frame. So Green will enter the vortex with one frame delay w.r.t. Purple. Thus, the second step is to send a horizontal stack of two butterflies to the vortex from below.

Step 3:
Finally, the Red fly needs to be added from above. With the correct timing, this is not that hard, however, it is required that Rockford quickly removes the dirt guiding this butterfly to the right side of the vortex, otherwise, the formation cannot move up. So, the third and last step for a Cassiopeia-launch is to bring a butterfly from above and remove the supporting dirt quickly.

I’ve designed a cave with a fitting theme, demonstrating Cassiopeia and it’s launch-method. Here is the video solution:


youtu.be/M8CA8g8NjnY

Relations with other dancing formations?

Cassiopeia does not have a (p-)mirrored counterpart with fireflies. For example, in phase 5 the Blue and Yellow BF compete for the same position such the column-by-column scanning would give a different result. This breaks the condition for a mirrored pair as discussed in earlier articles.
As Cassiopeia is not built around a vortex it doesn’t have a strong relation with other (known) formations. It is quite a unique, and somewhat alien, DFF.

Final note

Over the last couple of weeks, some new DFF’s have been discovered. Some are extensions to existing formations, others are unique. Good material for future articles! :D
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Episode 15: BnB with free riding triple (BnBnB)

Recently a new type of DFF has been discovered. As we already know, some DFF’s can be extended with free riding flies. Until now, the following such formations (or sets) have been found:
- The 4 elements + 1 firefly
- Lifted-F-vortex + 1 or more butterflies (unlimited set)
- Fright-3, 4, 5 + 1 or 2 butterflies

This short article introduces the first example of a variation of this concept. Instead of an individual fly traveling with a DFF, a complete formation is traveling with the DFF. In other words, it is a DFF which only exists thanks to the interference of another DFF (the carrying DFF). This carrying DFF, in this case, is a BnB. The free riding DFF is a BnB-variant consisting of 3 butterflies and is named Bob & Bobette & Babette (BnBnB).

To see how this DFF works I'd advise you to first look back to Episode 3 to memorize how the BnB works.
Below picture shows the 5 phases of the complete DFF:

Image

As you can easily see (from Episode 3), the two blue butterflies are the carrying BnB. This DFF moves independent from the other butterflies.
The two green butterflies form another BnB, consisting of Bob (light-green) and Bobette (dark-green).
The yellow fly plays an important role. Her name is Babette and she is the second partner of - lucky bastard - Bob. Without Babette, this formation would simply consist of two independent BnB’s moving next to each other. In phases 1-4 Babette is jealously moving around, while Bob is dancing with Bobette. In phase 2, her moving direction conflicts with that of the light blue fly. This is the single point where the carrying BnB affects the free riding BnBnB. In phase 5, Babette shouts out “Enough! Now it’s my turn!” and she pushes Bobette aside and takes over her role by starting to dance with Bob.

If you compare phase 1 with 1’ you’ll see that Bobette and Babette have switched their positions while all other flies have returned to their original position. So within the BnBnB formations Bob will alternatingly dance with both his partners.

This all makes that this DFF has a short loop of 5 phases and a long loop of 10 phases.

Actually this formation exists in two variants. Below picture shows the second variant:

Image

In this variant, the 5 phases of the BnBnB are exactly the same as in the first variant. Only the carrying blue BnB is differently timed. This is because the only necessary condition for BnBnB to travel with the BnB is that in phase 2 the yellow fly is blocked to move upward. Since the blue BnB has two phases where a downward move by one fly could arrange this, this gives two variants of the full DFF.

Both variants are unique formations, there are no (p-)mirrored firefly counterparts. Perhaps a similar FnF extension exists as well, but it will probably work differently.

Another interesting aspect is the following. Using the same principle to connect BnBnB to the carrying BnB, it also possible to connect another BnBnB to the BnBnB. This way a rising chain of butterfly formations can be created. Because there are two connection methods, at least two different chains can be created. Below videos shows both types of chains and the two original formations. Of course, by combining both connection methods alternatingly in a chain, many different chains could be created. So this gives (again) an unlimited set of DFF's with free riders!


youtu.be/Kxph71nwpJw

Finally, a launch-method exists as well, using the help of two fireflies, as shown in below solution video of a Shredder-cave:


youtu.be/EYxkY2NQQ2Y
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Episode 16: The 6 Elements
The 4 elements: "Nice to dance around in empty space, but we're growing old, we're rather slow..."
Two butterflies: "Hey you grannies! Want to speed up a bit? Need some fresh, young spirit?!" ;)
~ from Dustin (on Youtube)
Here’s a new episode devoted to another wonderful DFF. This DFF is a speed-up extension on The 4 Elements. In a certain way, it is surprising that this formation actually exists, since the episode on The 4 Elements concluded that The 4 Elements could not be extended in a similar way as Fright-3 could be extended to Fright-4 and -5.

The properties this formation are as follows:
- Name: The 6 Elements
- Composition: 6 BF
- Short loop: 4 phases
- Long loop: 16 phases
- Shift per short loop: 1 Down, 1 Right

How does this formations work and why does it move down-right?

Below picture shows the 4 phases of The 6 Elements.

Image

In in the following, I use abbreviations 4EL and 6EL for The 4 Elements and The 6 Elements for simplicity. Also I borrow some words from Nesdori, who discovered this formation some months ago, and Dustin, who contributed some insights to the analysis.

As you can see from the 4 phases, each phase of 6E fully contains 2 phases of 4E enhanced with one additional BF. For clarity, the phases of 4EL are also shown below.
Now it is easy to check out: During phase 1 – 4, Red/Blue/Green/Yellow form phase 1 - 4 of 4E. At the same time, Red/Blue/Green/Purple form phase 3 - 6 of 4E. Both formations are built around the same vortex formed by Red and Blue. The Grey BF is the additional “sneaky single”.

After phase 4, Red/Blue/Green/Yellow are drifted apart and don’t form a new formation. The other group, Red/Blue/Green/Purple take over the role of Red/Blue/Green/Yellow, where in particular the vortex-dance is taken over by Green and Purple.

So now the question arises – who takes over the role of Red/Blue/Green/Purple after the short loop? Well, here is where (again) the sneaky single comes into play. After running silently around the formation for 4 frames, in phase 1’, when Green/Purple form the new vortex, the Grey and Red BF are just at the right position to form 4EL phase 3 with Green/Purple. So effectively Green/Purple/Red/Grey take over the role of Red/Blue/Green/Purple. The Yellow fly, which was drifted apart from the first group now takes over the role of the single Grey fly. This closes the cycle!

Image

Like various previous formations, also in 6EL two role groups of different size exist. Although Red and Green move independently during a short loop, they effectively swap position after the 4 phases. So both flies take over each other’s role. The other group is formed by Yellow, Blue, Purple and Grey. These 4 flies interchange roles after each short loop.
It therefore takes 4 short loops until all flies have returned to their original position within the formation. And so the long loop takes 4*4 = 16 phases.

How to launch this formation?

6EL is vortex-based and as such it can be launched by starting with a vortex of 2 BF and connecting 4 additional BF. However, this won’t work when these 4 BF are just running in a row. It is necessary that one BF is “carried” diagonally by one of the other BF. This configuration can be triggered by using a spinning BF. Lastly, it is necessary to delay the BF moving at front by one frame. This can be done by snapping a piece of dirt at the right moment.

Here is the video which demonstrates this launch-method:


youtu.be/GH_L51v6ADU

Alternatively, it is possible (but very tricky) to launch 6EL by first launching 4EL and connecting 2 additional BF. The first BF could just be a spinning fly. The second BF can only be added by using a dirt-path guiding the BF to the formation. This requires that Rockford quickly removes the dirt, even so quickly that Rockford would touch a BF and die. This problem can be solved by using a falling item (like a diamond).

The following video demonstrates this method:


youtu.be/ISadHrL0Xg4

Relations with other dancing formations?

6EL does not have a (p-)mirrored counterpart with fireflies. For example, in phase 2 the Blue and Purple BF compete for the same position. With row-by-row scanning the Blue BF moves first. However, with column-by-column scanning the Purple BF would move first. This breaks the condition for a mirrored pair.

Of course, the 6EL is strongly related to 4EL as it is actually a speed-up extension. Remember that 4EL consists of a vortex with 2 BF walking around it. At the end of the episode about 4EL it was concluded that it is not possible to extend 4EL by adding more BF wandering around the vortex. But how could 6EL exist then? Well, as you can see from Phase 1-4, the 6EL consists of a Red/Blue vortex with 4 BF walking around it, however, these 4 BF are not walking along the same line! The Yellow, Green and Purple are walking directly around the vortex, but the Grey one is walking next to this line. Thus, 6EL is an extension of 4EL, but in a different way than, for instance, the extensions of Fright-3 to -4 and -5.

Now that 6EL has been discovered, is there 8EL or 10EL? Most probably, these extensions do not exist. 6EL is already moving so fast that adding flies to it causes it to fall apart. So the only way to create 8EL is to fake it by putting two 4EL’s close to each other.

Final note

Now that we have started describing 6-fly formations, there is another interesting DFF consisting of 6 fireflies. This DFF will probably the topic for the next episode! :)
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Episode 17: Sinking-F6

Here’s another DFF-episode, this time about one of the bigger Dancing Fly Formations. This formation, discovered by Nesdori in 2019, consists of 6 fireflies moving downward in quite a slow pace.

The properties of this formation are as follows:
- Name: Sinking-F6
- Composition: 6 FF
- Short loop: 18 phases
- Long loop: 54 phases
- Shift per short loop: 2 Down

The following video shows the Sinking-F6 formation and a possible launch method:


youtu.be/YeSvtPEL96s

How does this formation work?

We already have seen two examples of DFFs which consist of Crawling-F4 plus an additional sneaky single firefly: Sinking-F5 and Glider-F5. The newly discussed Sinking-F6 formation can be added to this collection of Crawling-F4-based formations, however, there is one difference: this time two sneaky singles are involved!

Below picture shows the first 9 phases of the short loop of Sinking-F6:

Image

Phase 1:
The formation starts with a Crawling-F4, where Red/Blue are the “dancers” and Green/Yellow are the “walkers”, plus two competing sneaky singles: Purple and Grey. Both singles have a different strategy to find a dance partner. Which one is more successful? We will see soon.
Just note that one could also recognize a Fright-3 in this formation, consisting of Red, Blue and Purple.

Phase 2-7:
Crawling-F4 is running as usual. The sneaky singles are just walking around this formation. In particular Purple walks around the vortex like in Fright-3. In phase 7, the walkers Green/Yellow have started their dance and are breaking into the Red/Blue dance.

Phase 8:
Purple is the first sneaky single to strike. He takes over the dance with Blue according to the Fright-3-method. Red is kicked out. But: at the same time Grey is breaking into the newly formed Purple/Blue vortex.

Phase 9:
The dance of Purple with Blue has lasted for only one frame! Grey has drifted Purple and Blue apart, and at the same time, he has taken over the dance with Yellow (like Fright-3) and has kicked out Green. So sorry for Purple, but Grey is the sneaky single having a dance partner halfway the short loop.

At this point, the formation has moved 1 step downward and the configuration is almost the same as the first phase: a new Crawling-F4 formation has been formed by Grey/Yellow/Purple/Blue, with two sneaky singles. Green is located at the same position as Purple in phase 1, thus following a Fright-3 path. But Red is positioned differently. Red has a delay of two frames w.r.t. Grey in phase 1. Therefore, phase 9 is not yet the end of the short loop.

Below picture shows the continuation, phase 10 – 18, of Sinking-F6:

Image

Phase 10-14:
The Crawling-F4 formation formed by Grey/Yellow/Purple/Blue runs as usual and the two competing sneaky singles, Green and Red, are following their path around the formation. In particular Green forms a Fright-3 with the Grey/Yellow vortex.

Phase 15:
The walkers Purple and Blue, who had already danced for one frame (Phase 8 ) find each other again and start a new dance within the Crawling-F4 formation.

Phase 16:
Green strikes. He takes over the dance with Grey (like Fright-3) and kicks out Yellow.

Phase 17-18:
Two vortex dances are taking place at the same time. Yellow and Red are running around the Purple/Blue vortex. Red breaks into the Green/Grey vortex.

Phase 1’:
Red has drifted Grey and Green apart, and at the same time, he has taken over the dance with Purple (like Fright-3) and has kicked out Blue.
Again, the formation has moved 1 step downward and a new Crawling-F4 formation has been formed by Red/Purple/Grey/Green. This time, the two sneaky singles Yellow and Blue are positioned similar to phase 1. So the 2-frame delay of the left-most sneaky single has been cancelled out. Now the cycle is closed!

In fact, the short loop consists of two parts, phases 1-8 and 9-18, which show many similarities. In both parts, one of the sneaky singles takes over the main vortex dance like Fright-3, and later on, the other sneaky single breaks this dance and takes over the vortex dance by the “walkers”. The main difference is that the second part has a delay of 2 frames between both dance-switch-events w.r.t. the first part. This enables the sneaky singles to move in sync again after the delay which was built up in the first part.

It can be seen from phase 1 and 1’ that 2 role groups exist, consisting of 3 FF each. The first group consists of Red, Blue and Green, the second group consists of Yellow, Purple and Grey. Within these groups the FF switch role after each short loop. Therefore, it takes 3 short loops before all flies have returned to their original position. This makes that the long loop takes 3*18 = 54 phases.

Why does this formation move 2 steps down?

Since this formation is vortex-based, its moving direction is determined by the “shifts” of the vortex.
Over the various phases, 4 of such shifts occur:
- Phase 8: vortex shifts to the right like Fright-3.
- Phase 9: vortex shifts to the down-left like Crawling-F4.
- Phase 16: vortex shifts to the right like Fright-3.
- Phase 1’: vortex shifts to the down-left like Crawling-F4.
The net effect of these 4 shifts is that the formation moves 2 steps down.

As the formation moves 2 steps per 18 frames, it takes on average 9 frames per step. This makes Sinking-F6 the slowest DFF out of all currently discovered DFF’s.

How to launch this formation?

To be honest, it was quite a puzzle for me to find a launch method for Sinking-F6. It first sight, it seems quite doable since the formation contains several vortices and other simpler DFF’s like Fright-3 and Crawling-F4. However, in most cases, one or two additional FF must be guided to the group and there is too little time for Rockford to remove the guiding dirt quick enough. Except for phase 18. You could check in the above picture that this phase consists of a vortex (Grey/Green), a Fright-3 formation (Blue/Purple/Red) and one additional FF (Yellow).

Phase 18 can therefore be triggered by 3 steps:
1. Create a vortex.
2. Create a Fright-3 and let it approach the vortex from the left direction and with the correct timing.
3. Let an additional FF approach from above with the correct timing. Remove the guiding dirt quickly.

The video at the top of this article demonstrates this launch method.

Relations with other dancing formations?

Sinking-F6 does not have a (p-)mirrored counterpart with butterflies. For example, in phase 1 the Blue and Purple FF compete for the same position. With row-by-row scanning the Blue FF moves first. However, with column-by-column scanning the Purple FF would move first. This breaks the condition for a mirrored pair.

One might expect that Sinking-F6 has a strong relation with Sinking-F5. Indeed, both formations combine the movements from Crawling-F4 and Fright-3 and therefore move downward (i.e. Down-Left + Right = Down), so they share the same principles. But strictly speaking, Sinking-F6 is not an extension of Sinking-F5 because Sinking-F5 cannot be found in any phase of Sinking-F6.

Final note

At the moment of writing, the Swarm-formations make up the last class of DFF’s which haven’t been discussed in an official DFF-article yet. Most probably, the swarm will be the topic of the next episode!
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Episode 18: The Swarm formations

In this episode we discuss a big class of DFFs. Although at least 8 flies are involved, their working is relatively easy to understand. This DFF-class was discovered and investigated by Dustin in 2019 and it is closely related to the phenomenon of Rolling Fly Formations (RFFs).

The Swarm formations can be created for butterflies and fireflies. We start with the butterfly variants and discuss the firefly variants later on.

Butterfly Swarms

The following video shows a series of butterfly Swarm formations:


youtu.be/CXEf_IUs1xk

We will now discuss the details behind the base variant (with 8 BF) and its possible extensions.

The base formation: Swarm-B8

The smallest possible variant of a Swarm formation consists of 8 butterflies: Swarm-B8.

The properties of this formation are as follows:
- Name: Swarm-B8
- Composition: 8 BF
- Short loop: 2 phases
- Long loop: 12 phases
- Shift per short loop: 1 Up

Since there are 8 BFs involved, you may expect a formation as complex as, for instance, Sinking-F6. Nevertheless, the working is quite simple and the short loop consists of just 2 phases. This also implies that this DFF is the quickest so far: 1 step per 2 frames.

The following picture shows the phases. (For simplicity, the red/green signs have been left out for phase 1’.)

Image

In this formation, two role groups exist: the outer flies (green colored) and the inner flies (grey colored). The two inner flies do not change position within the formation. As you see, the Light Grey fly has the same position in Phase 1’ as it had in Phase 1. The same holds for the Dark Grey fly. The 6 outer flies form a ring around the inner flies and run around them in clockwise direction. This way the formation moves upward like a caterpillar-tracked vehicle.

Why does this work? The green flies on the left-most column are moving forward each frame. Since the cave is scanned row-by-row, this is possible while the flies are directly stacked without space in between. The inner flies never break this chain because:
- In Phase 1 they can only move right and forward (but both directions are blocked, so they stop for one frame and point their facing direction to the left).
- In Phase 2 they are able to move to their right (which is, upward).
Every two frames the fly at the top of the “queue” of files on the left-most column is able to move right, thereby passing the inner flies. This is because the outer flies on the left-most column move twice as fast as the inner flies. Afterwards the outer fly will walk around the inner flies and connect to the “queue” again at the bottom of the left-most column. This way both processes stay intact: the green flies moving around and the grey flies moving up 1 step per 2 frames. This makes that the whole formation moves 1 step per short loop of 2 phases. No DFF discussed earlier in this series moves faster than this.

After each short loop each outer fly has shifted in 1 position within the ring around the inner flies. Therefore all 6 outer flies will exchange their roles, such that each outer fly will fulfill all 6 roles eventually. This makes that the long loop takes 6*2 = 12 phases. Thus, after 12 phases all flies have returned to their original position, and meanwhile the formation has moved 6 steps.

Extensions

It is possible to create an extension to Swarm-B8 by adding an additional BF at the left side of the formation. Below picture shows the phases of the extended formation: Swarm-B9:

Image

Phase 1 is similar to Swarm-B8 with the additional Dark orange BF added to the bottom position within the additional left column. Note that the facing direction of the flies on the next column have changed for reasons that will become clear soon. During Phase 1 – 10, the Swarm-F8 formation will move upward as usual, while the Dark orange BF walks along the left side of it. Since the Dark orange fly moves twice as fast as the formation, each 2 frames the Dark orange fly advances one step forward relative to the formation. During this time, the formation looks like Swarm-B8 with an additional free rider: the Dark orange fly. (For simplicity Phases 3-9 have been left out since the movements are similar.)

At Phase 10, the crucial effect happens: the Dark orange fly has caught up with the formation, moves right to the second column, and by doing so he blocks the way for all flies on this column. This causes the first 3 green flies to stop for 1 frame (which makes them changing their facing direction to the left). Because the bottom BF on this column is already pointing left, he is forced to move one column to the left and takes over the role of the Dark orange fly. This closes the cycle, which makes Swarm-B9 a unique DFF, since the Dark orange fly is integrated in the formation rather than a free rider.

Swarm-B9 moves 5 steps per short loop of 10 phases. Interesting to note is that from the 7 butterflies walking around the 2 inner flies, two role groups can be distinguished: one with 3 BF (including the Dark orange one) and one with 4 BF. Within both these groups, the flies change role after each short loop. This implies that it takes 12 short loops (since 12 is the least common multiple of 3 and 4) before all flies have returned to their original position. Thus the long loop takes 12*10 = 120 phases.

Swarm-B9 can be extended further by adding more flies to the left-most column. Below picture shows all possible variants, but only the first phase. The above video shows some of these variants. For the others, you could easily build them in a BD editor to see them at work.

Image

Note that the formations with 10 and 11 BF exist in two variants, since there are two ways to position the butterflies on the left-most column. For Swarm-B13 the left-most column is complete. This formation has therefore just 2 phases in its short loop again. In this formation there are 5 inner flies. Just like Swarm-B8, the flies on the outer ring will roll around this group of inner flies.

In a similar way, it is possible to add any number of columns to the formation! This increases the width and height of the formation. Each additional column can hold one fly more than its neighbor column at its right.

Firefly Swarms

Given that the Swarm-formations exist for butterflies and fireflies, you might expect that we will present here a new example of a mirrored pair. Quite surprisingly, this is not true, but also not completely false.

The base formation: Swarm-F8

Below picture shows what happens when you create the exact mirrored counterpart of Swarm-B8, but this time involving 8 fireflies:

Image

The formation breaks after phase 1. The Dark Grey and Dark Blue fly want to move to the same position. In the similar situation in the butterfly formation, the outer fly would move first and keep the inner fly on the same position. However, since the cave is scanned row-by-row, in the above firefly case the Dark Grey fly moves first, which breaks the formation.

But…, there exists a remarkable - yet very elegant - solution to this problem: replace the Dark Grey inner firefly by a butterfly! [well spotted Dustin!] This gives the DFF which I will call Swarm-F8. Note that this formation technically consists of 7 FF and 1 BF, yet I choose this name convention in order to keep alignment with the butterfly Swarm-formations.

The properties of this formation are as follows:
- Name: Swarm-F8
- Composition: 7 FF, 1 BF
- Short loop: 2 phases
- Long loop: 12 phases
- Shift per short loop: 1 Left

The following picture shows the phases.

Image

The second inner fly is now indicated by a green color, to emphasize that it is a butterfly and the only butterfly in the formation. The working of Swarm-F8 is now similar to Swarm-B8, except that the inner butterfly fixes the problem with the FF-only formation: since the BF wants to move to its right (= up), but the top row is always scanned first, the BF is blocked by the top row. Therefore, it will bravely stay on the same position and, in Phase 2, move to the left together with the other inner FF in front of him.

Thus, Swarm-B8 and Swarm-F8 are not a mirrored pair in the strict sense of the word. But a small tweak by changing a fly gender makes them look and feel like a mirrored pair. I’d like to call such pair a tweaked mirrored pair. At the moment of writing this article it is not known whether other examples of tweaked mirrored pairs (outside the Swarm-family) exist.

The following video shows Swarm-F8 and a series of other firefly Swarm formations:


youtu.be/4WLita_rRtU

It appears that Swarm-F8 exists in a number of variants. Whereas the second inner fly must be a butterfly, the first inner fly could optionally be replaced by a butterfly as well! Since the inner flies are blocked by first layer (thanks to the row-by-row cave scanning order), the formation works with either 1 or 2 BF in the center. Below picture shows the phases of the variant with 2 BF:

Image

Note that these fly-gender replacements of inner flies are not possible for the butterfly formation Swarm-B8. This optionality is due to the row-by-row scanning, which makes the top row blocking any fly underneath. In the butterfly formation the left-most column is not fully scanned first (but rather one by one for each row that is scanned), which gives flies at the right side the opportunity to break out of the formation via the left-most column.

But Swarm-F8 does have the replacement option, which gives 2 variants. As another small surprise, it is possible to extend the outer ring with one additional FF. The following picture shows the additional Purple FF at the end of the top row:

Image

The Purple FF fills up an optional “gap” in the outer ring. I call this formation Swarm-F8+t, where the “+t” stands for “extra tail”. Also this addition is not possible for the butterfly formation since it relies on the row-by-row scanning.

Due to the additional fly in the outer ring, a long loop of Swarm-F8+t consists of 7 short loops (instead of 6), thus 2*7 = 14 phases in total.

With the option to add the “extra tail”, and the 2 options we already had for using a FF or BF as the first inner fly, a total number of 4 variants exist for Swarm-F8.

For completeness, the following picture shows the combination of the replaced first inner fly and the extra tail:

Image

The following video demonstrates this variant of Swarm-F8+t:


youtu.be/hwbhFzp-L6k

Extensions

Swarm-F8 can be extended in height, in a similar way as Swarm-B8 can be extended in width. It is possible to build multiple layers by adding fireflies to the top. The first additional layer has room for 1 to 5 additional fireflies. This gives Swarm-F9 to Swarm-F13. Below picture shows these extensions (only the first phase). Also the first video within this section (see above) demonstrates the working of some of them.

Image

Like the BF series, some of the FF extensions exist in two variants as there are two ways the position the fireflies at the top layer. Swarm-F13 also exist with an “extra tail” (Purple FF), which gives Swarm-F13+t. Such extension is not possible for the butterfly formations as it relies on the row-by-row scanning. For the other formations in the above picture, the working is similar to the corresponding butterfly Swarm formation. In fact, for each x, Swarm-Fx forms a tweaked mirrored pair with Swarm-Bx.

Specifically for the FF Swarm-family, there is a second way to extend a formation. It is possible to extend Swarm-F8 horizontally, thereby creating an unlimited long “caterpillar”. The main idea is to create a longer line of inner flies and increase the ring of outer flies accordingly. Below picture shows the simplest possible horizontal extension to Swarm-F8:

Image

Note that the 3 inner butterflies, must be butterflies, otherwise the formation will break. The 2 inner fireflies (Grey color) may be replaced by butterflies when desired. In general, the working of this formation is similar to Swarm-F8.

In this extension, the length of the formation has been increased from 4 to 7. It is possible to extend the formation further in steps of 3 positions, in a similar way as for the above extension.

These horizontal extensions rely on the row-by-row cave scanning. Therefore, a similar vertical extension for the butterfly Swarm formations is not possible.

For the FF Swarm formations, it is possible to combine the above described horizontal and vertical extension methods. This way, extremely big DFFs could be created. The following video shows just one example:


youtu.be/jkQqbQNHCDE

When the top line is complete, it is possible to exchange all inner fireflies for butterflies, as is done in the example in above video as well.

Finally, an “extra tail” FF is possible only when the top line is complete.

Relation with Rolling Fly Formations

The Swarm formations are closely connected to the Rolling Fly Formations. Below picture shows the similarity between Swarm-B8 and Rolling-B9:

Image

In both formations, a ring of outer flies rolls around two inner flies (grey colored). The right side works slightly different. In the Swarm formation the single Dark-green BF keeps the inner flies together by moving down. The Rolling formation has an additional Black butterfly, such that the right column always contains 2 butterflies in alternating direction. With the help of a solid border (thick black line), this gives another way to keep the inner flies together and ensures that the formation runs upwards along the border.

Since Rolling-B9 has 7 outer flies, a long loop needs 7 short loops, whereas the Swarm-B8 has 6 outer flies and needs 6 short loops.

A similar analysis holds for the firefly formations Swarm-F8 and Rolling-F9:

Image

Whereas one of the inner flies of Swarm-F8 must be a butterfly, this replacement is optional for Rolling-F9. To emphasize this difference, the above picture uses a firefly (Dark-grey) at this position. Thanks to the fact that the bottom line is filled with 2 flies, the inner flies cannot break out at the bottom. Therefore, within the Rolling formation, both inner flies could be of either gender.

Similar relations between Swarm and Rolling formations exist for the bigger formations. In fact, each Swarm-formation has a Rolling counterpart, but the opposite is not true. There exist rolling formations with less than 9 flies, which cannot be turned into a flying formation. The presence of a border enables rolling formations to occur with just 2 layers (or optionally with an incomplete third layer). Details can be found in the article on RFFs.

To give you an overview, the following table shows the connections for the most basic Rolling and Swarm formations:

Code: Select all

RFF            DFF
============================
Rolling-B4     -
Rolling-B9     Swarm-F8
Rolling-B10    Swarm-B9
Rolling-B11    Swarm-B10
Rolling-B11a   Swarm-B10a
(etc…)

Rolling-F4     -
Rolling-F5     -
Rolling-F6     -
Rolling-F7     -
Rolling-F8     -
Rolling-F9     Swarm-F8
Rolling-F9+t   Swarm-F8+t
Rolling-F10    Swarm-F9
Rolling-F11    Swarm-F10
Rolling-F11a   Swarm-F10a
(etc…)
The following two videos also show you several pairs of Swarm and Rolling formations:


youtu.be/8_ulSr8R2U8

youtu.be/4HS2m6b-PbI

A last funny thing to note is that by combining and stacking several different Swarm/Rolling formations it is possible to draw moving images, like in the following example:


youtu.be/uYQODXchJnQ

Launch methods

Since the Swarm-formations are composed of at least 8 flies in a very specific configuration, it is generally difficult to find a launch method for a Swarm-formation. Nevertheless, there is a method to convert a Rolling fly formation to a Swarm formation.

Swarm-B8 can be launched by first launching Rolling-B9 and then removing a fly from the right-most column by snapping dirt at the right moment. The following video demonstrates this method:


youtu.be/aIWi2j90f9s

Although this method is not perfect, since you need 9 butterflies instead of 8, it is still quite a simple method to create Swarm-B8 from scratch.

Note that the above video also shows some other funny effects. By collision with a spinning BF, the formation could move 1 position to the right. Also, when the formation collides with a wall of a specific shape, it splits into a BnB, Glider-B5 and a single BF.

For Swarm-F8, a similar launch method exist. However, because there is a BF present, the stairs-method to create the RFF won’t work. Therefore, below video just starts with Rolling-F9 (including a BF) and demonstrates its transformation into Swarm-F8:


youtu.be/3C2X7w4XoJU

The various extensions to the base Swarm-formations (e.g. Swarm-B9, B10, etc…) can be created in two different ways:
1. By transforming a Rolling-Bx/Fx formation into the corresponding Swarm formation, using the method like shown in the videos.
2. By starting with a smaller Swarm-formation and let it collide with a spinning fly, such that this fly integrates into the formation. This way, a bigger formation can be built step by step, since Swarm-Bx or -Fx turns into a Swarm-B(x+1) or -F(x+1). You have probably already noticed this is a trick as it is shown in the earlier videos of this article.

Famous last words

Well, this was the last article in the DFF series!

Ehmm… I mean, at this point in time, all DFFs which are currently known have been covered by this article series. Although we have reached the point that the most simple DFFs are certainly known, it is of course possible that someone will discover a new DFF. Then, of course, a new article might appear in this thread. And as I know the game of Boulder Dash, there will always be new things to discover. So I’d say that one thing is certain: that new surprises await us, whether this includes a DFF or something else. That’s what makes this game so fantastic! :D
Last edited by Arno on Mon Jun 15, 2020 7:40 pm, edited 1 time in total.
User avatar
Dustin
Member
Posts: 589
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Post by Dustin »

Great article again! :D

I noted two minor errors:
Swarm-B8 can be launched by first launching Rolling-B8 and then removing a fly from the right-most column by snapping dirt at the right moment. The following video demonstrates this method:
I think you mean Rolling-B9.
Note that the above video also shows some other funny effects. By collision with a spinning BF, the formation could move 1 position to the right. Also, when the formation collides with a wall of a specific shape, it splits into a FnF, Glider-F5 and a single FF.
A BnB, Glider-B5 and a single BF.

I thought a bit about the question whether it's likely that there are "many more" big DFF or not. My basic idea is to compare the big up- and downside of having many flies:
On the upside, the more flies we have, the more formations they can form, so one might think that the probability to find a DFF among them should increase.
But on the downside, there're also more flies that have to move equally after a short loop, which of course decreases the chances to find DFF.
If we find a way to roughly describe both sides mathematically, i.e. the number of "sensible n-fly formations" on one hand and the probability that a specific "sensible n-fly formation" is indeed a DFF on the other hand, then we could multiply both terms and get the expected number of n-fly DFF for given big n. This would help to find out whether there should be some kind of DFF à la "20FF+34BF, short loop 143 frames, direction 54 up+43right per short loop" or not.
BTW, if exactly this DFF should be found one day, I want a cookie! :D
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

Thanks Dustin, I've just made the two corrections! :D

Well, I'm really curious if anywone will discover new DFF or RFF. At least I have no idea now in what direction to search... Computer simulations could provide a way to find all DFFs for small n, but for me that's just too much programming work...

But your discovery of the Swarm-family is a very important one as it proves that there exist n-fly DFF's for every n>=8, without free riders.

So it seems that n=7 is the only number for which we haven't found a DFF yet (that is, if you don't count free rider formations or the dancing fly stagnation). So let the hunt for 7-fly DFF's begin! ;)
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

I've created a youtube playlist containing all dancing- and rolling-fly-formation videos, in chronological order.

It looks like a nice book of history, showing how this amazing BD research topic has evolved over time... :D

Please let me know if i have forgotten any important video... :)
User avatar
Arno
Site Admin
Posts: 2826
Joined: Sat Mar 17, 2007 2:26 pm
Location: netherlands
Contact:

Post by Arno »

As we know from a previous episode, it is possible to extend Fright-3, -4 and -5 with additional free rider butterflies. Optionally, 1 or 2 butterflies can travel to the east using a Fright-formation as space-taxi.

Recently, Dustin has discovered that these formations can be extended to 3 free riding butterflies!

The following cave by Dustin shows Fright-3 with 3 butterflies (near the end of the video), plus some other funny effects:

youtu.be/DjXDwzZa0Cg

The following cave by me shows all combinations of Fright-3/4/5 with 1/2/3 butterflies:

youtu.be/X6sDDijrUGM

To have an idea how these formations work, below picture shows the phases for Fright-5 plus 3 butterflies:

Image

Based on our tests, it seems that further extensions with 4 or more butterflies are not possible.
User avatar
Dustin
Member
Posts: 589
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

Post by Dustin »

Here's a ranking in terms of speed (from fastest to slowest). Just thought it might be interesting :D
Meaning of the numbers: Frames per short loop/movement per short loop* = reverse speed in frames per length unit
* for diagonal movements, I took the geometric distance.

1. Swarm-F8: 2/1=2.00
1. Swarm-B8: 2/1=2.00
3. The 6 Elements: 4/sqrt(2)=2.83
4. Fright-5: 3/1=3.00
4. Lifted Gear Wheels: 3/1=3.00
6. Fright-4: 8/2=4.00
7. Glider-F5: 9/sqrt(5)=4.02
7. Glider-B5: 9/sqrt(5)=4.02
9. The 4 Elements: 6/sqrt(2)=4.24
10. Crawling-F4: 7/sqrt(2)=4.95
10. Crawling-B4: 7/sqrt(2)=4.95
10. Cassiopeia: 7/sqrt(2)=4.95
13. Frank and Franka: 5/1=5.00
13. Bob and Bobette: 5/1=5.00
13. Lifted F-Vortex: 5/1=5.00
13. Lifted B-Vortex: 5/1=5.00
17. Fright-3: 7/1=7.00
18. Sinking-F5: 8/1=8.00
19. Sinking-F6: 18/2=9.00
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
User avatar
Dustin
Member
Posts: 589
Joined: Sun Sep 23, 2007 1:15 am
Location: Erlangen, Germany

DFF with short loop 1 - counter-proof

Post by Dustin »

Here's a new little discovery about DFF, although it's a negative one, but I still think it's worth sharing, and also I like mathematical proofs (if they're not too long...), so here comes one! :D
I've had some hopes to find a DFF with short loop 1, i.e. a DFF where every fly moves into the same direction every frame. There're so many examples where only one fly fails! But now I found the opposite - a proof that a DFF with short loop 1 cannot exist.

My proof goes by contradiction, i.e. let's assume there is such a DFF and I'll show this leads to a contradiction.

First things first: let's reconsider what exactly the definition of a DFF with short loop s>0 is. It fulfills the following conditions:
(C1) Initially, there are n flies (n>0), numbered from 1 to n, with coordinates (x_1,y_1),...,(x_n,y_n). They're surrounded by nothing but empty space (at least they have enough space to move without any obstacles nearby).
(C2) After exactly s frames, the DFF has moved by the vector (X,Y), i.e. now there's a fly at (x_k+X,y_k+Y) which has the same gender as fly k, and also it faces into the same direction as fly k did initially. (Note, however, that it needn't be identic with fly k!) This goes for all k from 1 to n. X and Y are arbitrary whole numbers, with the exception they can't both be zero.
(C3) Of course the flies mentioned under (C2) are all because no new flies could have appeared out of the blue. Just to mention it :D
Here I consider only the case s=1.
(One more note: Arno's definition of DFF includes that the flies have to influence each other, but I won't need this property explicitely, so I left it out.)

Remark: I consider a typical BD coordinate system where the x-axis goes from left to right and the y-axis from top to bottom. For the following argumentations, it does not matter where the origin is.

Now, as mentioned earlier, let's assume that a DFF with short loop 1 exists. I start by proving two statements which might look trivial but are still worth mentioning and proving:

(1) If a DFF with short loop 1 exists, then the DFF moves either 1 left, 1 right, 1 up or 1 down.
Proof: Some definitions first:
(x_k*,y_k*) := coordinates of the fly k after one frame
x_add := x_1+x_2+...+x_n,
same for y_add, x_add*, y_add*.
D:=x_add*-x_add
Now what values can D have?
(a) As every fly has moved at most one step horizontally or vertically, the x-coordinate of each fly has changed at most by +/-1. This means that D must be inside the interval [-n;n].
(b) On the other hand, the DFF as a whole has moved by (X,Y) (see condition C2), which means D=nX.
If we put (a) and (b) together, it follows that X is either -1, 0 or 1. The same follows for Y by a completely identic argumentation. Furthermore, X and Y cannot simultaneousely be nonzero because flies cannot move diagonally.
This leaves five cases:
X=-1, Y=0 (DFF moves 1 left)
X=1, Y=0 (DFF moves 1 right)
X=0, Y=1 (DFF moves 1 down)
X=0, Y=-1 (DFF moves 1 up)
X=Y=0 (DFF remains static, but this contradicts condition C2!)
So statement (1) is proven.


(2) If a DFF with short loop 1 exists, then every fly moves into the same direction every frame.
Proof: Let's assume the DFF moves 1 right (the other three cases work with the same argumentation).
In this case, we have D=n, so by definition of D, we have:
x_add*-x_add=n
(x_1*+x_2*+...+x_n*)-(x_1+x_2+...+x_n)=n
(x_1*-x_1)+(x_2*-x_2)+...+(x_n*-x_n)=n
As each fly has only one frame to move from x_k to x_k*, it follows that all the values in brackets can at most be 1. To fulfill the equation, they have to be exactly 1, which means that every fly has moved right during the frame, which proves statement (2).
Remark: This means that the long loop of our hypothetical DFF is also 1!


Now I'm ready to disprove the existance of a DFF with short loop 1, going through all four hypothetical cases.
For the following argumentations, the cavescanning order becomes important:
(CSO) Among two flies with coordinates (x_1,y_1) and (x_2,y_2), fly 1 is scanned first if y_1<y_2, or if y_1=y_2 and x_1<x_2. Otherwise, fly 2 is scanned first.


(3) There's no DFF with short loop 1 which moves 1 right.
Proof: If such a DFF existed, then according to (2), all flies would face right.
Now consider the leftmost fly of the formation, and if there's more than one, consider the bottom-most out of those. Let's assume without loss of generality that this fly has number 1 and coordinates (0,0). So we know that:
(A) There's no fly with negative x-coordinate and
(B) There's no fly with coordinates (0,y) for y>0.
Now what gender does our fly 1 have? Two cases:
Case 1: it's a firefly. We know it faces right and it will also move right, so there must be a fly 2 which prevents firefly 1 from moving up into (0,-1) (the preferred moving direction of ffly 1). There are two principal possibilities where fly 2 could be to block fly 1:
Case 1-1: Fly 2 is at (-1,-1), so fly 2 is scanned before fly 1, moves right and then blocks fly 1. But this contradicts (A).
Case 1-2: Fly 2 is at (0,-1), so fly 1 is scanned first and cannot move up. But this contradicts (CSO).
Case 2: Fly 1 is a butterfly. It faces right and will move right, so there must be a fly 2 which prevents it from moving down into (0,1). Two cases again:
Case 2-1: Fly 2 is at (-1,1), so fly 2 is scanned first, moves into (0,1) and blocks fly 1 off. This contradicts (A) and (CSO).
Case 2-2: Fly 2 is at (0,1), so fly 1 is scanned first and is blocked off. This contradicts (B).
Statement (3) is proven by contradiction.
The following analogous statements (4)-(6) work very similar, so I'll shorten them a bit :D


(4) There's no DFF with short loop 1 which moves 1 down.
Proof: Consider the topmost fly in such a DFF, and if there's more than one fly in the topmost row of the DFF, then consider the rightmost among those. Again it's fly 1 with coordinates (0,0). We know that:
(A) no fly has coordinates (x,y) with y<0
(B) no fly has (x,0) with x>0.
Which gender does fly 1 have?
Case 1: Firefly. Fly 2 must prevent it from moving right into (1,0).
Case 1-1: Fly 2 has (1,-1). 2 is scanned first and blocks 1. Contradiction with (A).
Case 1-2: Fly 2 has (1,0) and 1 is scanned first. Contradiction with (B).
Case 2: 1=Butterfly. Fly 2 prevents it from moving left into (-1,0).
Case 2-1: Fly 2 has (-1,-1), 2 is scanned first. Contradicts (A)
Case 2-2: Fly 2 has (-1,0) and 1 is scanned first. Contradicts (CSO).
(4) is proven.


(5) There's no DFF with short loop 1 moving 1 left.
Proof: Consider the rightmost fly in such a DFF, and if there's more than one, consider the bottom-most of those. It's fly 1 at (0,0). We know:
(A) no fly at (x,y) with x>0
(B) no fly at (0,y) with y>0.
Which gender does 1 have?
Case 1: 1=firefly. Fly 2 prevents it from moving down into (0,1).
Case 1-1: Fly 2 has (1,1), 2 is scanned first. Contradicts (A) and (CSO).
Case 1-2: Fly 2 has (0,1), 1 is scanned first. Contradicts (B).
Case 2: 1=butterfly, fly 2 prevents it from moving up into (0,-1).
Case 2-1: Fly 2 has (1,-1), 2 is scanned first. Contradicts (A).
Case 2-2: Fly 2 has (0,-1), 1 is scanned first. Contradicts (CSO).
(5) is proven.


(6) There's no DFF with short loop 1 moving 1 up.
Proof: Consider (one of) the rightmost fly(ies) of such a DFF. It's fly 1 at (0,0). We know:
(A) no fly at (x,y) with x>0.
Case 1: 1=firefly, fly 2 prevents it from moving left into (-1,0).
Case 1-1: Fly 2 has (-1,1). 2 is scanned first. Contradicts (CSO).
Case 1-2: Fly 2 has (-1,0), 1 is scanned first. Contradicts again (CSO).
Case 2: 1:butterfly, fly 2 prevents it from moving right into (1,0). Fly 2 is either at (1,1) or (1,0), both contradicts (A).
(6) is proven.


So here we are - there are no DFF with short loop 1! This means that the Swarm formations have the shortest short loop possible! :D
I know this post is very abstract, but I wanted to share it because now I can finally give up my hopes to find a DFF which moves at maximum speed! Ah BTW, it's not yet proven that the Swarm formations are the quickest DFFs, there could still be a DFF which moves, for example, 3 left in 2 frames or something... :D
Boulder Dash X Rock, Paper, Scissors:
ROCKFORD collects DIAMOND, digs DIRT
DIAMOND outvalues DIRT & BOULDER
DIRT carries BOULDER, blocks FIREFLY
BOULDER kills FIREFLY & ROCKFORD
FIREFLY kills ROCKFORD, guards DIAMOND
Post Reply