<?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=User%3ACbrowne</id>
	<title>User:Cbrowne - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://robowiki.net/w/index.php?action=history&amp;feed=atom&amp;title=User%3ACbrowne"/>
	<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User:Cbrowne&amp;action=history"/>
	<updated>2026-04-19T13:50:52Z</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=User:Cbrowne&amp;diff=23378&amp;oldid=prev</id>
		<title>Cbrowne: Hello again!  Just moved to Sweden, hence my inactivity - anyone want to help me completely rewrite my bot? :(</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User:Cbrowne&amp;diff=23378&amp;oldid=prev"/>
		<updated>2012-01-24T01:35:56Z</updated>

		<summary type="html">&lt;p&gt;Hello again!  Just moved to Sweden, hence my inactivity - anyone want to help me completely rewrite my bot? :(&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:35, 24 January 2012&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-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&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;Note: I know this algorithm is naïve, and I think it's the Guess Factor wheel re-invented, but I don't grok Guess Factor Targeting which is probably why I re-invented it like this (because it's something I can grok).  It's not contributed to be a serious competition gun, just my way of keeping a historical account of where my roots were, whilst simultaneously providing some point-and-laugh style entertainment for all the people doing it more cleverly.  Having said that, it does perform pretty well against wave-surfers, even if its performance against less clever movement is pretty poor (it's horrendous against Sample.Walls, for example, and pretty terrible against Sample.SpinBot too, I'm still trying to work out why, any help would be appreciated).&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;Note: I know this algorithm is naïve, and I think it's the Guess Factor wheel re-invented, but I don't grok Guess Factor Targeting which is probably why I re-invented it like this (because it's something I can grok).  It's not contributed to be a serious competition gun, just my way of keeping a historical account of where my roots were, whilst simultaneously providing some point-and-laugh style entertainment for all the people doing it more cleverly.  Having said that, it does perform pretty well against wave-surfers, even if its performance against less clever movement is pretty poor (it's horrendous against Sample.Walls, for example, and pretty terrible against Sample.SpinBot too, I'm still trying to work out why, any help would be appreciated).&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;With no further adieu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;here is [http://robocoderepository&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;com/Download%20Class Thor]! &lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source included&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;license [[RWPCL]]&lt;/del&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;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Annoyingly&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the previous download link was broken&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; It's not annoying for anyone else &lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;I doubt anybody even noticed it)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but I just moved to Sweden (hence my lack of activity for a while&lt;/ins&gt;) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and have now lost Thor to the abyss.  I may be able to find him floating around somewhere, but probably not an up-to-date version and possibly not even a version with source.  Very frustrating.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cbrowne</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User:Cbrowne&amp;diff=22267&amp;oldid=prev</id>
		<title>Cbrowne: Created page with &quot;My first gun now performs fairly well against BasicSurfer, so I've decided to upload the bot Thor, which implements the gun (but does not move).  I think the &quot;pick your shots...&quot;</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User:Cbrowne&amp;diff=22267&amp;oldid=prev"/>
		<updated>2011-10-13T01:56:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;My first gun now performs fairly well against &lt;a href=&quot;/wiki/BasicSurfer&quot; title=&quot;BasicSurfer&quot;&gt;BasicSurfer&lt;/a&gt;, so I&amp;#039;ve decided to upload the bot Thor, which implements the gun (but does not move).  I think the &amp;quot;pick your shots...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;My first gun now performs fairly well against [[BasicSurfer]], so I've decided to upload the bot Thor, which implements the gun (but does not move).&lt;br /&gt;
&lt;br /&gt;
I think the &amp;quot;pick your shots carefully, and lead accurately&amp;quot; merits can be awarded, but the &amp;quot;hit every time, actually move and try to fire at stationary targets&amp;quot; merits definitely cannot.&lt;br /&gt;
&lt;br /&gt;
I'm a little intrigued about why Thor ''never'', and I really mean ''never'' fires against stationary targets, I mean I grok my code (obviously, I wrote it) so I understand why he does it from the code's point of view (his decision about whether to fire is a function of how accurately we can predict the enemy's movements based on its current heading and velocity, so for the special case where the enemy's velocity is zero, we inevitably decide not to fire), I'm just intrigued about why this turns out to be the best decision to make (and indeed whether it really is the best decision to make).&lt;br /&gt;
&lt;br /&gt;
I think the reasoning goes thusly:&lt;br /&gt;
- if the target isn't moving, we have less data about its movements, and therefore how much to lead by, which, because those precise measurements (velocity, especially) are fed into our &amp;quot;how much to lead by&amp;quot; algorithm, means that under normal circumstances, we get increasingly more accurate the faster the enemy is moving (at zero, therefore, it takes a long time to become accurate)&lt;br /&gt;
- we can take a pot shot, but only after we're ''sure'' it's not going to suddenly move, hence the &amp;quot;deadlock&amp;quot; situation you get to against [[BasicSurfer]] where BasicSurfer doesn't move because it doesn't have enough information (I haven't shot yet) and I don't shoot because I don't have enough information (Basic hasn't ''moved'' yet).&lt;br /&gt;
when we do take a pot shot, it really is that - we're not suddenly getting more information, we're just realising that we're in deadlock until somebody does something and being brave and being the person who does something (on the grounds that the random chance of hitting is greater than the zero chance of hitting otherwise).  It works out like this because we use a threshold to dictate whether or not to fire, and that threshold will approach zero the longer the robot is stationary for (because our guesses about its future position will still gradually get more accurate, but it just takes a long time to achieve the same degree of accuracy because we're anticipating movement)&lt;br /&gt;
&lt;br /&gt;
Two pretty notable things about the algorithm:&lt;br /&gt;
- first, we offset our guesses by a factor of the distance to the target (which, in turn, purposely makes our guesses worse when the target is further away, on the grounds that we only want to fire at far-away targets when their movement is VERY predictable over a LONG period of time)&lt;br /&gt;
- second, we '''must''' use a constant firepower.  If we attempt to ramp the firepower in any way, including linearly, even by the tiniest of amounts, we throw all our calculations off, because the delta from the last turn is not compatible with the current delta (because the bullet's velocity has changed).  this is unfortunate, but I cannot currently see any way around it&lt;br /&gt;
&lt;br /&gt;
Note: I know this algorithm is naïve, and I think it's the Guess Factor wheel re-invented, but I don't grok Guess Factor Targeting which is probably why I re-invented it like this (because it's something I can grok).  It's not contributed to be a serious competition gun, just my way of keeping a historical account of where my roots were, whilst simultaneously providing some point-and-laugh style entertainment for all the people doing it more cleverly.  Having said that, it does perform pretty well against wave-surfers, even if its performance against less clever movement is pretty poor (it's horrendous against Sample.Walls, for example, and pretty terrible against Sample.SpinBot too, I'm still trying to work out why, any help would be appreciated).&lt;br /&gt;
&lt;br /&gt;
With no further adieu, here is [http://robocoderepository.com/Download%20Class Thor]! (source included, license [[RWPCL]])&lt;/div&gt;</summary>
		<author><name>Cbrowne</name></author>
		
	</entry>
</feed>