<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://robowiki.net/w/index.php?action=history&amp;feed=atom&amp;title=BrokenSword%2FCode</id>
	<title>BrokenSword/Code - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://robowiki.net/w/index.php?action=history&amp;feed=atom&amp;title=BrokenSword%2FCode"/>
	<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;action=history"/>
	<updated>2026-04-23T18:22:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=31283&amp;oldid=prev</id>
		<title>Voidious: Undo revision 31282 by Broksword (talk)</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=31283&amp;oldid=prev"/>
		<updated>2013-07-03T05:01:44Z</updated>

		<summary type="html">&lt;p&gt;Undo revision 31282 by &lt;a href=&quot;/wiki/Special:Contributions/Broksword&quot; title=&quot;Special:Contributions/Broksword&quot;&gt;Broksword&lt;/a&gt; (&lt;a href=&quot;/w/index.php?title=User_talk:Broksword&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Broksword (page does not exist)&quot;&gt;talk&lt;/a&gt;)&lt;/p&gt;
&lt;a href=&quot;http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;amp;diff=31283&amp;amp;oldid=31282&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Voidious</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=31282&amp;oldid=prev</id>
		<title>Broksword: Blanked the page</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=31282&amp;oldid=prev"/>
		<updated>2013-07-03T04:49:46Z</updated>

		<summary type="html">&lt;p&gt;Blanked the page&lt;/p&gt;
&lt;a href=&quot;http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;amp;diff=31282&amp;amp;oldid=25290&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Broksword</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=25290&amp;oldid=prev</id>
		<title>Voidious: updated code, added navbox</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=25290&amp;oldid=prev"/>
		<updated>2012-06-26T04:06:16Z</updated>

		<summary type="html">&lt;p&gt;updated code, added navbox&lt;/p&gt;
