<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Heroic Adventure!</title><link>http://ilovevb.net/Web/blogs/heroicadventure/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/HeroicAdventure" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><item><title>Mapping Heroic Adventure!</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/06/11/mapping-heroic-adventure.aspx</link><pubDate>Thu, 12 Jun 2008 03:01:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:146</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=146</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/06/11/mapping-heroic-adventure.aspx#comments</comments><description>&lt;p&gt;This project has gone through several different forms of source control and bug/issue/feature tracking (currently CodePlex for both) and has gotten a bit unwieldy.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Lots of features have been started but not finished. Some of the stuff that&amp;#39;s been implemented doesn&amp;#39;t work quite the way I want it to, and other things could be rewritten to take advantage of newe, faster technologies.&lt;/p&gt;&lt;p&gt;To this end, I&amp;#39;ve decided to map out all the features I want to exist in HA! from the random dungeons to the hero properties and everything in between.&amp;nbsp; I&amp;#39;m using a technique called Mind Mapping to lay it all out. I&amp;#39;m using the FreeMind software to do it. (You can grab a copy at &lt;a href="http://Freemind.Sourceforge.Net"&gt;Freemind.Sourceforge.Net&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;I&amp;#39;m only about 20% done with the map, but as I get further I&amp;#39;ll post a copy of the file for anyone who wants to look at it.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=146" width="1" height="1"&gt;</description><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/vb.net/default.aspx">vb.net</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/HA_2100_/default.aspx">HA!</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/mind+mapping/default.aspx">mind mapping</category></item><item><title>The [L]ook command</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/03/02/the-l-ook-command.aspx</link><pubDate>Sun, 02 Mar 2008 23:46:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:108</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=108</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/03/02/the-l-ook-command.aspx#comments</comments><description>&lt;p&gt;I actually managed to work on HA! some more this weekend while not doing &amp;quot;other&amp;quot; things (like driving almost 40 minutes each way to the airport to retrieve lost luggage... and tech-editing an upcoming VB 2008 book. (Paying gigs unfortunately must take priority over fun stuff.)&lt;/p&gt;&lt;p&gt;So anyway. I worked on the [L]ook command today. (Technically it&amp;#39;s the [l]ook command since the lowercase &amp;quot;l&amp;quot; is the action key.)&lt;/p&gt;&lt;p&gt;Basically, the look command functions like this:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Make cursor visible under Hero. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Display instructions at top of screen (use movement keys to look, z or [spacebar] to exit.&lt;/li&gt;&lt;li&gt;As player moves cursor around screen, display relevant information about location, following this order of precedence:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Has tile been seen before?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;creature type (eventually add link to full description, with observed stats)&lt;/li&gt;&lt;li&gt;pile of items (There is a pile of items here.)&lt;/li&gt;&lt;li&gt;single item (show item name, eventually add link to more info.)&lt;/li&gt;&lt;li&gt;trap type (if previously discovered)&lt;/li&gt;&lt;li&gt;tile description (if nothing else is on the tile, show what type of tile it is)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;If the tile has never been seen&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&amp;quot;You don&amp;#39;t know anything about this place.&amp;quot;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Loop until player presses z or [spacebar]&lt;/li&gt;&lt;li&gt;Hide cursor&lt;/li&gt;&lt;li&gt;Return control to main game loop&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The tricky part about working on this is setting the order of priority and taking things like Line of Sight, Fog of War, etc into consideration.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;This part is still in planning:&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;i&gt;A couple of the items (creatures and items) that currently only display a type will link to a description page. The cool part behind this (as planned) is that the description page will be dynamically built based on what the Hero has observed:&amp;nbsp; &lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;If you&amp;#39;ve never fought a Kobold, [l]ooking at a Kobold won&amp;#39;t tell you much other than what it looks like. After you&amp;#39;ve fought a few, [l]ooking at one will tell you a lot more, such as approximate speed, how often they hit, how hard and what weapon type they use. Additional info such as how much experience they are worth, what sort of things they drop, etc might also be added.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;Items would work the same way. If it&amp;#39;s unidentified, you get nothing but the very brief item title. Once it&amp;#39;s identified, you get a little more, and once you&amp;#39;ve used a few of that exact item type, you start getting more detailed info, averaged from usage results.&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=108" width="1" height="1"&gt;</description><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/rpg/default.aspx">rpg</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/heroic+adventure/default.aspx">heroic adventure</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/command/default.aspx">command</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/look/default.aspx">look</category></item><item><title>New HA! Release (0.1.6f)</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/02/19/new-ha-release-0-1-6f.aspx</link><pubDate>Tue, 19 Feb 2008 20:41:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:102</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=102</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/02/19/new-ha-release-0-1-6f.aspx#comments</comments><description>&lt;p&gt;Sorry about the long wait, but I finally pushed a working build onto the Codeplex site.&amp;nbsp;(You can get there via &lt;a href="http://www.heroicadventure.com/"&gt;http://www.heroicadventure.com&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Heroic Adventure 0.1.6f is purely a bugfix release but I&amp;#39;m happy to say that I have renewed interest in working on HA! after a very long and frustrating break.&amp;nbsp; I&amp;#39;ve already started on some very in demand features, including better LOS code, ranged combat, spellcasting and the ability to examine the world around you.&lt;/p&gt;
&lt;p&gt;Stay tuned.&lt;/p&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=102" width="1" height="1"&gt;</description><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/HA_2100_/default.aspx">HA!</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/new+release/default.aspx">new release</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/combat/default.aspx">combat</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/LOS/default.aspx">LOS</category></item><item><title>A more random Random.</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/02/19/a-more-random-random.aspx</link><pubDate>Tue, 19 Feb 2008 20:27:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:101</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=101</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2008/02/19/a-more-random-random.aspx#comments</comments><description>&lt;p&gt;This is the random number generator we use in HA!&amp;nbsp; It&amp;#39;s a much truer Random than System.Random.&amp;nbsp; It&amp;#39;s slower, but not as slow as the Crypto Random. &lt;/p&gt;
&lt;p&gt;Converted from C by Paul Vick, initially for use in Heroic Adventure.&amp;nbsp; Thanks Paul!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For more information about the Mersenne Twister and the concepts behind it, I encourage you to read &lt;a class="" href="http://en.wikipedia.org/wiki/Mersenne_twister"&gt;this Wikipedia article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To save some cut &amp;amp; paste heartache, I&amp;#39;ve attached the source file to this post. Be sure to grab it:&amp;nbsp; &lt;a class="" href="http://ilovevb.net/Web/blogs/heroicadventure/attachment/101.ashx"&gt;MersenneTwister.vb&lt;/a&gt;&lt;/p&gt;&lt;font color="#008000" size="4"&gt;
&lt;p&gt;&amp;#39;&lt;br /&gt;&amp;#39; An implementation of the Mersenne Twister algorithm (MT19937), developed&lt;br /&gt;&amp;#39; with reference to the C code written by Takuji Nishimura and Makoto Matsumoto&lt;br /&gt;&amp;#39; (&lt;a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html"&gt;http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html&lt;/a&gt;).&lt;br /&gt;&amp;#39;&lt;br /&gt;&amp;#39; This code is free to use for any pupose.&lt;br /&gt;&amp;#39;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;
&lt;p&gt;Option&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Strict&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;On&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;br /&gt;&amp;#39;&amp;#39;&amp;#39; A random number generator with a uniform distribution using the Mersenne &lt;br /&gt;&amp;#39;&amp;#39;&amp;#39; Twister algorithm.&lt;br /&gt;&amp;#39;&amp;#39;&amp;#39; &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Class&lt;/font&gt;&lt;font size="4"&gt; MersenneTwister&lt;/font&gt;&lt;/font&gt;&lt;font size="4"&gt; 
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Const&lt;/font&gt;&lt;font size="4"&gt; N &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;/font&gt;&lt;font size="4"&gt; = 624&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Const&lt;/font&gt;&lt;font size="4"&gt; M &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;/font&gt;&lt;font size="4"&gt; = 397&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Const&lt;/font&gt;&lt;font size="4"&gt; MATRIX_A &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;font size="4"&gt; = &amp;amp;H9908B0DFUI&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Const&lt;/font&gt;&lt;font size="4"&gt; UPPER_MASK &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;font size="4"&gt; = &amp;amp;H80000000UI&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Const&lt;/font&gt;&lt;font size="4"&gt; LOWER_MASK &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;font size="4"&gt; = &amp;amp;H7FFFFFFFUI&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; mt(N - 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Private&lt;/font&gt;&lt;font size="4"&gt; mti &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;/font&gt;&lt;font size="4"&gt; = N + 1&lt;/font&gt;&lt;/font&gt;&lt;font size="4"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Create a new Mersenne Twister random number generator.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Sub&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;New&lt;/font&gt;&lt;font size="4"&gt;()&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me&lt;/font&gt;&lt;font size="4"&gt;.New(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Date&lt;/font&gt;&lt;font size="4"&gt;.Now.Millisecond))&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Sub&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="4"&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Create a new Mersenne Twister random number generator with a&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; particular seed.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;param name=&amp;quot;seed&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;The seed for the generator.&lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;lt;CLSCompliant(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;False&lt;/font&gt;&lt;font size="4"&gt;)&amp;gt; _&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Sub&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;New&lt;/font&gt;&lt;font size="4"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;ByVal&lt;/font&gt;&lt;font size="4"&gt; seed &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;font size="4"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(0) = seed&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For&lt;/font&gt;&lt;font size="4"&gt; mti = 1 &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;To&lt;/font&gt;&lt;font size="4"&gt; N - 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(mti) = &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;((1812433253UL * (mt(mti - 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (mt(mti - 1) &amp;gt;&amp;gt; 30)) + &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;(mti)) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;HFFFFFFFFUL)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Sub&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="4"&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Create a new Mersenne Twister random number generator with a&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; particular initial key.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;param name=&amp;quot;initialKey&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;The initial key.&lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;lt;CLSCompliant(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;False&lt;/font&gt;&lt;font size="4"&gt;)&amp;gt; _&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Sub&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;New&lt;/font&gt;&lt;font size="4"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;ByVal&lt;/font&gt;&lt;font size="4"&gt; initialKey() &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;font size="4"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me&lt;/font&gt;&lt;font size="4"&gt;.New(19650218UI)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/font&gt;&lt;font size="4"&gt; i, j, k &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 1 : j = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k = &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CInt&lt;/font&gt;&lt;font size="4"&gt;(IIf(N &amp;gt; initialKey.Length, N, initialKey.Length))&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For&lt;/font&gt;&lt;font size="4"&gt; k = k &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;To&lt;/font&gt;&lt;font size="4"&gt; 1 &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Step&lt;/font&gt;&lt;font size="4"&gt; -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(i) = &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;(((mt(i) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; ((mt(i - 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (mt(i - 1) &amp;gt;&amp;gt; 30)) * 1664525UL)) + initialKey(j) + &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;(j)) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;HFFFFFFFFUI)&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1 : j += 1&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;/font&gt;&lt;font size="4"&gt; i &amp;gt;= N &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Then&lt;/font&gt;&lt;font size="4"&gt; mt(0) = mt(N - 1) : i = 1&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;/font&gt;&lt;font size="4"&gt; j &amp;gt;= initialKey.Length &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Then&lt;/font&gt;&lt;font size="4"&gt; j = 0&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For&lt;/font&gt;&lt;font size="4"&gt; k = N - 1 &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;To&lt;/font&gt;&lt;font size="4"&gt; 1 &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Step&lt;/font&gt;&lt;font size="4"&gt; -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(i) = &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;(((mt(i) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; ((mt(i - 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (mt(i - 1) &amp;gt;&amp;gt; 30)) * 1566083941UL)) - &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CUInt&lt;/font&gt;&lt;font size="4"&gt;(i)) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;HFFFFFFFFUI)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;/font&gt;&lt;font size="4"&gt; i &amp;gt;= N &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Then&lt;/font&gt;&lt;font size="4"&gt; mt(0) = mt(N - 1) : i = 1&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(0) = &amp;amp;H80000000UI&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Sub&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="4"&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Generates a random number between 0 and System.UInt32.MaxValue.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;lt;CLSCompliant(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;False&lt;/font&gt;&lt;font size="4"&gt;)&amp;gt; _&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/font&gt;&lt;font size="4"&gt; NextUInt32() &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;font color="#0000ff" size="4"&gt;Dim&lt;/font&gt;&lt;font size="4"&gt; y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Static&lt;/font&gt;&lt;font size="4"&gt; mag01() &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;UInteger&lt;/font&gt;&lt;font size="4"&gt; = {&amp;amp;H0UI, MATRIX_A}&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;If&lt;/font&gt;&lt;font size="4"&gt; mti &amp;gt;= N &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Then&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/font&gt;&lt;font size="4"&gt; kk &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Assert(mti &amp;lt;&amp;gt; N + 1, &lt;/font&gt;&lt;font color="#a31515" size="4"&gt;&amp;quot;Failed initialization&amp;quot;&lt;/font&gt;&lt;font size="4"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For&lt;/font&gt;&lt;font size="4"&gt; kk = 0 &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;To&lt;/font&gt;&lt;font size="4"&gt; N - M - 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = (mt(kk) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; UPPER_MASK) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Or&lt;/font&gt;&lt;font size="4"&gt; (mt(kk + 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; LOWER_MASK)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(kk) = mt(kk + M) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (y &amp;gt;&amp;gt; 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; mag01(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CInt&lt;/font&gt;&lt;font size="4"&gt;(y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;H1))&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For&lt;/font&gt;&lt;font size="4"&gt; kk = kk &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;To&lt;/font&gt;&lt;font size="4"&gt; N - 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = (mt(kk) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; UPPER_MASK) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Or&lt;/font&gt;&lt;font size="4"&gt; (mt(kk + 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; LOWER_MASK)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(kk) = mt(kk + (M - N)) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (y &amp;gt;&amp;gt; 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; mag01(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CInt&lt;/font&gt;&lt;font size="4"&gt;(y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;H1))&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = (mt(N - 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; UPPER_MASK) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Or&lt;/font&gt;&lt;font size="4"&gt; (mt(0) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; LOWER_MASK)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt(N - 1) = mt(M - 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (y &amp;gt;&amp;gt; 1) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; mag01(&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CInt&lt;/font&gt;&lt;font size="4"&gt;(y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;H1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mti = 0&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;If&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;y = mt(mti)&lt;br /&gt;mti += 1&lt;/font&gt;&lt;font size="4"&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39; Tempering&lt;br /&gt;&lt;/font&gt;&lt;font size="4"&gt;y = y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (y &amp;gt;&amp;gt; 11)&lt;br /&gt;y = y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; ((y &amp;lt;&amp;lt; 7) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;H9D2C5680UI)&lt;br /&gt;y = y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; ((y &amp;lt;&amp;lt; 15) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;And&lt;/font&gt;&lt;font size="4"&gt; &amp;amp;HEFC60000UI)&lt;br /&gt;y = y &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Xor&lt;/font&gt;&lt;font size="4"&gt; (y &amp;gt;&amp;gt; 18)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Return&lt;/font&gt;&lt;font size="4"&gt; y&lt;/font&gt;&lt;/font&gt;&lt;font size="4"&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="4"&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Generates a random integer between 0 and System.Int32.MaxValue.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/font&gt;&lt;font size="4"&gt; [Next]() &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CInt&lt;/font&gt;&lt;font size="4"&gt;(NextUInt32() &amp;gt;&amp;gt; 1)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/p&gt;&lt;/font&gt;&lt;font size="4"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Generates a random integer between 0 and maxValue.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;param name=&amp;quot;maxValue&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;The maximum value. Must be greater than zero.&lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/font&gt;&lt;font size="4"&gt; [Next](&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;ByVal&lt;/font&gt;&lt;font size="4"&gt; maxValue &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;/font&gt;&lt;font size="4"&gt;) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return&lt;/font&gt;&lt;font size="4"&gt; [Next](0, maxValue)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/p&gt;&lt;/font&gt;&lt;font size="4"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Generates a random integer between minValue and maxValue.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt; &lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;param name=&amp;quot;maxValue&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;The lower bound.&lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;param name=&amp;quot;minValue&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;The upper bound.&lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/font&gt;&lt;font size="4"&gt; [Next](&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;ByVal&lt;/font&gt;&lt;font size="4"&gt; minValue &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;/font&gt;&lt;font size="4"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;ByVal&lt;/font&gt;&lt;font size="4"&gt; maxValue &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;/font&gt;&lt;font size="4"&gt;) &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;CInt&lt;/font&gt;&lt;font size="4"&gt;(Math.Floor((maxValue - minValue + 1) * NextDouble() + minValue))&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/p&gt;&lt;/font&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; Generates a random floating point number between 0 and 1.&lt;br /&gt;&lt;/font&gt;&lt;font color="#008000" size="4"&gt;&amp;#39;&amp;#39;&amp;#39; &lt;/font&gt;&lt;font color="#808080" size="4"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Public&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/font&gt;&lt;font size="4"&gt; NextDouble() &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;As&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Double&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return&lt;/font&gt;&lt;font size="4"&gt; NextUInt32() * (1.0 / 4294967295.0)&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Function&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;&lt;/blockquote&gt;
&lt;p&gt;End&lt;/font&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="4"&gt;Class&lt;/p&gt;&lt;/font&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=101" width="1" height="1"&gt;</description><enclosure url="http://ilovevb.net/Web/blogs/heroicadventure/attachment/101.ashx" length="4887" type="text/plain" /><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/heroic+adventure/default.aspx">heroic adventure</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/random/default.aspx">random</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/mersenne+twister/default.aspx">mersenne twister</category></item><item><title>oops</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2007/11/21/oops.aspx</link><pubDate>Wed, 21 Nov 2007 06:53:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:6</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=6</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2007/11/21/oops.aspx#comments</comments><description>&lt;p&gt;Apparently last time I worked on HA!, I left it in a broken state. No big deal except that I happened to check it in that way.&amp;nbsp; Sorry guys.&amp;nbsp; The offending lines have been commented out, and it builds now.&amp;nbsp; And of course, yes, this means I&amp;#39;m working on it recently.&amp;nbsp; With the Thanksgiving Holiday fast approaching, I plan to spend some quality time with HA!&lt;/p&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=6" width="1" height="1"&gt;</description><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/roguelike/default.aspx">roguelike</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/vb.net/default.aspx">vb.net</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/XNA/default.aspx">XNA</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/HA_2100_/default.aspx">HA!</category></item><item><title>The road to XNA Roguelikes is paved with speedbumps.</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2007/11/04/the-road-to-xna-roguelikes-is-paved-with-speedbumps.aspx</link><pubDate>Sun, 04 Nov 2007 21:37:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:3</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=3</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2007/11/04/the-road-to-xna-roguelikes-is-paved-with-speedbumps.aspx#comments</comments><description>&lt;p&gt;XNA doesn&amp;#39;t support any type of &amp;quot;console&amp;quot; class, but it does support something cool called a SpriteFont. This takes a TrueType font and (basically) renders a spritesheet of the font, in the form of an XNB file.&lt;/p&gt;
&lt;p&gt;So if you&amp;#39;re looking to do a Roguelike in XNA, you&amp;#39;re gold, right? Just use the DrawString method and render the text on screen as sprites?&lt;/p&gt;
&lt;p&gt;Nope. &lt;/p&gt;
&lt;p&gt;Apparently (as of the XNA 1.0 Refresh) SpriteFonts do not support monospaced fonts. That isn&amp;#39;t to say that you can&amp;#39;t use a monospaced font in your SpriteFont class, just that it won&amp;#39;t actually be rendered as monospace.&lt;/p&gt;
&lt;p&gt;You have some alternatives: 1. create your own sprite based font that IS monospaced. 2. use graphics tiles in your Roguelike.&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t figured out which one I&amp;#39;ll be using (if I actually take HA! that route.)&lt;/p&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=3" width="1" height="1"&gt;</description><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/rpg/default.aspx">rpg</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/roguelike/default.aspx">roguelike</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/vb.net/default.aspx">vb.net</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/development/default.aspx">development</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/XNA/default.aspx">XNA</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/game/default.aspx">game</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/spritefonts/default.aspx">spritefonts</category></item><item><title>Moving In</title><link>http://ilovevb.net/Web/blogs/heroicadventure/archive/2007/11/03/moving-in.aspx</link><pubDate>Sat, 03 Nov 2007 16:03:00 GMT</pubDate><guid isPermaLink="false">f079997d-67b3-4d49-aaea-86507d683840:2</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://ilovevb.net/Web/blogs/heroicadventure/rsscomments.aspx?PostID=2</wfw:commentRss><comments>http://ilovevb.net/Web/blogs/heroicadventure/archive/2007/11/03/moving-in.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;m hoping this may spur a rebirth of sorts for&amp;nbsp;my&amp;nbsp;Heroic Adventure! game. I haven&amp;#39;t really been spending much time on it since XNA came out.&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a lot that remains to be done, and for now &lt;a class="" href="http://www.heroicadventure.com/"&gt;CodePlex&lt;/a&gt; seems to be the best place to continue hosting it, but I will be blogging about it here.&lt;/p&gt;
&lt;p&gt;Some things I want to work on in the future include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;getting spells in place so the magic using classes arent so horribly disadvantaged. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;I also need ranged combat. Should probably do that first since some spells will need the targeting code in place.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;skills are partially implemented&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;levelling up is in place, but needs more UI.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;more to come later.&lt;/p&gt;&lt;img src="http://ilovevb.net/Web/aggbug.aspx?PostID=2" width="1" height="1"&gt;</description><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/rpg/default.aspx">rpg</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/roguelike/default.aspx">roguelike</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/vb.net/default.aspx">vb.net</category><category domain="http://ilovevb.net/Web/blogs/heroicadventure/archive/tags/codeplex/default.aspx">codeplex</category></item></channel></rss>
