<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>Reflections, and Rotations, of a matrix</title>
		<link>http://tibasicdev.wikidot.com/forum/t-6784312/reflections-and-rotations-of-a-matrix</link>
		<description>Posts in the discussion thread &quot;Reflections, and Rotations, of a matrix&quot; - Game board rotation and reflection</description>
				<copyright></copyright>
		<lastBuildDate>Wed, 11 Mar 2026 17:00:46 +0000</lastBuildDate>
		
					<item>
				<guid>http://tibasicdev.wikidot.com/forum/t-6784312#post-3899574</guid>
				<title>Re: Reflections, and Rotations, of a matrix</title>
				<link>http://tibasicdev.wikidot.com/forum/t-6784312/reflections-and-rotations-of-a-matrix#post-3899574</link>
				<description></description>
				<pubDate>Sun, 05 Aug 2018 15:17:21 +0000</pubDate>
				<wikidot:authorName>Trenly</wikidot:authorName>				<wikidot:authorUserId>1905506</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>There is no limit on the probability in the real world, but traditionally it starts with 2 of each in the box. A win adds three, loss subtracts 1, and tie adds 1. Because of the highly predictable nature of the game, if there is a bin which ever reaches 62, it is almost certainly the only bin with a significant probability as the others will typically be at only a few pieces. Given that, I figured base 62 would be enough of a margin to implement a cap</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://tibasicdev.wikidot.com/forum/t-6784312#post-3898983</guid>
				<title>Re: Reflections, and Rotations, of a matrix</title>
				<link>http://tibasicdev.wikidot.com/forum/t-6784312/reflections-and-rotations-of-a-matrix#post-3898983</link>
				<description></description>
				<pubDate>Sun, 05 Aug 2018 04:43:35 +0000</pubDate>
				<wikidot:authorName>kg583</wikidot:authorName>				<wikidot:authorUserId>2203149</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>To answer the second question, unless I'm mistaken, you wouldn't need to differentiate between those two boards because one is a reflection of the other. The min of those two is 102, so that is the lookup that is used.</p> <p>For the gameboard probabilities, a string would actually work better now that I think about it, though I suppose you could even increase the base unless there is already some limit on the probability (if you kept playing against MENACE, it would keep adding &quot;stones&quot; to that box and eventually cross 62, going over the character limit).</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://tibasicdev.wikidot.com/forum/t-6784312#post-3898928</guid>
				<title>Re: Reflections, and Rotations, of a matrix</title>
				<link>http://tibasicdev.wikidot.com/forum/t-6784312/reflections-and-rotations-of-a-matrix#post-3898928</link>
				<description></description>
				<pubDate>Sun, 05 Aug 2018 03:45:04 +0000</pubDate>
				<wikidot:authorName>Trenly</wikidot:authorName>				<wikidot:authorUserId>1905506</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>How would you recall the lists for 305 individual gameboards? How would you differentiate between the list for 000000102 and 000000201? Since each gameboard has to have a list of corresponding probabilities</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://tibasicdev.wikidot.com/forum/t-6784312#post-3898571</guid>
				<title>Re: Reflections, and Rotations, of a matrix</title>
				<link>http://tibasicdev.wikidot.com/forum/t-6784312/reflections-and-rotations-of-a-matrix#post-3898571</link>
				<description></description>
				<pubDate>Sat, 04 Aug 2018 19:40:00 +0000</pubDate>
				<wikidot:authorName>kg583</wikidot:authorName>				<wikidot:authorUserId>2203149</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>This sounds like it would work as a way to make searching through reflections and rotations more efficient.<br /> The one recommendation I'd say is that you don't even need to store the gameboards in strings. Just store them in their own lists so you don't waste time converting in and out of base 62.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://tibasicdev.wikidot.com/forum/t-6784312#post-3898517</guid>
				<title>Reflections, and Rotations, of a matrix</title>
				<link>http://tibasicdev.wikidot.com/forum/t-6784312/reflections-and-rotations-of-a-matrix#post-3898517</link>
				<description></description>
				<pubDate>Sat, 04 Aug 2018 18:06:38 +0000</pubDate>
				<wikidot:authorName>Trenly</wikidot:authorName>				<wikidot:authorUserId>1905506</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>This is related to my recreation of MENACE<br /> I want to know if my theory will work.</p> <p>If MENACE moves first there are 305 unique rotations or reflections of the gameboard. Here is my theory.</p> <div class="code"> <pre><code>Take the current gameboard, as a matrix. X=1, O=2, Blank = 0 concatenate the numbers of the matrix such as Row1,Row2,Row3, which will yield a number (Eg: 012002010) Take that number as an expression, and store it to a temporary list Take the next rotation, concat the numbers, and append to the list Repeat for all 8 rotations or reflections. This yields a list of all the possible rotations or reflections of the gameboard, stored as a number Take the min of that list, and find its position in the list. Example, if the min is 12 (gameboard 000000012 after reflection/rotation), its location may be 5. Store the location temporarily Check if that min gameboard is in the list of gameboards already stored If it is already stored, recall the data for it If it isnt already stored, create the data for it Any spot which is a 0 stores as 5, any spot which was a 1 or 2 stores as 0 Once the data is recalled, check which location in the list the min was Based on the location, call the inverse reflection-rotation sequence for the given location Make a selection based on the recalled data.</code></pre></div> <p>I know this may seem a bit complex, but if there are any questions just ask. My plan is to store 35 gameboards in a string, with the exception of STR9 and STR0. Str9 will contain 25 gameboards and STR0 will hold the base conversion string. Each gameboard will be 9 characters long, and the data will be stored in base 62 (0-9, A-Z, and a-z).</p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>