&lt;a href=&quot;http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;amp;diff=25290&amp;amp;oldid=16751&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Voidious</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=16751&amp;oldid=prev</id>
		<title>RednaxelaBot: Using &lt;syntaxhighlight&gt;.</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=16751&amp;oldid=prev"/>
		<updated>2010-07-01T08:22:19Z</updated>

		<summary type="html">&lt;p&gt;Using &amp;lt;syntaxhighlight&amp;gt;.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 08:22, 1 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;package voidious.mini;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;package voidious.mini;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l308&quot; &gt;Line 308:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 308:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;[[Category:Source Code]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;[[Category:Source Code]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>RednaxelaBot</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=6419&amp;oldid=prev</id>
		<title>Nat: add links (fix dead-end)</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=6419&amp;oldid=prev"/>
		<updated>2009-05-11T01:32:48Z</updated>

		<summary type="html">&lt;p&gt;add links (fix dead-end)&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 01:32, 11 May 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;The source code for BrokenSword 1.0. Code size is 1443.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;The source code for &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;BrokenSword&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;1.0. Code size is 1443.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nat</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=5963&amp;oldid=prev</id>
		<title>Voidious: source code category</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=5963&amp;oldid=prev"/>
		<updated>2009-05-01T20:48:32Z</updated>

		<summary type="html">&lt;p&gt;source code category&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:48, 1 May 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l309&quot; &gt;Line 309:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 309:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;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;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Source Code]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff::1.12:old-5326:rev-5963 --&gt;
&lt;/table&gt;</summary>
		<author><name>Voidious</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=5326&amp;oldid=prev</id>
		<title>Voidious: migrating this page</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=BrokenSword/Code&amp;diff=5326&amp;oldid=prev"/>
		<updated>2009-04-22T20:30:42Z</updated>

		<summary type="html">&lt;p&gt;migrating this page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The source code for BrokenSword 1.0. Code size is 1443.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package voidious.mini;&lt;br /&gt;
&lt;br /&gt;
import robocode.*;&lt;br /&gt;
import robocode.util.Utils;&lt;br /&gt;
&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.geom.Point2D;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
&lt;br /&gt;
public class BrokenSword extends AdvancedRobot {&lt;br /&gt;
    static final int GF_ZERO = 23;&lt;br /&gt;
    static final int GF_ONE = 46;&lt;br /&gt;
&lt;br /&gt;
    protected static java.awt.geom.Rectangle2D.Double _fieldRect;&lt;br /&gt;
    protected static Point2D.Double _myLocation;&lt;br /&gt;
    protected static HashMap _enemyLocationsByName = new HashMap();&lt;br /&gt;
    protected static double _randomDirChangeAmount;&lt;br /&gt;
    protected long _timeSinceDirChangeCounter;&lt;br /&gt;
    protected static double _lastHeading;&lt;br /&gt;
    protected ArrayList _recentLocations;&lt;br /&gt;
&lt;br /&gt;
    protected double _targetRating = Double.POSITIVE_INFINITY;&lt;br /&gt;
    protected static String _targetName = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    protected static final double WAVE_BULLET_POWER = 1.99;&lt;br /&gt;
    protected static final double WAVE_BULLET_VELOCITY = 14.03;&lt;br /&gt;
    protected static final double WAVE_MAX_ESCAPE_ANGLE = 0.62;&lt;br /&gt;
    protected static double _bulletPower;&lt;br /&gt;
&lt;br /&gt;
    private static int _radarDirection = 1;&lt;br /&gt;
    &lt;br /&gt;
	public void run() {&lt;br /&gt;
        setAdjustGunForRobotTurn(true);&lt;br /&gt;
        setAdjustRadarForGunTurn(true);&lt;br /&gt;
		setColors(new Color(141, 220, 175), Color.white, Color.white);&lt;br /&gt;
        _recentLocations = new ArrayList();&lt;br /&gt;
&lt;br /&gt;
    	_fieldRect = new java.awt.geom.Rectangle2D.Double(30, 30, &lt;br /&gt;
                getBattleFieldWidth() - 60, getBattleFieldHeight() - 60);&lt;br /&gt;
&lt;br /&gt;
		do {&lt;br /&gt;
          	setFireBullet(_bulletPower);&lt;br /&gt;
          	setTurnRadarRight(45 * _radarDirection);&lt;br /&gt;
			move();&lt;br /&gt;
			execute();&lt;br /&gt;
		} while (true);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    public void onScannedRobot(ScannedRobotEvent e) {&lt;br /&gt;
        String eName = e.getName();&lt;br /&gt;
        double eDistance = e.getDistance();&lt;br /&gt;
        double eEnergy = e.getEnergy();&lt;br /&gt;
        double eVelocity = e.getVelocity();&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
        ////////////////////////////////////////////////&lt;br /&gt;
        // General stuff&lt;br /&gt;
        ////////////////////////////////////////////////&lt;br /&gt;
        &lt;br /&gt;
        double enemyAbsoluteBearing = &lt;br /&gt;
        	e.getBearingRadians() + getHeadingRadians();&lt;br /&gt;
&lt;br /&gt;
        if (!_enemyLocationsByName.containsKey(eName)) {&lt;br /&gt;
        	_enemyLocationsByName.put(eName, new EnemyData());&lt;br /&gt;
        }&lt;br /&gt;
        EnemyData eData = (EnemyData)_enemyLocationsByName.get(eName);&lt;br /&gt;
        eData.alive = true;&lt;br /&gt;
        eData.location = project(_myLocation, enemyAbsoluteBearing, eDistance);&lt;br /&gt;
        double absSinRelativeHeading = Math.abs(Math.sin(e.getHeadingRadians() &lt;br /&gt;
        		- enemyAbsoluteBearing));&lt;br /&gt;
        eData.energy = eEnergy;&lt;br /&gt;
        &lt;br /&gt;
        if (getOthers() == 1 || &lt;br /&gt;
             (_targetName.equals(eName) &amp;amp;&amp;amp; &lt;br /&gt;
               (eDistance &amp;lt; 300 || (getGunHeat() &amp;lt; .8 &amp;amp;&amp;amp; getOthers() &amp;lt;= 5)))) { &lt;br /&gt;
        &lt;br /&gt;
        	_radarDirection *= -1; &lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        ////////////////////////////////////////////////&lt;br /&gt;
        // Gun wave creation&lt;br /&gt;
        ////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
        MicroWave w;&lt;br /&gt;
        addCustomEvent(w = new MicroWave());&lt;br /&gt;
        w.targetName = eName;&lt;br /&gt;
        w.sourceLocation = _myLocation;&lt;br /&gt;
        w.directAngle = enemyAbsoluteBearing;&lt;br /&gt;
        w.orientation = sign((eVelocity)*Math.sin(e.getHeadingRadians() - enemyAbsoluteBearing));&lt;br /&gt;
&lt;br /&gt;
        w.waveGuessFactors = eData.gunStats[(int)Math.abs(eVelocity) / 3][(int)(eDistance / 300)][(int)Math.min(2, absSinRelativeHeading * 3)];&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
        ////////////////////////////////////////////////&lt;br /&gt;
        // Target selection and actual firing.&lt;br /&gt;
        ////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
        double thisRating = (eEnergy * square(eDistance)); &lt;br /&gt;
        if (thisRating &amp;lt; (_targetRating * .8) || eName.equals(_targetName)) {&lt;br /&gt;
            _targetRating = thisRating;&lt;br /&gt;
            _targetName = eName;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (_targetName.equals(eName)) {&lt;br /&gt;
      &lt;br /&gt;
            _bulletPower = 1.99;&lt;br /&gt;
            &lt;br /&gt;
            if (eDistance &amp;lt; 250 || getOthers() &amp;gt;= 6) {&lt;br /&gt;
            	_bulletPower = 3;&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (eDistance &amp;gt; 600 &amp;amp;&amp;amp; (getOthers() &amp;lt;= 2)) {&lt;br /&gt;
            	_bulletPower = 1.4;&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (getEnergy() &amp;lt; 30 &amp;amp;&amp;amp; eEnergy &amp;gt; getEnergy()) {&lt;br /&gt;
            	_bulletPower = Math.min(_bulletPower, 2 - ((33 - getEnergy()) / 15));&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            int bestGF = GF_ZERO;&lt;br /&gt;
            double bestGFRank = 0;&lt;br /&gt;
            for (int x = 0; x &amp;lt; GF_ONE; x++) {&lt;br /&gt;
            	if (w.waveGuessFactors[x] &amp;gt; bestGFRank) {&lt;br /&gt;
            		bestGFRank = w.waveGuessFactors[x];&lt;br /&gt;
            		bestGF = x;&lt;br /&gt;
            	}&lt;br /&gt;
            }&lt;br /&gt;
                    	&lt;br /&gt;
            setTurnGunRightRadians(Utils.normalRelativeAngle(&lt;br /&gt;
            		enemyAbsoluteBearing - getGunHeadingRadians() +&lt;br /&gt;
            		(e.getEnergy() &amp;gt; 0 ?&lt;br /&gt;
            			(w.orientation &lt;br /&gt;
            			* (maxEscapeAngle(bulletVelocity(_bulletPower)) / GF_ZERO)&lt;br /&gt;
            			* (bestGF - GF_ZERO)) : 0)));        &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void onRobotDeath(RobotDeathEvent e) {&lt;br /&gt;
    	String eName = e.getName();&lt;br /&gt;
    	        &lt;br /&gt;
        if (_targetName.equals(eName)) {&lt;br /&gt;
            _targetName = &amp;quot;&amp;quot;;&lt;br /&gt;
            _targetRating = Double.POSITIVE_INFINITY;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        ((EnemyData)_enemyLocationsByName.get(eName)).alive = false;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    protected void move() {&lt;br /&gt;
        _myLocation = new Point2D.Double(getX(), getY());&lt;br /&gt;
        &lt;br /&gt;
        if (Math.random() &amp;gt; 0.9) {&lt;br /&gt;
        	_recentLocations.add(0, _myLocation);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        double bestRisk = Double.POSITIVE_INFINITY;&lt;br /&gt;
        double bestAngle = 0;&lt;br /&gt;
        double currentHeading =&lt;br /&gt;
        		getHeadingRadians() + (getVelocity() &amp;lt; 0?Math.PI:0);&lt;br /&gt;
        &lt;br /&gt;
        Object[] enemies = &lt;br /&gt;
            (_enemyLocationsByName.values().toArray());&lt;br /&gt;
        &lt;br /&gt;
       	_timeSinceDirChangeCounter++;&lt;br /&gt;
        if (Math.abs(Utils.normalRelativeAngle(currentHeading - _lastHeading)) &lt;br /&gt;
           	&amp;gt; Math.PI / 4) {&lt;br /&gt;
        	_timeSinceDirChangeCounter = 0;&lt;br /&gt;
        	_randomDirChangeAmount = (Math.random() * Math.random() * 50);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        for (double x = 0; x &amp;lt; 2; x += .04) {&lt;br /&gt;
            double testAngle = x * Math.PI;&lt;br /&gt;
            Point2D.Double testPoint = project(_myLocation, testAngle, &lt;br /&gt;
                50 + Math.random() * 200);&lt;br /&gt;
            &lt;br /&gt;
            if (_fieldRect.contains(testPoint)) {&lt;br /&gt;
                double testRisk = 0;&lt;br /&gt;
                &lt;br /&gt;
                for (int y = 0; y &amp;lt; enemies.length; y++) {&lt;br /&gt;
                    EnemyData eData = ((EnemyData)enemies[y]);&lt;br /&gt;
                    if (eData.alive) {&lt;br /&gt;
                        double distSquaredToEnemy = &lt;br /&gt;
                        	testPoint.distanceSq(eData.location);&lt;br /&gt;
                        &lt;br /&gt;
                        testRisk += &lt;br /&gt;
                            ((limit(0.5, (eData.energy / getEnergy()), 2)&lt;br /&gt;
                            	/ distSquaredToEnemy))&lt;br /&gt;
                            * (1 + square(Math.cos(absoluteBearing(&lt;br /&gt;
                                _myLocation, eData.location) - testAngle)))&lt;br /&gt;
                            ;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                                &lt;br /&gt;
            	if (Math.abs(Utils.normalRelativeAngle(currentHeading &lt;br /&gt;
                    	- testAngle)) &amp;lt; (Math.PI / 4) &amp;amp;&amp;amp; getOthers() &amp;lt;= 6) {&lt;br /&gt;
            		testRisk /= 2;&lt;br /&gt;
            		if (_timeSinceDirChangeCounter &amp;gt; _randomDirChangeAmount) {&lt;br /&gt;
                		testRisk *= 20;&lt;br /&gt;
                	}&lt;br /&gt;
                }&lt;br /&gt;
            	&lt;br /&gt;
                try {&lt;br /&gt;
             		for (int z = 0; z &amp;lt; 4 &amp;amp;&amp;amp; z &amp;lt; _recentLocations.size(); z++) {&lt;br /&gt;
              			testRisk *= (1 + (((400) - (50 * z)) / (testPoint.distanceSq((Point2D.Double)_recentLocations.get(z)))));&lt;br /&gt;
             		}&lt;br /&gt;
                } catch (Exception e) { }&lt;br /&gt;
                                &lt;br /&gt;
                if (testRisk &amp;lt; bestRisk) {&lt;br /&gt;
                    bestRisk = testRisk;&lt;br /&gt;
                    bestAngle = x * Math.PI;&lt;br /&gt;
                }        &lt;br /&gt;
            }           &lt;br /&gt;
        }&lt;br /&gt;
               &lt;br /&gt;
        _lastHeading = currentHeading;&lt;br /&gt;
&lt;br /&gt;
        moveWithBackAsFront(bestAngle);&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
    private static double absoluteBearing(Point2D.Double source, Point2D.Double target) {&lt;br /&gt;
        return Math.atan2(target.x - source.x, target.y - source.y);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // CREDIT: code by Iiley,&lt;br /&gt;
    // http://robowiki.net?BackAsFront&lt;br /&gt;
    void moveWithBackAsFront(double bearing) {&lt;br /&gt;
        double angle = Utils.normalRelativeAngle(bearing - getHeadingRadians());&lt;br /&gt;
        double turnAngle;&lt;br /&gt;
        setTurnRightRadians(turnAngle = Math.atan(Math.tan(angle)));&lt;br /&gt;
        setAhead((angle == turnAngle) ? 100 : -100);&lt;br /&gt;
    }&lt;br /&gt;
     &lt;br /&gt;
    protected static Point2D.Double project(Point2D.Double sourceLocation, double angle, double length) {&lt;br /&gt;
        return new Point2D.Double(sourceLocation.x + Math.sin(angle) * length,&lt;br /&gt;
            sourceLocation.y + Math.cos(angle) * length);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    private static double maxEscapeAngle(double velocity) {&lt;br /&gt;
        return Math.asin(8.0/velocity);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    protected static double bulletVelocity(double power) {&lt;br /&gt;
        return (20.0 - (3.0*power));&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    static int sign(double d) {&lt;br /&gt;
        if (d &amp;gt;= 0) return 1;&lt;br /&gt;
        return-1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    static double square(double d) {&lt;br /&gt;
        return d * d;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    protected static double limit(double min, double value, double max) {&lt;br /&gt;
        return Math.max(min, Math.min(value, max));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MicroWave extends Condition {&lt;br /&gt;
        String targetName;&lt;br /&gt;
        Point2D.Double sourceLocation;&lt;br /&gt;
        long[] waveGuessFactors;&lt;br /&gt;
        double bulletVelocity, directAngle, distance;&lt;br /&gt;
        int orientation;&lt;br /&gt;
&lt;br /&gt;
        public boolean test(){&lt;br /&gt;
        	try {&lt;br /&gt;
                Point2D.Double enemyLocation = &lt;br /&gt;
                    ((EnemyData)_enemyLocationsByName.get(targetName)).location;&lt;br /&gt;
                if ((enemyLocation).distance(sourceLocation)&lt;br /&gt;
                    &amp;lt;= (distance+=WAVE_BULLET_VELOCITY) + (WAVE_BULLET_VELOCITY/2)) {&lt;br /&gt;
                	try {&lt;br /&gt;
                		double guessFactor = (Utils.normalRelativeAngle(&lt;br /&gt;
                				absoluteBearing(sourceLocation, enemyLocation)&lt;br /&gt;
                				- directAngle) * orientation) / WAVE_MAX_ESCAPE_ANGLE;&lt;br /&gt;
                		int guessFactorIndex = (int)((guessFactor * GF_ZERO) + GF_ZERO);&lt;br /&gt;
                		waveGuessFactors[guessFactorIndex]++;&lt;br /&gt;
/*&lt;br /&gt;
                		for (int x = GF_ONE - 1; x &amp;gt;= 0; x--) {&lt;br /&gt;
                			waveGuessFactors[x] +=&lt;br /&gt;
                				(1D / (square(x - guessFactorIndex) + 1));&lt;br /&gt;
//                			waveGuessFactors[x] = ((waveGuessFactors[x] * 200) +&lt;br /&gt;
//                				(1D / (square(x - guessFactorIndex) + 1)))&lt;br /&gt;
//                				/ 201;&lt;br /&gt;
                		}&lt;br /&gt;
*/&lt;br /&gt;
                	} catch (Exception e) { }&lt;br /&gt;
                    removeCustomEvent(this);&lt;br /&gt;
                }&lt;br /&gt;
        	} catch (Exception e) { }&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class EnemyData {&lt;br /&gt;
        protected long[][][][] gunStats = new long[3][5][3][GF_ONE+1];&lt;br /&gt;
&lt;br /&gt;
        boolean alive;&lt;br /&gt;
        Point2D.Double location;&lt;br /&gt;
        double energy;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voidious</name></author>
		
	</entry>
</feed>