{"id":1325,"date":"2009-10-24T10:54:09","date_gmt":"2009-10-24T09:54:09","guid":{"rendered":"http:\/\/fiber-space.de\/wordpress\/?p=1325"},"modified":"2009-10-24T11:07:10","modified_gmt":"2009-10-24T10:07:10","slug":"resolver-games-are-alive","status":"publish","type":"post","link":"http:\/\/fiber-space.de\/wordpress\/2009\/10\/24\/resolver-games-are-alive\/","title":{"rendered":"&#8220;Resolver Games&#8221; are alive!"},"content":{"rendered":"<h3>Resolver One competition<\/h3>\n<p>I admit I participated in the <a href=\"http:\/\/www.resolversystems.com\/competition\/\">Resolver One<\/a> competition in the first round in January as one of the losers. When Resolver Systems announced their challenge I got the impression they encouraged using their spreadsheet almost like a medium for expressing ideas and thinking out of the box. However, Resolver Systems is yet another company which exists solely to sell stuff and consulting, not a patron of modern art or hacking experiments. So the awarded spreadsheets are looking a bit conventional and are technically unsophisticated. Their sophistication lies in external factors like the scientific ideas which are exercised. Some make extensive use of graphic capabilities of .NET which is also outside of the Resolver One API. It&#8217;s good demo stuff nevertheless and this might be their main purpose in the end.<\/p>\n<h3>Resolver Games<\/h3>\n<p>I&#8217;m glad to see <a href=\"http:\/\/www.resolversystems.com\/exchange\/sheets\/51\/\">Resolver Games<\/a> being online now which was my own contribution. Resolver Games is about simple learning games for word lists. The examples I used were from &#8220;Teuton&#8221; ( Teuton is a German Python dialect, inspired by an Artima posting of Andy Dent, which replaces Pythons English keywords and builtins by German translations of them  &#8211; Teuton is one of my fun projects and a langlet demo for EasyExtend ), the other one is IPA &#8211; the international phonetic alphabet &#8211; which is just a great learning target.<\/p>\n<p>A Resolver Game consists of a pair of Resolver One spreadsheets. One for the word-list\/game data and the other one for the game board. The game data spreadsheet is conventional and stateless. The game board is designed to be generic and independent of the particular game. The game board was tricky to program because it uses the spreadsheet for event handling and user interactions. Writing an event handler is  a bit  like scanning a screen and notify changes by comparing the actual with the previous image point by point. Resolver One stores data in the background and those data affect re-computations. Sometimes I wanted to cause a user event doing re-computations without changing the displayed data. I used the following trick: add and remove a blank to the cell-data and swap between the two representations periodically.<\/p>\n<pre lang=\"C\">\"+\" -&gt; \"+ \" -&gt; \"+\" -&gt; \"+ \" -&gt; ...<\/pre>\n<p>When the cell content is &#8220;+&#8221; change it to &#8220;+<span style=\"color: #008080;\"> <\/span>&#8221; and vice versa. This goes unnoticed because there is no visual effect associated with the blank. Once I got into whitespace oriented programming the hard problems with state changes in Resolver Games became solvable.<\/p>\n<p>One could argue that Resolver One is simply not the right-tool-for-the-job and it is overstretched in this application. I don&#8217;t disagree but this line of argument always appeared philistine to me and I reserve it to those who simply don&#8217;t know it better. A more serious objection to Resolver Games might be the fun aspect. Is it really fun to play? Resolver Games are surely a bit poor in game dramaturgy and visual effects. So I&#8217;d rather say NO, but I&#8217;m not a gamer anyway.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Resolver One competition I admit I participated in the Resolver One competition in the first round in January as one of the losers. When Resolver Systems announced their challenge I got the impression they encouraged using their spreadsheet almost like &hellip; <a href=\"http:\/\/fiber-space.de\/wordpress\/2009\/10\/24\/resolver-games-are-alive\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts\/1325"}],"collection":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1325"}],"version-history":[{"count":6,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts\/1325\/revisions"}],"predecessor-version":[{"id":1331,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/posts\/1325\/revisions\/1331"}],"wp:attachment":[{"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1325"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fiber-space.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}