<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>tag:blogger.com,1999:blog-1451838647233562129</id><updated>2024-08-29T09:04:02.846+02:00</updated><category term="zero x"/><category term="Ruby"/><category term="tournament"/><category term="scenario greenfields"/><category term="Rails"/><category term="agent"/><category term="HowTo"/><category term="season"/><category term="Java"/><category term="Performance"/><category term="RSpec"/><category term="RVM"/><category term="Roxanne"/><category term="movement"/><category term="scenario clone war"/><category term="CakePHP"/><category term="Cassandra"/><category term="Concurrency"/><category term="Cucumber"/><category term="Mac OS X"/><category term="Nokogiri"/><category term="PHP"/><category term="Präsentation"/><category term="Rails User Group Schweiz"/><category term="Ruby 1.9"/><category term="Smalltalk"/><category term="action costs"/><category term="cybernetics"/><category term="events"/><category term="level"/><category term="sdk"/><category term="simulation"/><category term="Community"/><category term="DSL"/><category term="Distributed Ruby"/><category term="Firefox"/><category term="Hint"/><category term="Lotka-Volterra"/><category term="M42"/><category term="MagLev"/><category term="Prolog"/><category term="Safari"/><category term="Textmate"/><category term="Webrat"/><category term="YAML"/><category term="artificial intelligence"/><category term="artificial life"/><category term="bundler"/><category term="callbacks"/><category term="combat damage"/><category term="disengage"/><category term="drb"/><category term="fight"/><category term="io language"/><category term="libyaml"/><category term="programming"/><category term="programming game"/><category term="psych"/><category term="time unit"/><title type="text">lost in code</title><subtitle type="html"/><link href="http://lost-in-code.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default?redirect=false" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/" rel="alternate" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" rel="next" type="application/atom+xml"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><generator uri="http://www.blogger.com" version="7.00">Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-4849226797167456412</id><published>2012-06-02T13:08:00.001+02:00</published><updated>2012-06-02T13:08:04.225+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="scenario clone war"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario greenfields"/><category scheme="http://www.blogger.com/atom/ns#" term="season"/><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Starting 3rd Zero X Season</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2bm3lWP0bHsiJj6qXVRA6AnXxhKttO1LdiLO8wauFdu6Jr6sJSp_fhyphenhyphenn561_Qhwf-HEyjOu_GVR3itUlSYrINxv8G8w0Bt85sKTygGnFQLTDz5M-0Vi5AlsRjpjmsVespn3gJzET2LDF0/s1600/colosseum-icon-128.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2bm3lWP0bHsiJj6qXVRA6AnXxhKttO1LdiLO8wauFdu6Jr6sJSp_fhyphenhyphenn561_Qhwf-HEyjOu_GVR3itUlSYrINxv8G8w0Bt85sKTygGnFQLTDz5M-0Vi5AlsRjpjmsVespn3gJzET2LDF0/s1600/colosseum-icon-128.png" /&gt;&lt;/a&gt;&lt;/div&gt;
On &lt;b&gt;July 7 2012&lt;/b&gt; we start the 3rd&lt;a href="http://www.zero-x.net/" target="_blank"&gt; Zero-X&lt;/a&gt; season. This will be the first season with&lt;br /&gt;
the new level "&lt;a href="http://lost-in-code.blogspot.ch/2011/10/announcing-level-clone-war.html" target="_blank"&gt;Clone War&lt;/a&gt;".&amp;nbsp;The best agents of the 2nd season will be among the first participants.&lt;br /&gt;
For now this are Virgina, Say Cheese, Scorpion King and Unexist.&lt;br /&gt;
&lt;br /&gt;
But don't worry as soon as you accomplish the first level "Greenfields", you get&lt;br /&gt;
immediately access to the next level. The conditions are still the same:&lt;br /&gt;
You need to participate in a least 5 tournaments and win 40 points.&lt;br /&gt;
&lt;br /&gt;
Looking forward to see the first winners.&lt;br /&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/4849226797167456412/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/4849226797167456412" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4849226797167456412" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4849226797167456412" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2012/06/starting-3rd-zero-x-season.html" rel="alternate" title="Starting 3rd Zero X Season" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2bm3lWP0bHsiJj6qXVRA6AnXxhKttO1LdiLO8wauFdu6Jr6sJSp_fhyphenhyphenn561_Qhwf-HEyjOu_GVR3itUlSYrINxv8G8w0Bt85sKTygGnFQLTDz5M-0Vi5AlsRjpjmsVespn3gJzET2LDF0/s72-c/colosseum-icon-128.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-3184168193898067331</id><published>2012-01-18T22:00:00.000+01:00</published><updated>2012-01-28T13:19:59.243+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="events"/><category scheme="http://www.blogger.com/atom/ns#" term="level"/><category scheme="http://www.blogger.com/atom/ns#" term="movement"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario clone war"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Extended Actions in Level Clone War</title><content type="html">In my &lt;a href="http://lost-in-code.blogspot.com/2011/10/announcing-level-clone-war.html" target="_blank"&gt;last post&lt;/a&gt; I described the new introduced action &lt;b&gt;split&lt;/b&gt;. This time I want to continue and show you two other actions, that have been extended for the new level Clone War.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis1tIr3oawghtsNwjd5YI3JH1FoIZeN5yXAFPXyksQOF_dk4whpn347z7Oi04HGCdr3wL-NMyVYR7Vfey-kXkTxiTVC710gRLNdSQ43-qqak2BvAwnTZgOOkjpZ8aa3i8ffMMJVkYZfbun/s1600/view_with_radius2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis1tIr3oawghtsNwjd5YI3JH1FoIZeN5yXAFPXyksQOF_dk4whpn347z7Oi04HGCdr3wL-NMyVYR7Vfey-kXkTxiTVC710gRLNdSQ43-qqak2BvAwnTZgOOkjpZ8aa3i8ffMMJVkYZfbun/s1600/view_with_radius2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
Let's start with the &lt;b&gt;look_around&lt;/b&gt; action. In level Greenfields this action gives back a view with radius 1. In level Clone War you can now pass the radius as parameter. The view with radius 2 is shown on right.&lt;br /&gt;
As it is a circular view, the corners are missing. For those fields you will get back &lt;b&gt;nil&lt;/b&gt; instead of a field.&lt;br /&gt;
&lt;br /&gt;
The action costs are dependent of the view radius. A view with radius 2 will cost 5 action points. The one with radius 1 still costs 2 action points and with radius 0 you will get back your own position for 0.2 action points.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;new_population = old_population.split(field)
population.look_around(0) # equal to look_at(0,0)  
population.look_around    # radius 1  
population.look_around(2) # radius 2  
&lt;/pre&gt;
&lt;br /&gt;
You can also get a single field with &lt;b&gt;look_at&lt;/b&gt; and pass the field you want to see as parameter. But you have to make sure this field is within radius 1.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;new_population = old_population.split(field)
population.look_at(1,0)  
population.look_at(field)
&lt;/pre&gt;
&lt;br /&gt;
Also the &lt;b&gt;move_to&lt;/b&gt; action has some small changes. The action costs for vertical and horizontal direction remain 6 action points, while moving diagonally now costs 8.5 AP.&lt;br /&gt;
&lt;br /&gt;
For more information see the &lt;a href="http://www.zero-x.net/documentation"&gt;documentation&lt;/a&gt;.</content><link href="http://lost-in-code.blogspot.com/feeds/3184168193898067331/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/3184168193898067331" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/3184168193898067331" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/3184168193898067331" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2012/01/extended-actions-in-level-clone-war.html" rel="alternate" title="Extended Actions in Level Clone War" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis1tIr3oawghtsNwjd5YI3JH1FoIZeN5yXAFPXyksQOF_dk4whpn347z7Oi04HGCdr3wL-NMyVYR7Vfey-kXkTxiTVC710gRLNdSQ43-qqak2BvAwnTZgOOkjpZ8aa3i8ffMMJVkYZfbun/s72-c/view_with_radius2.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-8129814411228585204</id><published>2011-10-31T10:35:00.000+01:00</published><updated>2011-11-16T09:42:44.792+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="libyaml"/><category scheme="http://www.blogger.com/atom/ns#" term="psych"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby 1.9"/><category scheme="http://www.blogger.com/atom/ns#" term="RVM"/><category scheme="http://www.blogger.com/atom/ns#" term="YAML"/><title type="text">YAML in Ruby 1.9</title><content type="html">&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_YhL8dNVoragtLzUYfE-rjeGOQ8tUBKKInSaDBfnHnPGunkLjI8bVZj7Vp6ARNmajw6LhI3GBlXqT1GOt_LngnPy8VhNbVUbec-As2-0ucS51PjdKzoVsGCtneMMf33U7RCJUcxp3uKnb/s1600/game_view_with_00s.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_YhL8dNVoragtLzUYfE-rjeGOQ8tUBKKInSaDBfnHnPGunkLjI8bVZj7Vp6ARNmajw6LhI3GBlXqT1GOt_LngnPy8VhNbVUbec-As2-0ucS51PjdKzoVsGCtneMMf33U7RCJUcxp3uKnb/s200/game_view_with_00s.png" width="200" /&gt;&lt;/a&gt;The other day I downloaded the production database from &lt;a href="http://www.zero-x.net/"&gt;Zero-X&lt;/a&gt; to my local machine to run some tests.&lt;br /&gt;
Everything looked fine until I got to the game reports page, which looked wired, especially the agent views. It seemed that every empty field was occupied by an agent "00". &lt;br /&gt;
&lt;br /&gt;
After digging deeper I identified the error in wrong loaded YAML records. Instead of loading a &lt;b&gt;nil&lt;/b&gt; I got Syck::PrivateType. A &lt;b&gt;null&lt;/b&gt; with only one ! was correctly loaded, but the data from production system had two !, which were loaded differently.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;YAML.load ":a: !null"     # =&amp;gt; {:a=&amp;gt;nil}
YAML.load ":a: !!null"    # =&amp;gt; {:a=&amp;gt;#&amp;lt;Syck::PrivateType:0x000001024e6b98 ,="" @type_id="null" @value=""&amp;gt;}

