http://robowiki.net/w/index.php?title=PrairieWolf&feed=atom&action=historyPrairieWolf - Revision history2024-03-29T13:17:10ZRevision history for this page on the wikiMediaWiki 1.34.1http://robowiki.net/w/index.php?title=PrairieWolf&diff=57766&oldid=prevSheldor2 at 12:47, 16 March 20242024-03-16T12:47:17Z<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 12:47, 16 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l3" >Line 3:</td>
<td colspan="2" class="diff-lineno">Line 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| image = Prairiewolf.jpg</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| image = Prairiewolf.jpg</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| extends = [[AdvancedRobot]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| extends = [[AdvancedRobot]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| targeting = <del class="diffchange diffchange-inline">[[Circular Targeting|Circular&nbsp;Targeting]]</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| targeting = <ins class="diffchange diffchange-inline">Unknown</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| movement = [[Multi-Mode]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| movement = [[Multi-Mode]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| current_version = 2.61</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| current_version = 2.61</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l18" >Line 18:</td>
<td colspan="2" class="diff-lineno">Line 18:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; How competitive is it?</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; How competitive is it?</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>: It's around the 75th percentile in both the RoboRumble and the MeleeRumble. <del class="diffchange diffchange-inline">Not bad for a bot that's almost 9 years old!</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>: It's around the 75th percentile in both the RoboRumble and the MeleeRumble <ins class="diffchange diffchange-inline">in 2024, falling short of the best [[NanoBots]]</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Strategy ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Strategy ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l38" >Line 38:</td>
<td colspan="2" class="diff-lineno">Line 38:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; How does it fire?</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; How does it fire?</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>: From the author: ''The firing algorithm is very primitive, plotting target movement using only the target's current speed and a rough approximation of the target's rate of turn.'' Sounds like something resembling [[Circular Targeting]].</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>: From the author: ''The firing algorithm is very primitive, plotting target movement using only the target's current speed and a rough approximation of the target's rate of turn.'' Sounds like something resembling [[Circular Targeting]]<ins class="diffchange diffchange-inline">, but that can be easily ruled out by testing PrairieWolf 2.61 against different movements. [[Pattern Matching]] is possible</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; How does the [[Melee|melee]] strategy differ from [[One on One|one-on-one]] strategy?</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>; How does the [[Melee|melee]] strategy differ from [[One on One|one-on-one]] strategy?</div></td></tr>
<!-- diff cache key wikidb:diff::1.12:old-37260:rev-57766 -->
</table>Sheldor2http://robowiki.net/w/index.php?title=PrairieWolf&diff=37260&oldid=prevMultiplyByZer0: Fix broken link2017-08-02T18:01:00Z<p>Fix broken link</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 18:01, 2 August 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l6" >Line 6:</td>
<td colspan="2" class="diff-lineno">Line 6:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| movement = [[Multi-Mode]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| movement = [[Multi-Mode]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| current_version = 2.61</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| current_version = 2.61</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| download_link = http://<del class="diffchange diffchange-inline">darkcanuck</del>.<del class="diffchange diffchange-inline">net/rumble</del>/robots/intruder.PrairieWolf_2.61.jar</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| download_link = http://<ins class="diffchange diffchange-inline">robocode-archive</ins>.<ins class="diffchange diffchange-inline">strangeautomata.com</ins>/robots/intruder.PrairieWolf_2.61.jar</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| isOneOnOne = yes</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| isOneOnOne = yes</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| isMelee = yes</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| isMelee = yes</div></td></tr>
</table>MultiplyByZer0http://robowiki.net/w/index.php?title=PrairieWolf&diff=18509&oldid=prevVoidious: is Melee, is not open source2011-02-13T22:05:54Z<p>is Melee, is not open source</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 22:05, 13 February 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l7" >Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| current_version = 2.61</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| current_version = 2.61</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| download_link = http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| download_link = http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">| isOpenSource = yes</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| isOneOnOne = yes</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| isOneOnOne = yes</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">| isMelee = yes</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>Voidioushttp://robowiki.net/w/index.php?title=PrairieWolf&diff=18506&oldid=prevVoidious: new page for PrairieWolf2011-02-13T21:52:54Z<p>new page for PrairieWolf</p>
<p><b>New page</b></p><div>{{Infobox Robot<br />
| author = [[User:David McCoy|David McCoy]]<br />
| image = Prairiewolf.jpg<br />
| extends = [[AdvancedRobot]]<br />
| targeting = [[Circular Targeting|Circular&nbsp;Targeting]]<br />
| movement = [[Multi-Mode]]<br />
| current_version = 2.61<br />
| download_link = http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar<br />
| isOpenSource = yes<br />
| isOneOnOne = yes<br />
}}<br />
<br />
== Background Information ==<br />
<br />
; What's special about it?<br />
: It's an ancient, but relatively sophisticated bot that has aged better than most. It has a variety of radar and movement modes. It tries to find the optimal strategy against any bot and remembers each bot it faces for up to a month.<br />
: It had its own web page until GeoCities came down. Thankfully, you can still find the latest version [http://web.archive.org/web/20091027162353/geocities.com/evilsimon/PrairieWolf/prairiewolf.html at archive.org].<br />
<br />
; How competitive is it?<br />
: It's around the 75th percentile in both the RoboRumble and the MeleeRumble. Not bad for a bot that's almost 9 years old!<br />
<br />
== Strategy ==<br />
<br />
; How does it [[Movement|move]]?<br />
: The following is taken verbatim from the [http://web.archive.org/web/20091027162353/geocities.com/evilsimon/PrairieWolf/prairiewolf.html PrairieWolf homepage]:<br />
: Navigation is responsible for picking the best possible movement pattern for the circumstances. Different classes of pattern are used depending on the number of enemies within view.<br />
:* '''Corners''' (Multiple Enemies) - Attempts to stay as close to the walls as possible, while attempting to avoid other bots. This was one of the first states I had planned, yet one of the last I implemented. Ultimately, it proved to be the best [[melee]] state for most situations. PrairieWolf utilizes this state exclusively on battlefields of 1000x1000 or less.<br />
:* '''Evade''' (Multiple Enemies) - Every successful bot seems to utilize (at least to some degree) an [[Anti-Gravity Movement|anti-gravity]] algorithm. I decided PrairieWolf should be no different. In addition to distance, PrairieWolf also factors the other bots' bearings in to this calculation. While this was once PrairieWolf's mainstay for melee combat, it is now only used on battlefields larger than 1000x1000.<br />
:* '''Perimeter''' (Multiple Enemies) - This was an early attempt at keeping PrairieWolf out of the fray. It is basically an extension of the Evade state, factoring in the center of the battlefield as an additional evade point. It seemed like a good idea at the time, but proved somewhat less effective than planned.<br />
:* '''Weave''' (Multiple Enemies) - This was PrairieWolf's original all-purpose movement state. The plan was to navigate in graceful half-circles, reversing at the end of each arc. This state was removed after it became clear the only thing it was good for was racking up unbelievable ram damage.<br />
:* '''Cautious Approach''' (Single Enemy) - Sometimes the best defense is a good offense, but using a head-on approach often makes a bot cannon fodder. This state attempts to resolve this problem by approaching the enemy in side-to-side arcs.<br />
:* '''Dodge''' (Single Enemy) - This was PrairieWolf's first single-fight state. It started as a back-and-forth pattern very similar to (though not half as graceful or effective as) the pattern used by [[MadHatter]]. I later changed this state to use an anti-gravity algorithm designed specifically for a single enemy.<br />
:* '''Finisher''' (Single Enemy) - Impressed with [[Wolverine]]'s very classy finishing move for disabled opponents, I decided PrairieWolf needed a finishing move as well. I spent considerable time designing and implementing a special state to do a little dance before finishing off disabled opponents. However, after watching several bots come back to win after a still-active bullet hit PrairieWolf in mid-dance, I decided showing off was best left to those who could actually pull it off. ;-)<br />
:* '''Opposing Orbit''' (Single Enemy) - Being somewhat mathematically challenged, I quickly realized my opponents were likely to have much more elegant one-on-one movement strategies than PrairieWolf. This state is my attempt at using an opponent's strength against them - it keeps PrairieWolf in an opposing orbit around the center of the battlefield from it's opponent. Simple, but very effective against some bots.<br />
:* '''Orbit Enemy''' (Single Enemy) - This is the mainstay of PrairieWolf's one-on-one navigation. It keeps PrairieWolf in an orbit around it's opponent, moving only when shot at or when the opponent gets too close.<br />
:* '''Reflection''' (Single Enemy) - Another one of my early states that seemed like a good idea at the time, but didn't quite pan out. The plan was for PrairieWolf to mirror it's opponent's movements; using the opponent's own movement strategy against them. In reality it made PrairieWolf fumble around clumsily and run in to the walls a lot.<br />
:* '''Search''' (No Enemies Visible) - I despise bots that hide away, refusing to engage any opponents until the fighting dies down and all the other bots are badly damaged. This state is my attempt at keeping PrairieWolf from falling in to that category - it puts PrairieWolf in a circular search pattern around the center of the battlefield whenever all contact is lost with other bots. <br />
<br />
; How does it fire?<br />
: From the author: ''The firing algorithm is very primitive, plotting target movement using only the target's current speed and a rough approximation of the target's rate of turn.'' Sounds like something resembling [[Circular Targeting]].<br />
<br />
; How does the [[Melee|melee]] strategy differ from [[One on One|one-on-one]] strategy?<br />
: Some of the movement modes apply only to Melee or 1v1.<br />
<br />
; How does it select a target to attack/avoid in [[Melee|melee]]?<br />
: Targets the closest enemy, with some resistance to switching targets.<br />
<br />
; What does it save between rounds and matches?<br />
: Saves info on which modes were most effective against each enemy.<br />
<br />
== Additional Information ==<br />
<br />
; Can I use your code?<br />
: No, PrairieWolf is closed source (and obfuscated).<br />
<br />
; What's next for your robot?<br />
: It hasn't been updated since 2002, so probably nothing. =) But the author did have future plans for the bot:<br />
:: ''PrairieWolf is far from finished. I have planned several additional movement states in addition to a complete rework of the sensor and navigation systems. I may also add a separate pattern analyzer if I start getting lost turn events using PrairieWolf's current single-threaded architecture.''<br />
<br />
; What other robot(s) is it based on?<br />
: None.</div>Voidious