YAML::ENGINE.yamler  #=&amp;gt; "syck"
&lt;/pre&gt;&lt;br /&gt;
I tried the same tests on the production system, that runs Ubuntu 10.10 I get the following output:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;YAML.load ":a: !null"     # =&amp;gt; {:a=&amp;gt;nil}
YAML.load ":a: !!null"    # =&amp;gt; {:a=&amp;gt;nil}

YAML::ENGINE.yamler  #=&amp;gt; "psych"
&lt;/pre&gt;&lt;br /&gt;
And voilà all data are loaded correctly! The difference is an other YAML Engine, on Mac OS X Snow Leopard &lt;b&gt;&lt;a href="http://www.ruby-doc.org/stdlib-1.9.2/libdoc/syck/rdoc/index.html" target="_blank"&gt;Syck&lt;/a&gt;&lt;/b&gt; is used, while on Ubuntu &lt;b&gt;&lt;a href="https://github.com/tenderlove/psych" target="_blank"&gt;Psych&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;
Some investigations later I got the answer. With &lt;b&gt;Ruby 1.9.2&lt;/b&gt; the standard library Syck was &lt;b&gt;replaced&lt;/b&gt; with Psych, which depends on the &lt;b&gt;libyaml&lt;/b&gt; library. But here it comes, only if it's found when Ruby is compiled. It still uses Sych as a fallback.&lt;br /&gt;
&lt;br /&gt;
So in order to have the same behavior on my local and production system, I had first to install libyaml using ports and then recompile my Ruby.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="nocontrols" name="code"&gt;sudo port install libyaml
rvm install ruby-1.9.2 --with-libyaml-dir=/opt/local/
&lt;/pre&gt;&lt;br /&gt;
You could also use homebrew, that has also the advantage that you don't have to specify the path to libyaml. Homebrew installs to /usr/local, which is checked by the install script.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="nocontrols" name="code"&gt;brew install libyaml
rvm install ruby-1.9.2
&lt;/pre&gt;&lt;br /&gt;
Starting irb I still had to change to psych explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;YAML::ENGINE.yamler = "psych"
&lt;/pre&gt;&lt;br /&gt;
Rails 3 changes automatically to psych if available. &lt;br /&gt;
&lt;br /&gt;
One day later I found out, that I also could install Psych as Gem instead of recompiling Ruby.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="nocontrols" name="code"&gt;gem install psych&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;UPDATE:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Some other days later, I began a new Rails project and I encountered the following conflict with psych:&lt;br /&gt;
&lt;pre&gt;../psych.bundle: warning: already initialized constant ANY
../psych.bundle: warning: already initialized constant UTF8
../psych.bundle: warning: already initialized constant UTF16LE
...
&lt;/pre&gt;&lt;br /&gt;
If you have psych 1.2.2 installed, than uninstall it again. Psych 1.2.3 should avoid the double laoding.&lt;br /&gt;
&lt;a href="https://github.com/rails/rails/issues/3488"&gt;see here&lt;/a&gt;&lt;br /&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/8129814411228585204/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/8129814411228585204" rel="replies" title="2 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8129814411228585204" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8129814411228585204" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2011/10/yaml-in-ruby-19.html" rel="alternate" title="YAML in Ruby 1.9" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_YhL8dNVoragtLzUYfE-rjeGOQ8tUBKKInSaDBfnHnPGunkLjI8bVZj7Vp6ARNmajw6LhI3GBlXqT1GOt_LngnPy8VhNbVUbec-As2-0ucS51PjdKzoVsGCtneMMf33U7RCJUcxp3uKnb/s72-c/game_view_with_00s.png" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-4588853503680907637</id><published>2011-10-01T19:04:00.000+02:00</published><updated>2011-10-23T19:10:18.830+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="level"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario clone war"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Announcing Level Clone War</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpt4hdAvK13t6lyuDIZLWv7ajffZy3kB1ovkvz0zNXXDxReFh4YDcmmbiwCk_FvKdTnRCL7HFeqWoIPdyyVfLVG7YnPTPzEJP7aRkIQPJTStqh87lvnNRUpZImFrWzmaFKdXYzhIEXEXHv/s1600/clone_war_256.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpt4hdAvK13t6lyuDIZLWv7ajffZy3kB1ovkvz0zNXXDxReFh4YDcmmbiwCk_FvKdTnRCL7HFeqWoIPdyyVfLVG7YnPTPzEJP7aRkIQPJTStqh87lvnNRUpZImFrWzmaFKdXYzhIEXEXHv/s200/clone_war_256.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;The second level for the programming game &lt;a href="http://www.zero-x.net/"&gt;Zero-X&lt;/a&gt; is ready. I'm proud to announce the 2nd level&amp;nbsp;&lt;b&gt;Clone War&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
The first level &lt;b&gt;Greenfields&lt;/b&gt;&amp;nbsp;introduced&amp;nbsp;basic sensors and actions and showed how to control a single population. With Clone War these sensors and actions will be extended. But we also have a new action, now it is possible to &lt;b&gt;split&lt;/b&gt; a population.&lt;br /&gt;
&lt;br /&gt;
Split does two things, first it splits the population into two equal sized populations and then moves the new created population to a field of your choice. Split looks the same as &lt;b&gt;move_to&lt;/b&gt; it takes a field or position&amp;nbsp;as parameter&amp;nbsp;for the new population.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;new_population = old_population.split(field)
new_population = old_population.split(-1, 0)
new_population = old_population.split(x: 1, y: 1)
&lt;/pre&gt;&lt;br /&gt;
As we may have multiple populations now, you need to specify the population you want to apply the action:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;population_a.look_around
population_b.move_to 1, 1
population_c.size
population_c.resource
&lt;/pre&gt;&lt;br /&gt;
As you can see the new introduced action changes quite a lot. In the next blog post I will describe how some well-known actions have been extended.&lt;br /&gt;
&lt;br /&gt;
For more details see the &lt;a href="http://www.zero-x.net/documentation"&gt;documentation&lt;/a&gt;.</content><link href="http://lost-in-code.blogspot.com/feeds/4588853503680907637/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/4588853503680907637" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4588853503680907637" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4588853503680907637" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2011/10/announcing-level-clone-war.html" rel="alternate" title="Announcing Level Clone War" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpt4hdAvK13t6lyuDIZLWv7ajffZy3kB1ovkvz0zNXXDxReFh4YDcmmbiwCk_FvKdTnRCL7HFeqWoIPdyyVfLVG7YnPTPzEJP7aRkIQPJTStqh87lvnNRUpZImFrWzmaFKdXYzhIEXEXHv/s72-c/clone_war_256.jpg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-1440300727106864461</id><published>2011-09-06T21:57:00.000+02:00</published><updated>2011-09-06T23:50:48.396+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="scenario greenfields"/><category scheme="http://www.blogger.com/atom/ns#" term="season"/><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Winner of 2nd Season Greenfields</title><content type="html">&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXdifuq-cz3u6UWhNVLdmRTQ4Nws72k0-zwHjDUTH-Ct11XPvBCUPQMT3xXdfCs0Xy8tmlSwAaeIv3qVA-4iMmjWUzjlpEaA_kE-0YYSq0ztoZfEHblL7Nad5TwtYcqsz2WAYTCEm-qbs/s1600/agent_16.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXdifuq-cz3u6UWhNVLdmRTQ4Nws72k0-zwHjDUTH-Ct11XPvBCUPQMT3xXdfCs0Xy8tmlSwAaeIv3qVA-4iMmjWUzjlpEaA_kE-0YYSq0ztoZfEHblL7Nad5TwtYcqsz2WAYTCEm-qbs/s1600/agent_16.jpeg" /&gt;&lt;/a&gt;&lt;b&gt;Wood Elf&lt;/b&gt; strikes again! The winner of the 1st &lt;a href="http://www.zero-x.net/" target="_blank"&gt;Zero X&lt;/a&gt; season is also the winner of 2nd &lt;a href="http://www.zero-x.net/seasons/2/tournaments" target="_blank"&gt;season&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In the 2nd season &lt;b&gt;disengage&lt;/b&gt; was introduced and the &lt;b&gt;combat damage&lt;/b&gt;, was changed in the favor of the attacker and therefore rewarded a more aggressive behaviour. But little has changed here as a look at the &lt;a href="http://www.zero-x.net/ranking" target="_blank"&gt;ranking list&lt;/a&gt; shows.&lt;br /&gt;
&lt;br /&gt;
As announced at the beginning of this season: you will need an agent with at least an average of 4.0 EPS and 5 tournaments to get to next level "Clone War". Here are the top five agents, who achieved that goal:&lt;br /&gt;
&lt;br /&gt;
6.62 Wood Elf&lt;br /&gt;
6.08 Mild Gruyere&lt;br /&gt;
6.08 Bulldog&lt;br /&gt;
5.66 Rincewind&lt;br /&gt;
4.24 Gruyere&lt;br /&gt;
&lt;br /&gt;
The usual suspects at the top, let's have a look at the agents that have won more than one tournament:&lt;br /&gt;
&lt;br /&gt;
1st places&lt;br /&gt;
3 Rincewind&lt;br /&gt;
2 Wood Elf&lt;br /&gt;
2 Bulldog&lt;br /&gt;
2 Oreiller&lt;br /&gt;
&lt;br /&gt;
At first glance it looks surprising that Oreiller didn't made it for the next level with two 1st places. But taking a closer look we can see, that it didn't perform very well between the 2nd and 6th tournament. I'm sure he will join soon as well as Tentacle Cat, both are only a few points away.&lt;br /&gt;
&lt;br /&gt;
In the next few blog posts I want to take a closer look at all the new features of the new level &lt;b&gt;Clone War&lt;/b&gt; and introduce them step by step.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.zero-x.net/"&gt;www.zero-x.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/1440300727106864461/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/1440300727106864461" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/1440300727106864461" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/1440300727106864461" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2011/09/winner-of-2nd-season-greenfields.html" rel="alternate" title="Winner of 2nd Season Greenfields" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgXdifuq-cz3u6UWhNVLdmRTQ4Nws72k0-zwHjDUTH-Ct11XPvBCUPQMT3xXdfCs0Xy8tmlSwAaeIv3qVA-4iMmjWUzjlpEaA_kE-0YYSq0ztoZfEHblL7Nad5TwtYcqsz2WAYTCEm-qbs/s72-c/agent_16.jpeg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-5483840260509851812</id><published>2011-05-29T13:39:00.000+02:00</published><updated>2011-05-29T13:39:12.388+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bundler"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby 1.9"/><category scheme="http://www.blogger.com/atom/ns#" term="RVM"/><category scheme="http://www.blogger.com/atom/ns#" term="sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Using Ruby 1.9.2 and Bundler with Zero-X</title><content type="html">In the last few months I was working on bringing &lt;a href="http://www.zero-x.net" target="_blank"&gt;Zero-X&lt;/a&gt; to Rails 3. The new agent SDK reflects this changes in using now &lt;a href="http://gembundler.com/" target="_blank"&gt;bundler&lt;/a&gt;.
&lt;br/&gt;
In addition to the Rails migration, I ported Zero-X to Ruby 1.9.2. The next tournament on the 25. June 2011 will be the first running fully on 1.9.2. So make sure you're testing your agents in the future against 1.9.2.
&lt;br/&gt;&lt;br/&gt;
For those not familiar with bundler and how to install Ruby 1.9.2, here some steps to get you started:
&lt;br/&gt;
First we need Ruby 1.9.2. The easiest way to install it is by using &lt;a href="https://rvm.beginrescueend.com/" target="_blank"&gt;RVM (Ruby Version Manager)&lt;/a&gt;. You can get it by issuing this command in your shell:

&lt;pre class="ruby:nocontrols" name="code"&gt;
bash &lt; &lt;(curl -s https://rvm.beginrescueend.com/install/rvm)
&lt;/pre&gt;

Next we need the agent SDK, which you can &lt;a href="http://www.zero-x.net" target="_blank"&gt;download&lt;/a&gt; form the Zero-X website.
&lt;br/&gt;&lt;br/&gt;
Unpack the SDK and change to that directory. You will now be asked to examine the &lt;a href="https://rvm.beginrescueend.com/workflow/rvmrc#project"&gt;.rvmrc file&lt;/a&gt;. This file tells RVM to use a specific Ruby Version within this directory. In our case the file contains:

&lt;pre class="ruby:nocontrols" name="code"&gt;
rvm use 1.9.2
&lt;/pre&gt;

After controlling the file, type &amp;quot;yes&amp;quot;. Now RVM is looking for Ruby 1.9.2 and if it doesn't exists, it will prompt you a warning and the instruction how to install it.

&lt;pre class="ruby:nocontrols" name="code"&gt;
rvm install 1.9.2
&lt;/pre&gt;
 
&lt;br/&gt;
Next we need bundler. As we installed RVM for the current user, we don't need to use &lt;a href="https://rvm.beginrescueend.com/rubies/rubygems/"&gt;sudo&lt;/a&gt; to install gems.
&lt;pre class="ruby:nocontrols" name="code"&gt;
gem install bundler
&lt;/pre&gt;
Bundler can now install all necessary gems and check their dependcies.
&lt;pre class="ruby:nocontrols" name="code"&gt;
bundle
&lt;/pre&gt;
You are set and ready to go:
&lt;pre class="ruby:nocontrols" name="code"&gt;
bundle exec rake
or
bundle exec autotest
&lt;/pre&gt;
Enjoy!</content><link href="http://lost-in-code.blogspot.com/feeds/5483840260509851812/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/5483840260509851812" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5483840260509851812" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5483840260509851812" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2011/05/using-ruby-192-and-bundler-with-zero-x.html" rel="alternate" title="Using Ruby 1.9.2 and Bundler with Zero-X" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-8770108188134843112</id><published>2011-01-17T18:44:00.006+01:00</published><updated>2011-02-01T22:49:31.580+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HowTo"/><category scheme="http://www.blogger.com/atom/ns#" term="io language"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type="text">Installing Io on my Mac</title><content type="html">Currently I'm reading &lt;a href="http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks"&gt;Seven Languages in Seven Weeks&lt;/a&gt; by Bruce Tate. The frist new language to learn is &lt;a href="http://iolanguage.com/"&gt;Io&lt;/a&gt;, a prototype based language. So I installed it on my Mac running Snow Leopard.&lt;br/&gt;
These instructions are not by an expert, but just describes the way it worked for me. If you have any suggestions or improvements feel free to add a comment.&lt;br/&gt;&lt;br/&gt;
The easiest way to install Io is by using Homebrew.
&lt;pre class="xml:nocontrols" name="code"&gt;
brew install io
&lt;/pre&gt;
If you want the lastest version from &lt;a href="http://github.com/stevedekorte/io"&gt;github&lt;/a&gt; you can alternatively install Io by hand.
&lt;br/&gt;&lt;br/&gt;
First we need &lt;a href="http://www.cmake.org/cmake/resources/software.html"&gt;CMake&lt;/a&gt;, a cross platform make tool. Download the OS X version and install it.
&lt;br/&gt;&lt;br/&gt;
Update: If you want to use the Socket Addon, you must also install libevent.
&lt;pre class="xml:nocontrols" name="code"&gt;
sudo port install libevent
&lt;/pre&gt;
or use a the corresponding command if you want to install it with Homebrew.
&lt;!--
Update: If you want to use the Yajl Addon to generate JSON, then install the corresponding C library:
&lt;pre class="xml:nocontrols" name="code"&gt;
sudo port install yajl
&lt;/pre&gt;
--&gt;
&lt;br/&gt;&lt;br/&gt;
Then we need the &lt;a href="http://github.com/stevedekorte/io/zipball/master"&gt;lastest version&lt;/a&gt; of Io from github. Unpack it and change to that directory, then issue the following commands:
&lt;pre class="xml:nocontrols" name="code"&gt;
mkdir build &amp;&amp; cd build
cmake ..
sudo make install
&lt;/pre&gt;
This will install libraries to /usr/local/lib and add the commands to /usr/local/bin: io and io_static. Then we're ready to test Io's VM with:
&lt;pre class="xml:nocontrols" name="code"&gt;
io ../libs/iovm/tests/correctness/run.io
&lt;/pre&gt;
If you get an error like this:
&lt;pre class="xml:nocontrols" name="code"&gt;
dyld: Library not loaded: libbasekit.dylib
  Referenced from: /usr/local/bin/io
  Reason: image not found
Trace/BPT trap
&lt;/pre&gt;
Then we have to show the linker the way to the libraries:
&lt;pre class="xml:nocontrols" name="code"&gt;
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
export DYLD_LIBRARY_PATH
&lt;/pre&gt;
I added these two lines to my .profile.
&lt;br/&gt;&lt;br/&gt;
After that you should be ready to get started.
&lt;pre class="ruby:nocontrols" name="code"&gt;
io
Io 20090105
Io&gt; "Hello Io" print
Hello Io==&gt; Hello Io
&lt;/pre&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Update:&lt;/b&gt; After playing around with Io, I wanted to try out the &lt;b&gt;Socket Addon&lt;/b&gt;.
But I got this error:
&lt;pre class="ruby:nocontrols" name="code"&gt;
Io&gt; Socket

  Exception: Object does not respond to 'Socket'
  ---------
  Object Socket                        Command Line 1
&lt;/pre&gt;
The missing libevent library was the cause for this error. Io doesn't complain about it, when compiling, but just skips the addon.</content><link href="http://lost-in-code.blogspot.com/feeds/8770108188134843112/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/8770108188134843112" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8770108188134843112" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8770108188134843112" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2011/01/installing-io-on-my-mac.html" rel="alternate" title="Installing Io on my Mac" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-687684262285937174</id><published>2010-11-18T23:22:00.000+01:00</published><updated>2010-11-18T23:22:19.180+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agent"/><category scheme="http://www.blogger.com/atom/ns#" term="combat damage"/><category scheme="http://www.blogger.com/atom/ns#" term="fight"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario greenfields"/><category scheme="http://www.blogger.com/atom/ns#" term="season"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Combat Damage in Season 2</title><content type="html">The combat damage in &lt;a href="http://www.zero-x.net"&gt;ZeroX&lt;/a&gt; has been quite high. Until now the combat damage has been divided inversely proportional to the population size, both agents suffered the &lt;b&gt;same&lt;/b&gt; combat damage.
&lt;br/&gt;
With season 2 this will change in favor of the bigger adversary. The combat damage for the smaller will remain the same. But the damage for the bigger will also be inversely proportional to the population sizes. Let's compare the two algorithms with a seek and destroy sequence with:
&lt;br/&gt;&lt;br/&gt;
&lt;table border="1" width="500" bordercolor="#bbb" cellpadding="0" cellspacing="0"&gt;
 &lt;tr&gt;
   &lt;th colspan="2"&gt;&amp;nbsp;&lt;/th&gt;
   &lt;th colspan="2"&gt;Season 1&lt;/th&gt;
   &lt;th colspan="2"&gt;Season 2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;th&gt;step&lt;/th&gt;
   &lt;th&gt;&amp;nbsp;&lt;/th&gt;
   &lt;th&gt;Agent 1&lt;/th&gt;
   &lt;th&gt;Agent 2&lt;/th&gt;
   &lt;th&gt;Agent 1&lt;/th&gt;
   &lt;th&gt;Agent 2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td rowspan="2" align="center"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
   &lt;td&gt;&lt;b&gt;population&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;1000&lt;/td&gt;
   &lt;td align="right"&gt;1500&lt;/td&gt;
   &lt;td align="right"&gt;1000&lt;/td&gt;
   &lt;td align="right"&gt;1500&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td&gt;&lt;b&gt;combat damage&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;600&lt;/td&gt;
   &lt;td align="right"&gt;600&lt;/td&gt;
   &lt;td align="right"&gt;600&lt;/td&gt;
   &lt;td align="right"&gt;400&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td rowspan="2" align="center"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
   &lt;td&gt;&lt;b&gt;population&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;400&lt;/td&gt;
   &lt;td align="right"&gt;900&lt;/td&gt;
   &lt;td align="right"&gt;400&lt;/td&gt;
   &lt;td align="right"&gt;1100&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td&gt;&lt;b&gt;combat damage&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;276&lt;/td&gt;
   &lt;td align="right"&gt;276&lt;/td&gt;
   &lt;td align="right"&gt;293&lt;/td&gt;
   &lt;td align="right"&gt;107&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td rowspan="2" align="center"&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
   &lt;td&gt;&lt;b&gt;population&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;124&lt;/td&gt;
   &lt;td align="right"&gt;624&lt;/td&gt;
   &lt;td align="right"&gt;106&lt;/td&gt;
   &lt;td align="right"&gt;993&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td&gt;&lt;b&gt;combat damage&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;103&lt;/td&gt;
   &lt;td align="right"&gt;103&lt;/td&gt;
   &lt;td align="right"&gt;96&lt;/td&gt;
   &lt;td align="right"&gt;11&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td rowspan="2" align="center"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
   &lt;td&gt;&lt;b&gt;population&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;21&lt;/td&gt;
   &lt;td align="right"&gt;521&lt;/td&gt;
   &lt;td align="right"&gt;10&lt;/td&gt;
   &lt;td align="right"&gt;982&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td&gt;&lt;b&gt;combat damage&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;20&lt;/td&gt;
   &lt;td align="right"&gt;20&lt;/td&gt;
   &lt;td align="right"&gt;10&lt;/td&gt;
   &lt;td align="right"&gt;1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td rowspan="2" align="center"&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
   &lt;td&gt;&lt;b&gt;population&lt;/b&gt;&lt;/td&gt;
   &lt;td align="right"&gt;1&lt;/td&gt;
   &lt;td align="right"&gt;501&lt;/td&gt;
   &lt;td align="right"&gt;0&lt;/td&gt;
   &lt;td align="right"&gt;981&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;
As in season 1 both adversary were classified excat the same, therefore they suffered the same damage. The bigger one could never take advantage of his population superiority. This will now be considered.</content><link href="http://lost-in-code.blogspot.com/feeds/687684262285937174/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/687684262285937174" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/687684262285937174" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/687684262285937174" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/11/combat-damage-in-season-2.html" rel="alternate" title="Combat Damage in Season 2" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-4155584235609412569</id><published>2010-11-10T21:40:00.000+01:00</published><updated>2012-06-27T09:46:55.971+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="action costs"/><category scheme="http://www.blogger.com/atom/ns#" term="Concurrency"/><category scheme="http://www.blogger.com/atom/ns#" term="disengage"/><category scheme="http://www.blogger.com/atom/ns#" term="HowTo"/><category scheme="http://www.blogger.com/atom/ns#" term="movement"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Secure your steps, how to disengage from a move action</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvNfMEiW6UDg1BbqgtJNs58bZQKm8Z3KBOMwY09BAMmaFJHTvIEtvMdfjr6cuyDpEUhc7nrNT4ov9ZJ4qTS-60zVYN0lx14rNEQ-JGX-ItJZWYyFETJKUguiLsIH1HkmObnmBzqmEyv_j/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvNfMEiW6UDg1BbqgtJNs58bZQKm8Z3KBOMwY09BAMmaFJHTvIEtvMdfjr6cuyDpEUhc7nrNT4ov9ZJ4qTS-60zVYN0lx14rNEQ-JGX-ItJZWYyFETJKUguiLsIH1HkmObnmBzqmEyv_j/" width="126" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Update: This feature has been removed in with the beginning of the 3rd season. Instead use look_at for agents in level Clone War.&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
In &lt;a href="http://www.zero-x.net/" target="_blank"&gt;Zero X&lt;/a&gt; the simulation and all agents are running continuously. That's one big difference to other programming games, that usually are round based. The consequence is, that in the time between an agent inspects his environment with a &lt;b&gt;look_around&lt;/b&gt; and the action he takes, with a &lt;b&gt;move_to&lt;/b&gt; for example, the environment can change.
&lt;br /&gt;
For example a field is free, when he makes the look_around, but has been occupied in the meanwhile by another agent, when he moves. This would result in a unintended attack against this other agent.
&lt;br /&gt;
&lt;br /&gt;
Although this case is rare, as a look_around and a move_to are very close. But this time gape can grow bigger as the analysis of the environment takes more time. In general agents have to deal with this kind of insecurity about their perception. This one of the many challenges in this game.
&lt;br /&gt;
&lt;br /&gt;
But in order to handle better this kind of insecurity, starting with season 2, &lt;b&gt;move_to&lt;/b&gt; can now take a &lt;b&gt;block&lt;/b&gt;.

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;move_to(x,y) {|target| ... }
&lt;/pre&gt;
The argument passed to the block is another view of the target field at the exact time of the movement. This gives the agent the chance to check the preconditions of his action. If they are not fulfilled anymore, he can now &lt;b&gt;disengage&lt;/b&gt; from the move action.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;move_to(x,y) do |target|
  unless target.has_no_population?
     disengage 'field is not free anymore!'
  end
end
&lt;/pre&gt;
Disengage can take a message, that will then be displayed in your reports. The action is canceled and the agent remains on his starting field. But disengage comes not for free. A move_to would cost 6 action points, disengage from this action still costs &lt;b&gt;3 action points&lt;/b&gt;.
&lt;br /&gt;
&lt;br /&gt;
Disengage can only be used within an action block like the one in move_to.</content><link href="http://lost-in-code.blogspot.com/feeds/4155584235609412569/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/4155584235609412569" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4155584235609412569" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4155584235609412569" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/11/secure-your-steps-how-to-disengage-from.html" rel="alternate" title="Secure your steps, how to disengage from a move action" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvNfMEiW6UDg1BbqgtJNs58bZQKm8Z3KBOMwY09BAMmaFJHTvIEtvMdfjr6cuyDpEUhc7nrNT4ov9ZJ4qTS-60zVYN0lx14rNEQ-JGX-ItJZWYyFETJKUguiLsIH1HkmObnmBzqmEyv_j/s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-2936208729330795754</id><published>2010-08-26T22:00:00.001+02:00</published><updated>2010-08-26T22:00:01.844+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="season"/><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">The End of Season 1</title><content type="html">&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEYbpqu5bqlQVpJeQoptR7xStU29MNgWdRQV2j5cKAZ1jWRMaW68NVuQ54La_XoobTCH8_dXoTBHNt6geK_Hxqhl48WTBAEOZSeVz21A7OJ7JNION1vcUK9qTh-4rrwzNjbuibN8f0W-QN/s1600/agent_17.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEYbpqu5bqlQVpJeQoptR7xStU29MNgWdRQV2j5cKAZ1jWRMaW68NVuQ54La_XoobTCH8_dXoTBHNt6geK_Hxqhl48WTBAEOZSeVz21A7OJ7JNION1vcUK9qTh-4rrwzNjbuibN8f0W-QN/s320/agent_17.png" /&gt;&lt;/a&gt;The &lt;a href="http://www.zero-x.net/ranking?tournament_id=12"&gt;10th tournament&lt;/a&gt;&amp;nbsp;ended actually with two winners, Bulldog and Rincewind. Both made 6.8 points, Bulldog is only ranked first, because he has a better overall ranking.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrxZ2wDZ_7LOcJfxo5sNPvXyRPXI3JgpgWoTXThcJZnHvIMpQXaqod70JZZ8kIuxhNjXwAQcvdvZRxK76-VZX6jHU64smmxfwJ1t8rrtuspGo4fwuTqcGisHyEue938u5JmH0_RIKoEVQ7/s1600/agent_13.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrxZ2wDZ_7LOcJfxo5sNPvXyRPXI3JgpgWoTXThcJZnHvIMpQXaqod70JZZ8kIuxhNjXwAQcvdvZRxK76-VZX6jHU64smmxfwJ1t8rrtuspGo4fwuTqcGisHyEue938u5JmH0_RIKoEVQ7/s1600/agent_13.jpeg" /&gt;&lt;/a&gt;After 10 tournaments, it's time to look back. The first tournament began with 9 agents, by now the agents have doubled. They not only have become more, no they also have become better. FireLion the winner of the first two tournaments, looked in the beginning very promising, but in the meanwhile has been displaced to the 10th rank. Others have come with a better strategy.&lt;br /&gt;
&lt;br /&gt;
After total 46 games, the ranking list can grouped in three parts:&lt;br /&gt;
There's the 5plus&amp;nbsp;group, agents that have an average of more than 5 points. Means they don't only survive in most of the games, the also achieve better ranks. WoodElf, Bulldog, Gruyere, Oreiller, Mild Gruyere and Rincewind are in this group.&lt;br /&gt;
The second group are agents that survive sometimes, they have an average of 3 to 4 points. And then there's the last group that have less than 3 points, meaning they don't survive very often.&lt;br /&gt;
&lt;br /&gt;
But remember this tournaments are not only about winning or loosing, in fact I don't see any loosing in contributing an agent. It's about to figure out which strategy works better then another.&lt;br /&gt;
&lt;br /&gt;
After 10 tournaments we make a break and end the first season. We will continue the tournaments in October, the exact date will be announced.&lt;br /&gt;
&lt;br /&gt;
Congratulations&amp;nbsp;to everybody and see you soon for the second season!</content><link href="http://lost-in-code.blogspot.com/feeds/2936208729330795754/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/2936208729330795754" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2936208729330795754" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2936208729330795754" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/08/end-of-season-1.html" rel="alternate" title="The End of Season 1" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEYbpqu5bqlQVpJeQoptR7xStU29MNgWdRQV2j5cKAZ1jWRMaW68NVuQ54La_XoobTCH8_dXoTBHNt6geK_Hxqhl48WTBAEOZSeVz21A7OJ7JNION1vcUK9qTh-4rrwzNjbuibN8f0W-QN/s72-c/agent_17.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-5657805966865658146</id><published>2010-07-31T12:08:00.000+02:00</published><updated>2010-07-31T12:08:05.342+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agent"/><category scheme="http://www.blogger.com/atom/ns#" term="events"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Attacked Events</title><content type="html">In &lt;a href="http://www.zero-x.net/" target="_blank"&gt;Zero X&lt;/a&gt; some events are directly reported to the agents. They can read them, during their think method with &lt;b&gt;next_event&lt;/b&gt; or iterate over them with &lt;b&gt;each_event&lt;/b&gt;. The event will be removed as soon as it has been read.

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;event = next_event
event.class    # =&amp;gt; AttackedEvent
event.attacker # =&amp;gt; '003' agent code name
event.damage   # =&amp;gt; 132
&lt;/pre&gt;
If an agent is attacked by another agent, the victim receives an attacked event. The event includes the code name of the attacker and the damage suffered.
&lt;br /&gt;
&lt;br /&gt;
Here an example with an iterator:

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;each_event do |event|
  if event.instance_of? AttackedEvent
    puts "attacked by #{event.attacker} and suffered #{event.damage}"
  end
end
&lt;/pre&gt;
In your tests you can fire the attacked event by using &lt;b&gt;has_been_attacked_by&lt;/b&gt;. The method takes the codename of the attacker and an optional damage parameter.

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;it "should behave different if it has been attacked" do
  @agent.has_been_attacked_by '003'
  @agent.think
  ...
end
&lt;/pre&gt;
The new test methods are available with SDK Version 0.9.7.
&lt;br /&gt;
&lt;a href="http://www.zero-x.net/documentation#testing" target="_blank"&gt;Download the new SDK V0.9.7&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.zero-x.net/documentation#events" target="_blank"&gt;See the documentation.&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/5657805966865658146/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/5657805966865658146" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5657805966865658146" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5657805966865658146" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/07/attacked-events.html" rel="alternate" title="Attacked Events" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-5922743942106656883</id><published>2010-07-22T19:42:00.000+02:00</published><updated>2010-07-22T19:42:24.604+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Bulldog wins 9th tournament</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEYbpqu5bqlQVpJeQoptR7xStU29MNgWdRQV2j5cKAZ1jWRMaW68NVuQ54La_XoobTCH8_dXoTBHNt6geK_Hxqhl48WTBAEOZSeVz21A7OJ7JNION1vcUK9qTh-4rrwzNjbuibN8f0W-QN/s1600/agent_17.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEYbpqu5bqlQVpJeQoptR7xStU29MNgWdRQV2j5cKAZ1jWRMaW68NVuQ54La_XoobTCH8_dXoTBHNt6geK_Hxqhl48WTBAEOZSeVz21A7OJ7JNION1vcUK9qTh-4rrwzNjbuibN8f0W-QN/s320/agent_17.png" /&gt;&lt;/a&gt;&lt;/div&gt;
Bulldog won the 9th tournament with 8.0 points. He won 2 games, made one second place and a third place. &lt;br/&gt;
Wood Elf, the high flyer of the last tournament, made this time only 4.6 points and was placed at rank 6, still holding the first rank in the total ranking.&lt;br/&gt;
Newcomer Mild Gruyere won 1 game and is placed 4th in the tournament ranking.
&lt;br /&gt;&lt;br /&gt;
I'm still experimenting with the runtime velocity of the simulation. This time the simulation run even slower, the action cost to time unit ratio was 1/15. Like this the resource reached their maximum at the end of each game. I think will keep the action costs in this range for the next tournament.

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;class Agency &amp;lt; Tournament::Agency
  level 'Greenfields'
  agents_per_game 22
  games_per_agent 1
  game_duration 300 # sec
  time_unit 45 # sec
  action_cost_time_unit_ratio 1.0 / 15.0
  build_options 'Greenfields::World' =&gt; { :size =&amp;gt; 8 },
                'Greenfields::Resource' =&gt; { :size =&amp;gt; 4000..16000 },
                'Greenfields::Population' =&gt; { :size =&amp;gt; 40..160 }
end
&lt;/pre&gt;
&lt;a href="http://www.zero-x.net/ranking?tournament_id=11"&gt;Ranking of the 9th tournament.&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/5922743942106656883/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/5922743942106656883" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5922743942106656883" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5922743942106656883" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/07/bulldog-wins-9th-tournament.html" rel="alternate" title="Bulldog wins 9th tournament" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEYbpqu5bqlQVpJeQoptR7xStU29MNgWdRQV2j5cKAZ1jWRMaW68NVuQ54La_XoobTCH8_dXoTBHNt6geK_Hxqhl48WTBAEOZSeVz21A7OJ7JNION1vcUK9qTh-4rrwzNjbuibN8f0W-QN/s72-c/agent_17.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-2066466493428346424</id><published>2010-07-05T15:16:00.003+02:00</published><updated>2010-07-05T15:21:40.581+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">High-Flyer</title><content type="html">&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-73y4oc1BCh7iVGMNgUb92h5Q1iAyu_-QSx3F-06hd-APuMGSX1Ssg__gUV0DKWh6tKN3BU3aQn9GLgM7tmO2j1zFo8J4H947t3cg2RzAyzusc6H9EyIlZMeR1xAcnsUTlZvW_HWVUWX/s1600/agent_16.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-73y4oc1BCh7iVGMNgUb92h5Q1iAyu_-QSx3F-06hd-APuMGSX1Ssg__gUV0DKWh6tKN3BU3aQn9GLgM7tmO2j1zFo8J4H947t3cg2RzAyzusc6H9EyIlZMeR1xAcnsUTlZvW_HWVUWX/s320/agent_16.jpeg" widht="89" /&gt;&lt;/a&gt;
Incredible! Wood Elf makes the perfect tournament with 10 points! This means &lt;b&gt;she won all 5 games&lt;/b&gt; in the tournament. Having a look at the rankings of Wood Elf, we see that, in the 4 tournaments she participated, she won 3 of them and made a second place in the other. This is clear an outstanding performance. 
&lt;br/&gt;
She now leads the overall ranking with 7.85 points, leaving the second placed Gruyere with 5.69 points behind.
&lt;br/&gt;&lt;br/&gt;
The world size for this tournament has now been increased by one to eight. And the simulation run even slower, one time unit now took 30 seconds.&lt;br/&gt;
Here the whole configuration for the last tournament:
&lt;pre class="ruby:nocontrols" name="code"&gt;module Greenfields

  class Agency &lt; Tournament::Agency
    level 'Greenfields'
    agents_per_game 22
    games_per_agent 5
    game_duration 1800 # sec
    time_unit 30 # sec
    action_cost_time_unit_ratio 1.0 / 10.0
    build_options 'Greenfields::World' =&gt; { :size =&gt; 8 },
                  'Greenfields::Resource' =&gt; { :size =&gt; 4000..16000 },
                  'Greenfields::Population' =&gt; { :size =&gt; 40..160 }
  end

end
&lt;/pre&gt;
&lt;br/&gt;
&lt;a href="http://www.zero-x.net/ranking?tournament_id=9"&gt;Ranking of the 8th tournament.&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/2066466493428346424/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/2066466493428346424" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2066466493428346424" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2066466493428346424" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/07/high-flyer.html" rel="alternate" title="High-Flyer" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-73y4oc1BCh7iVGMNgUb92h5Q1iAyu_-QSx3F-06hd-APuMGSX1Ssg__gUV0DKWh6tKN3BU3aQn9GLgM7tmO2j1zFo8J4H947t3cg2RzAyzusc6H9EyIlZMeR1xAcnsUTlZvW_HWVUWX/s72-c/agent_16.jpeg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-3444129500188410395</id><published>2010-06-20T22:23:00.005+02:00</published><updated>2010-06-23T08:28:55.089+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">The 5th and 6th Tournament</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-73y4oc1BCh7iVGMNgUb92h5Q1iAyu_-QSx3F-06hd-APuMGSX1Ssg__gUV0DKWh6tKN3BU3aQn9GLgM7tmO2j1zFo8J4H947t3cg2RzAyzusc6H9EyIlZMeR1xAcnsUTlZvW_HWVUWX/s1600/agent_16.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-73y4oc1BCh7iVGMNgUb92h5Q1iAyu_-QSx3F-06hd-APuMGSX1Ssg__gUV0DKWh6tKN3BU3aQn9GLgM7tmO2j1zFo8J4H947t3cg2RzAyzusc6H9EyIlZMeR1xAcnsUTlZvW_HWVUWX/s320/agent_16.jpeg" widht="89" /&gt;&lt;/a&gt;

&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh-aN5hgEuBCnzy4JIkaVhSXpWLYxiDFcwXe_tPnQGzHkuD-P_Z1JUoeBOkypAPTScT7JqJmJrP_Uh495TIFCf2zrb4q8DWaZXRO3_4VU_iTnIrUaVb4m8enr-soLrOqFdxHkvvipCXPMH/s1600/gruyere.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh-aN5hgEuBCnzy4JIkaVhSXpWLYxiDFcwXe_tPnQGzHkuD-P_Z1JUoeBOkypAPTScT7JqJmJrP_Uh495TIFCf2zrb4q8DWaZXRO3_4VU_iTnIrUaVb4m8enr-soLrOqFdxHkvvipCXPMH/s320/gruyere.jpg" widht="89" /&gt;&lt;/a&gt;

&lt;/div&gt;
For the last two tournaments there were 5 games each and 16 agents, who participated.&lt;br/&gt;
We had an amazing newcomer &amp;quot;Wood Elf&amp;quot;, who left with 7.8 EPS all other behind. In the 5th tournament Wood Elf won 2 games, made a second and a third place. But she also takes the first place in the overall ranking. FireLion falls back to the third place.
&lt;br/&gt;
&lt;br/&gt;
In the 6th tournament, Gruyere strikes for the second time. One game won, 3 times a second place and one third place, gives him excellent 8 EPS. Gruyere takes now the second place in the overall ranking. Will he become number one in the tournaments to come or can Wood Elf defend her position?
&lt;br/&gt;
&lt;br/&gt;
As in &lt;a href="http://lost-in-code.blogspot.com/2010/05/decoupling-action-costs-from-time-units.html"&gt;the last post&lt;/a&gt; announced the simulation runned slower for the last two tournaments. The action cost to time unit ratio has been set to 1/4. Also the world size has been increased and has now a size of 7. Here the complete configuration for the last tournament:

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;module Greenfields

  class Agency &amp;lt; Tournament::Agency
    level 'Greenfields'
    agents_per_game 16
    games_per_agent 5
    game_duration 1800 # sec
    time_unit 12 # sec
    action_cost_time_unit_ratio 1.0 / 4.0
    build_options 'Greenfields::World' =&amp;gt; { :size =&amp;gt; 7 },
                  'Greenfields::Resource' =&amp;gt; { :size =&amp;gt; 4000..16000 },
                  'Greenfields::Population' =&amp;gt; { :size =&amp;gt; 40..160 }

  end

end
&lt;/pre&gt;

Checkout the &lt;a href="http://www.zero-x.net/ranking?tournament_id=8"&gt;the ranking&lt;/a&gt;.</content><link href="http://lost-in-code.blogspot.com/feeds/3444129500188410395/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/3444129500188410395" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/3444129500188410395" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/3444129500188410395" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/06/for-last-two-tournaments-there-were-5.html" rel="alternate" title="The 5th and 6th Tournament" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-73y4oc1BCh7iVGMNgUb92h5Q1iAyu_-QSx3F-06hd-APuMGSX1Ssg__gUV0DKWh6tKN3BU3aQn9GLgM7tmO2j1zFo8J4H947t3cg2RzAyzusc6H9EyIlZMeR1xAcnsUTlZvW_HWVUWX/s72-c/agent_16.jpeg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-8335546979931324584</id><published>2010-05-25T08:07:00.020+02:00</published><updated>2010-05-26T08:35:13.383+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="action costs"/><category scheme="http://www.blogger.com/atom/ns#" term="time unit"/><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Decoupling action costs from time units</title><content type="html">&lt;div&gt;
The first tournaments showed, that the resources grow too fast. Fields with no population reach soon the maximum of their capacity and when an agent fights another agent, it can recover from the combat damage in no time.&lt;br /&gt;
As SayCheese pointed out, at the time the game is stopped, the winner is more or less random, as all survived populations are more or less at their maximum.&amp;nbsp;Actually there's no real fight for the best remaining resources.&lt;br /&gt;
&lt;br /&gt;
To bring some more&amp;nbsp;challenge&amp;nbsp;in the game,&amp;nbsp;the simulation should run a little bit slower, while the agents still have the same time for their actions. Therefor the action costs will be decoupled from the time units in the simulation.&amp;nbsp;Action costs are now a fraction of a time unit.&amp;nbsp;A &lt;b&gt;look_around&lt;/b&gt;&amp;nbsp;doesn't take 2 time units anymore, but 2 &lt;b&gt;action costs&lt;/b&gt;.&lt;br /&gt;
For the next tournament an action cost will be a quarter of a time unit. Means the simulation will run 4 times slower until now. In consequence the resources and the populations will grow 4 times slower.&lt;/div&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/8335546979931324584/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/8335546979931324584" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8335546979931324584" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8335546979931324584" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/05/decoupling-action-costs-from-time-units.html" rel="alternate" title="Decoupling action costs from time units" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-4196688694635790803</id><published>2010-05-11T23:54:00.000+02:00</published><updated>2010-05-11T23:54:59.701+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Surprise in the 4th tournament</title><content type="html">&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh35kq2__rzq2onPfCfWYpgT_guBzBiv4gQDYNe_NBOeRCmNLDQj7EX3WdwVD8wLL1L-o0fr_GVCNZRPlQ3uNW9fn43zoAk40io31nVDuhHkAuWUNVdFbSha6p-AAS78kuqZGoGCS0VUVO/s1600/james-bond-daniel-craig.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh35kq2__rzq2onPfCfWYpgT_guBzBiv4gQDYNe_NBOeRCmNLDQj7EX3WdwVD8wLL1L-o0fr_GVCNZRPlQ3uNW9fn43zoAk40io31nVDuhHkAuWUNVdFbSha6p-AAS78kuqZGoGCS0VUVO/s320/james-bond-daniel-craig.jpg" /&gt;&lt;/a&gt;The 4th tournament comes with a surprising &lt;a href="http://www.zero-x.net/ranking?tournament_id=5"&gt;winner&lt;/a&gt;: The Good, a demo agent.&lt;br /&gt;&lt;br /&gt;How could a random agent win this tournament? Does this prove, that the whole tournament is just a random game, doesn't it?! I don't think so!&lt;br /&gt;
Rather I think, that we reached a turning point. &lt;br /&gt;&lt;br /&gt;In this 4th tournament 14 agents participated, most of them optimised to go for the best resource. As everyone wants the best resource, the only question remains, who gets it first. However all too often two or more agents saw the same field, that seemed to be free, and so they decided to move there. Leading in an unintentional attack against another agent, who had the same idea, but was a little bit faster moving.&lt;br /&gt;This effect was aggravated by the fact, that the small 6x6 matrix was quite crowded with 14 agents. More than a third of the fields were occupied.&lt;br /&gt;&lt;br /&gt;While everyone stumbled over each other, The Good just walked to a random free field, which was with the utmost probability better than the one he came from, but not necessarily the one with the best resources. Like this he could grow without being bothered by anybody.&lt;br /&gt;&lt;br /&gt;Though The Good could not convince. He achieved only 5.75 points, meaning in 3 games he got only the minimum of 5 points and 8 points for a second place. As comparison Fire Lion and Gruyere won theire past tournaments with 9 points!&lt;br /&gt;
&lt;br /&gt;
But for all that, we can learn a thing from this tournament. If the matrix gets too crowded, going only for the best resource may not necessarily be the best strategy, the second best may be better.</content><link href="http://lost-in-code.blogspot.com/feeds/4196688694635790803/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/4196688694635790803" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4196688694635790803" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/4196688694635790803" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/05/surprise-in-4th-tournament.html" rel="alternate" title="Surprise in the 4th tournament" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh35kq2__rzq2onPfCfWYpgT_guBzBiv4gQDYNe_NBOeRCmNLDQj7EX3WdwVD8wLL1L-o0fr_GVCNZRPlQ3uNW9fn43zoAk40io31nVDuhHkAuWUNVdFbSha6p-AAS78kuqZGoGCS0VUVO/s72-c/james-bond-daniel-craig.jpg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-1826435209746693045</id><published>2010-04-27T23:06:00.002+02:00</published><updated>2010-04-28T08:08:02.501+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Gruyere wins 3rd tournament</title><content type="html">&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh-aN5hgEuBCnzy4JIkaVhSXpWLYxiDFcwXe_tPnQGzHkuD-P_Z1JUoeBOkypAPTScT7JqJmJrP_Uh495TIFCf2zrb4q8DWaZXRO3_4VU_iTnIrUaVb4m8enr-soLrOqFdxHkvvipCXPMH/s1600/gruyere.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh-aN5hgEuBCnzy4JIkaVhSXpWLYxiDFcwXe_tPnQGzHkuD-P_Z1JUoeBOkypAPTScT7JqJmJrP_Uh495TIFCf2zrb4q8DWaZXRO3_4VU_iTnIrUaVb4m8enr-soLrOqFdxHkvvipCXPMH/s320/gruyere.jpg" /&gt;&lt;/a&gt;The 3rd tournament brings a new winner. Gruyere wins 3 of 4 games and is placed 3rd in the fourth one. Last time Gruyere made only 3.25 points, this time excellent 9.&lt;br /&gt;
&lt;br /&gt;
The newcomer of this tournament is Rincewind. He wins one game, one 2nd place one 3rd place. He achieved the 2nd place in the tournament and takes the 3rd place in the total ranking.&lt;br /&gt;
&lt;br /&gt;
What happened to Fire Lion? In this tournament he dies in 2 games, and gets only 5 points in the other two games. Still he can defend his first place in the total ranking. But the question is now, for how long?&lt;br /&gt;
&lt;br /&gt;
In this tournament a new thread scheduler came into operation. Now all agent threads are synchronized before they can execute an action like look around or move. Like this some raceconditions, that happend last time, could be avoided.&lt;br /&gt;
&lt;br /&gt;
See the &lt;a href="http://www.zero-x/ranking?tournament_id=3"&gt;tournament Ranking&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/1826435209746693045/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/1826435209746693045" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/1826435209746693045" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/1826435209746693045" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/04/gruyere-wins-3rd-tournament.html" rel="alternate" title="Gruyere wins 3rd tournament" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh-aN5hgEuBCnzy4JIkaVhSXpWLYxiDFcwXe_tPnQGzHkuD-P_Z1JUoeBOkypAPTScT7JqJmJrP_Uh495TIFCf2zrb4q8DWaZXRO3_4VU_iTnIrUaVb4m8enr-soLrOqFdxHkvvipCXPMH/s72-c/gruyere.jpg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-2492617226779433450</id><published>2010-04-13T19:17:00.000+02:00</published><updated>2010-04-13T19:17:50.075+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Fire Lion wins again</title><content type="html">&lt;img height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTLmdHsSLAXkV7So6Rg0dV7gj3qjR_f5PXDQs3gDR-xgXbC4xOu-ePs4sciufosTDTrj8jYcvs69RU0D2Q6eEzAwbuysVy-6TihGuyDrh8QvYSBm-oSilsmSWqXvbAG7LgivisiSoUvGW/s200/fire_lion2.jpg" style="-moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; border: 1px solid rgb(85, 85, 85); float: right;" width="124" /&gt;Fire Lion wins also the second tournament and keeps the lead. One first place, a second place and two third places out of 4 games.
&lt;br /&gt;
But we have also two impressive newcomers, Dirty Harry on the second place and Appenzeller on the third place. Each of them have won a game. Tentacle Cat last time on the second place, is now placed fourth, even if it also won one game.
&lt;br /&gt;
&lt;br /&gt;
In this second tournament we had now 12 agents. The parameters were the same as in the last tournament, expect that the world size has been increased to 6.
&lt;br /&gt;
&lt;br /&gt;
See the tournament &lt;a href="http://www.zero-x.net/ranking?tournament_id=2"&gt;rankings&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/2492617226779433450/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/2492617226779433450" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2492617226779433450" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2492617226779433450" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/04/fire-lion-wins-again.html" rel="alternate" title="Fire Lion wins again" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTLmdHsSLAXkV7So6Rg0dV7gj3qjR_f5PXDQs3gDR-xgXbC4xOu-ePs4sciufosTDTrj8jYcvs69RU0D2Q6eEzAwbuysVy-6TihGuyDrh8QvYSBm-oSilsmSWqXvbAG7LgivisiSoUvGW/s72-c/fire_lion2.jpg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-8175634575836440676</id><published>2010-04-12T01:03:00.000+02:00</published><updated>2010-04-12T01:03:13.553+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Präsentation"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails User Group Schweiz"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Zero X Präsentation</title><content type="html">Am Mittwoch 14. April 2010 werde ich die Gelgenheit haben &lt;a href="http://www.zero-x.net"&gt;Zero X&lt;/a&gt; der &lt;a href="http://www.rubyonrails.ch/doku.php/railshock:20100414"&gt;Ruby on Rails Usergroup Schweiz&lt;/a&gt; vorstellen zu können. &lt;br/&gt;&lt;br/&gt;
Zero X ist ein Ruby Programming Game. Wie in solchen Games üblich, spielen die User nicht direkt gegeneinander. Stattdessen programmiert jeder Spieler ein Agenten Progamm, das dann gegen die anderen Agenten antritt. Die Agent in Zero X sind in eine simulierte Welt eingebettet, die kleine ökologische Systeme abbilden. Ziel ist es, dass die eigenen Agenten in diesem System überleben oder gar die anderen übertrumpfen können,
&lt;br/&gt;&lt;br/&gt;
Freue mich jetzt schon auf spannende Diskussionen...
&lt;br/&gt;&lt;br/&gt;
Mehr Infos unter &lt;a href="http://www.zero-x.net"&gt;www.zero-x.net&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/8175634575836440676/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/8175634575836440676" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8175634575836440676" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8175634575836440676" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/04/zero-x-prasentation.html" rel="alternate" title="Zero X Präsentation" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-1426150469175374503</id><published>2010-03-29T18:00:00.003+02:00</published><updated>2010-04-08T22:50:56.139+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">And the winner is ...</title><content type="html">&lt;img style="border:1px solid #555555; -moz-border-radius: 5px; float: right;" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTLmdHsSLAXkV7So6Rg0dV7gj3qjR_f5PXDQs3gDR-xgXbC4xOu-ePs4sciufosTDTrj8jYcvs69RU0D2Q6eEzAwbuysVy-6TihGuyDrh8QvYSBm-oSilsmSWqXvbAG7LgivisiSoUvGW/s200/fire_lion2.jpg" width="124" /&gt;
We had 9 agents in this first tournament, each participated to 4 games. A game took 30 min or 360 time units.
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Fire Lion&lt;/b&gt; won 2 games and was placed second in the other two games. He clearly gains the lead! Congratulations!&lt;br/&gt;
See the entire ranking list &lt;a href="http://http://www.zero-x.net/ranking?tournament_id=1" target="_blank"&gt;here&lt;/a&gt;.
&lt;br /&gt;&lt;br /&gt;
Here the setup parameters for the tournament:
&lt;pre class="ruby:nocontrols" name="code"&gt;module Greenfields

  class Agency &amp;lt; Tournament::Agency
    level 'Greenfields'
    agents_per_game 12
    games_per_agent 4
    game_duration 1800 # sec
    time_unit 5.0  # sec
    build_options 'Greenfields::World' =&amp;gt; { :size =&amp;gt; 5 },
                  'Greenfields::Resource' =&amp;gt; { :size =&amp;gt; 4000..16000 },
                  'Greenfields::Population' =&amp;gt; { :size =&amp;gt; 40..160 }
  end

end
&lt;/pre&gt;
The resources and the populations had the following properties:

&lt;br /&gt;
&lt;pre class="ruby:nocontrols" name="code"&gt;
resource :capacity =&gt; 100000, :birth_rate =&gt; 0.15, :death_rate =&gt; 0.05
population :birth_rate =&gt; 0.2, :death_rate =&gt; 0.05, :hunting_rate =&gt; 0.05, :needed_food =&gt; 2.0
&lt;/pre&gt;
&lt;br /&gt;
What are your observations for this first tournament?</content><link href="http://lost-in-code.blogspot.com/feeds/1426150469175374503/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/1426150469175374503" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/1426150469175374503" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/1426150469175374503" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/03/and-winner-is.html" rel="alternate" title="And the winner is ..." type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTLmdHsSLAXkV7So6Rg0dV7gj3qjR_f5PXDQs3gDR-xgXbC4xOu-ePs4sciufosTDTrj8jYcvs69RU0D2Q6eEzAwbuysVy-6TihGuyDrh8QvYSBm-oSilsmSWqXvbAG7LgivisiSoUvGW/s72-c/fire_lion2.jpg" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-594355496571160607</id><published>2010-03-27T14:48:00.002+01:00</published><updated>2010-03-27T14:54:28.639+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tournament"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">First Tournament</title><content type="html">The &lt;a href="http://www.zero-x.net/ranking" target="_blank"&gt;frist&lt;/a&gt; agents have gathered for the first tournament. And we are curious to see the very first winner on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhguNK01kpot1dpkHwndkKnpXHP-KsHEQkFRyy4f4GxDLrfZRgNCFlyP4Fec7rEgRsr8mpXCoVWLIyoGq9httFlYqaDq6wAE9iKks2HMFV1N0Fi4YrbxuzMGDbNjVmKi08ZtzSQS2hF__HV/s1600/colosseum-icon-128.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhguNK01kpot1dpkHwndkKnpXHP-KsHEQkFRyy4f4GxDLrfZRgNCFlyP4Fec7rEgRsr8mpXCoVWLIyoGq9httFlYqaDq6wAE9iKks2HMFV1N0Fi4YrbxuzMGDbNjVmKi08ZtzSQS2hF__HV/s320/colosseum-icon-128.png" /&gt;&lt;/a&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;29. March 2010&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See it on &lt;a href="http://www.zero-x.net/"&gt;Zero X&lt;/a&gt;.</content><link href="http://lost-in-code.blogspot.com/feeds/594355496571160607/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/594355496571160607" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/594355496571160607" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/594355496571160607" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/03/first-tournament.html" rel="alternate" title="First Tournament" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhguNK01kpot1dpkHwndkKnpXHP-KsHEQkFRyy4f4GxDLrfZRgNCFlyP4Fec7rEgRsr8mpXCoVWLIyoGq9httFlYqaDq6wAE9iKks2HMFV1N0Fi4YrbxuzMGDbNjVmKi08ZtzSQS2hF__HV/s72-c/colosseum-icon-128.png" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-2560976526024554398</id><published>2010-03-25T13:15:00.002+01:00</published><updated>2010-03-25T13:22:01.922+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agent"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario greenfields"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Free Actions</title><content type="html">Release 0.9.5 introduces two new actions. Both are free, means, they don't take any actions costs.
&lt;br/&gt;&lt;br/&gt;
First with &lt;b&gt;info&lt;/b&gt; you can now store messages during your agents think method. Later you can analyse them in the reports of the game reviews. All messages saved this way are private. Only the owner of the agent can see them.

&lt;pre name="code" class="ruby:nocontrols"&gt;
info 'my secret debug info'
&lt;/pre&gt;

Second is &lt;b&gt;time&lt;/b&gt;. Time simply returns the time units elapsed since the game has been started.

&lt;pre name="code" class="ruby:nocontrols"&gt;
time # =&gt; time_units in floats
&lt;/pre&gt;

This is the last release before the first tournament will take place.
&lt;br/&gt;&lt;br/&gt;
The &lt;a href="http://www.zero-x.net/documentation"&gt;documentation&lt;/a&gt; and the &lt;a href="http://www.zero-x.net"&gt;SDK&lt;/a&gt; have been updated.</content><link href="http://lost-in-code.blogspot.com/feeds/2560976526024554398/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/2560976526024554398" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2560976526024554398" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2560976526024554398" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/03/free-actions.html" rel="alternate" title="Free Actions" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-2415803293172102332</id><published>2010-03-15T23:32:00.001+01:00</published><updated>2010-03-15T23:33:37.666+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Release 0.9.4</title><content type="html">I updated &lt;a href="http://www.zero-x.net"&gt;Zero X&lt;/a&gt; to the current version 0.9.4. This release fixes some bugs and adds some new features. Most of them are all behind the scenes, but some of them you might will note.&lt;br/&gt;
The Agent SDK has been revised, as the fixture generator did not create the data, we would expect from the view. This issue has been fixed now, fixtures and view, get by a look_around, are now the same.&lt;br/&gt;
In the report active and passive attacks are now distinct by two different colors. When an agent attacked another, the event is marked yellow, while when he was attacked it is marked red. Also you now see a push event, as a consequence of an attack, which tells you where the agent was pushed.&lt;br/&gt;
&lt;br/&gt;
Download the new &lt;a href="http://www.zero-x.net"&gt;SDK V.0.9.4&lt;/a&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/2415803293172102332/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/2415803293172102332" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2415803293172102332" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/2415803293172102332" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/03/release-094.html" rel="alternate" title="Release 0.9.4" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-5389541966004304693</id><published>2010-03-08T20:31:00.006+01:00</published><updated>2010-03-10T10:50:48.593+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agent"/><category scheme="http://www.blogger.com/atom/ns#" term="movement"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario greenfields"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Don't Move</title><content type="html">In certain situations it's the best action for an agent to take no action. Don't move just stay where you are.&lt;br /&gt;
And sometimes it comes handy when an agent can even move to nil, which has exactly that effect no movement.
&lt;pre class="ruby:nocontrols" name="code"&gt;
move_to nil
move_to 0,0
&lt;/pre&gt;
But until now move_to costed in any case action costs and saved move reports. Now we changed that behavior if nil is passed. It will now take no action costs and will not save a move report anymore.&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Update&lt;/b&gt;&lt;br/&gt;
move_to 0,0 also takes no action costs or saves reports.
&lt;br/&gt;
&lt;br/&gt;
Tungmar submitted a patch to check, if your agent has moved or not. In your tests you can now use:
&lt;pre class="ruby:nocontrols" name="code"&gt;
@agent.think
@agent.should_not have_moved
&lt;/pre&gt;
&lt;br/&gt;
The &lt;a href="http://www.zero-x.net/documentation"&gt;Documentation&lt;/a&gt; has been updated and a new &lt;a href="http://www.zero-x.net"&gt;SDK (0.9.3)&lt;/a&gt; is available.</content><link href="http://lost-in-code.blogspot.com/feeds/5389541966004304693/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/5389541966004304693" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5389541966004304693" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/5389541966004304693" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/03/dont-move.html" rel="alternate" title="Don't Move" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1451838647233562129.post-8205474489270283533</id><published>2010-03-01T20:26:00.001+01:00</published><updated>2010-03-01T20:32:33.728+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="artificial intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="artificial life"/><category scheme="http://www.blogger.com/atom/ns#" term="cybernetics"/><category scheme="http://www.blogger.com/atom/ns#" term="scenario greenfields"/><category scheme="http://www.blogger.com/atom/ns#" term="zero x"/><title type="text">Releasing Zero X</title><content type="html">I'm pleased to announce, that I released the beta version of &lt;a href="http://www.zero-x.net/" target="_blank"&gt;Zero X&lt;/a&gt;  yesterday. &lt;br /&gt;
Zero X is a programming game, that let's you create an agent program, that will then compete with others agents in different tournaments.&lt;br /&gt;
The first test tournament will take place this month, the exact date will be announced in this blog.
&lt;br /&gt;
&lt;br /&gt;
If you are interested in artificial intelligence, artificial life, robotics or cybernetic systems then check it out!
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.zero-x.net/"&gt;www.zero-x.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgYbhmKqem6qzzW4N2ZmAvRb-prF5RIPQzqJ7ukij756f85EqpgT7yT0I9pkdi7RHVtvMOpT5M0NDRrPvr24PGbIzuNd7JrvIQq4eBq02c73AYfTIKmqRvL4VhVImRFwVrnU3KPaJsPU9/s1600-h/home_page.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="403" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgYbhmKqem6qzzW4N2ZmAvRb-prF5RIPQzqJ7ukij756f85EqpgT7yT0I9pkdi7RHVtvMOpT5M0NDRrPvr24PGbIzuNd7JrvIQq4eBq02c73AYfTIKmqRvL4VhVImRFwVrnU3KPaJsPU9/s640/home_page.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link href="http://lost-in-code.blogspot.com/feeds/8205474489270283533/comments/default" rel="replies" title="Kommentare zum Post" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/1451838647233562129/8205474489270283533" rel="replies" title="0 Kommentare" type="text/html"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8205474489270283533" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/1451838647233562129/posts/default/8205474489270283533" rel="self" type="application/atom+xml"/><link href="http://lost-in-code.blogspot.com/2010/03/releasing-zero-x.html" rel="alternate" title="Releasing Zero X" type="text/html"/><author><name>Alessandro</name><uri>http://www.blogger.com/profile/16163969550925867891</uri><email>noreply@blogger.com</email><gd:image height="32" rel="http://schemas.google.com/g/2005#thumbnail" src="//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgazUt1nd-jqn71o0aDkSkOHTybwscZEyDYGmeOzlurNBNhAxgPe9YTNfRKmz-UiREl1zmS8IPplCyLtbQafJOztZizbSF7amzkstQP8smTJMs9B5NondVCdK3W1ylUuxk/s220/adm_klein.jpg" width="21"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgYbhmKqem6qzzW4N2ZmAvRb-prF5RIPQzqJ7ukij756f85EqpgT7yT0I9pkdi7RHVtvMOpT5M0NDRrPvr24PGbIzuNd7JrvIQq4eBq02c73AYfTIKmqRvL4VhVImRFwVrnU3KPaJsPU9/s72-c/home_page.jpg" width="72"/><thr:total>0</thr:total></entry></feed>