--Apple-Mail-2-726891214 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset -ASCII; formatðïwed Well, this quiz is tougher than it seems, isn't it? <laughs> I played with it a little last night before I realized I was going about it all wrong. I'll show what I did wrong and leave it to Bob to educate us about how to do it right. My problem is 100% efficiency. I was hoping to be able to generate the entire move tree for this game, expecting that the single piece and the small board might make this achievable. I tried to avoid repeating positions using rotation and mirroring of the board. Unfortunately, I was lazy and didn't want to deal with binary math for rotation and mirroring, so I used Strings. I'm sure this is horribly inefficient. I was hoping to simply generate the move tree once, Marhsal it, and work off of that in the future. But after letting my tree builder run for hours, I had nothing to show for it. Clearly, it's not the right approach. I should have been less lazy and got the data structure right to begin with. And the low number of positions probably makes the tree overkill. Files in the zip: tactics.rb -- My flawed library for dealing with positions. play_tactics.rb -- A simple game implementation, with the opponent making random moves. build_move_tree.rb -- A good reason to purchase some supercomputer time. :( James Edward Gray II --Apple-Mail-2-726891214 Content-Transfer-Encoding: base64 Content-Type: application/zip; x-unix-mode44; name onsolution.zip" Content-Disposition: attachment; filename nsolution.zip UEsDBBQAAAAIAKFESDJ8TmAocQAAAIAAAAASABAAYnVpbGRfbW92ZV90cmVlLnJiVVgMALnsCEKO zghC9QEUAD3NMQrDMAxA0V2nUNUlgWCfoGu3Qm9Q5FhQgWOnsp3Q27dkyPzh/evF92o+aPaSN7Qe vgAmn64mSI3npnMlgKVs8momgjd8lqpNS3ZZdhe6pngUeLDVNycX+7IOkRtPeNckrqySBzoF95/R hLTTOMIPUEsDBBQAAAAIAEiqRzJA23v+cQEAAIMCAAAPABAAcGxheV90YWN0aWNzLnJiVVgMANU0 CEJ3LwhC9QEUAHVRzW7bMAw+m0/BeofGQKBgOxYIcmgvPmwYsNyaYJBt1hWqUB4pZcjWvfukOO3W Q0+iSH5/0oerVVJZdY5XxEeU1J0AhH4kJ4R1tH10vdYAoz1QtcavQV10gQ3TT5i8PZHk7v3NgxON S7xR6gMP+3uxPCw+NXuAKUUFH8KEQ4Cq3LBwQeUezoWJSRjXa5zZoKo6Gh3ns5rEccR6x5/DkTaI dWkeco1r/La9a7+YkaIanbyLixrrxhzshL/xmZ+x5UgjyYIb/FNgYp3mQC0frXcDFhZTY2JPOhsy U1B1nafvZabGce/TQJtFuTaFomxl5fNyaf6bnDNmDdI+0Rvn20cbrxU5RLT4n/SOd1ziEA9QkdeC urCoJ5rwI8xR9UXxrT14x47OLz9HUPeLmn12eFaBqhOyT/jy7nlFNlBG8N5XXGLcBh7FxuRt+Xo1 iG0JdQpJZtycZo5xwbTXB9Qgclpil2LZRR80Ynx0ioFfMVn+L1BLAwQUAAAACAAtVkgy3hK2HW8D AADOCAAACgAQAHRhY3RpY3MucmJVWAwAMe0IQpbtCEL1ARQAvVZtb5swEP5MfsWNqRJszGnadN2i Re1P2MdJ2YRIcFZPxCDbZGRN/vvuzkCge9U+jISA7x6fn3uz8/zZtLZmulZ6KvUeTL0+TCabIrMW 3pdWOVXqSZDLLVhZbIUpXeZkBOsyMznEkyDgN2GrQrkoDGOxz4pa2jRzEVwncJvAbIb3TYJQfwHA VQKvUXiJ93ykQOhNAm9Rfj2SI3KewBuUX0EsvpQKOUmdTwbMdsqY0vw9M+SAq12OlrllXje02IjV zJN9SxRGihv2gNj+hllzSF2ZKp3LJoImgQOzO8ALmMNLaH7AM5KmNIcIFINXCi4oAgqmMP80nKE0 pigr1Lc+KUsI8fMCZuiKq41GwWKrjHVs6Z5BwdKDSUAYHNODhlnhLA61KnBEAi0bl1ZtKVi0toKW Aaoz50xqZJZLAws2mcDCm/L8eHZrW23h3jPqKbkHqWFh5abUOcjCyk6B9oOhn0jAqnUh0125lxaN 8bNjE1yKunJldB1DXsLxcKQsjWUNy4JmJCyk9mI2h9aiRggUxgLDn4ldVjGsAwWcH26OUVY1JjX2 EI4LXbUuJPYQ2WU7j2QGfPhXOGH2CU6Y6k1R5/IuCj+ErYHWsXfveOrYqA8KXoc/eHH4Fy+wNPX/ 9MKP/W+b1baqKOEkwfLXudqgITKr5de0K3HPQOR1RXXlQUJmmwdiqI7QY1eKSWJTfAjhNBk5j6Co BybnUo1HRJCHues7h2qXTFF/BSPculZFnjojkbaVUvvaZOY8xFjQ2jg0kruARqDOC+B3XOXeIUrd jlNHXBGBhjk4O451ZeQeJbSE2GIkKADVESoi2k0gv6n7CMspeNrUyK3TURP+CtPaY3X7LgZuE4f4 aWa9z+dGXi4jKLHtDUfms9TS4ImS0rZDweD9R+Duc9ftTeQITxA8ynwVRed0eKUflqa10NfkQBuP E4uFT64ojN6rWZ9gYTeZjqbicX6axn3vmPIrpwCfgxOl7YjmCOHFlV3AhQ1xn15FCl4uYRYn0FB7 0KEQhR8d9wau3wl0OOajtK3kxiEofP7oyZwA38jtU9hDK6P2GLFu1iiC3Qbe74tZnrOiDVc8FA06 oT08738Wph4Pm9oYqf05ci2c2mFj5iWFpdMsYWC0+68wnNZtKOfsddofM9dq/I7i3cIabKVPyox+ 6P4OUEsBAhUDFAAAAAgAoURIMnxOYChxAAAAgAAAABIADAAAAAAAAQAAQKSBAAAAAGJ1aWxkX21v dmVfdHJlZS5yYlVYCAC57AhCjs4IQlBLAQIVAxQAAAAIAEiqRzJA23v+cQEAAIMCAAAPAAwAAAAA AAEAAECkgbEAAABwbGF5X3RhY3RpY3MucmJVWAgA1TQIQncvCEJQSwECFQMUAAAACAAtVkgy3hK2 HW8DAADOCAAACgAMAAAAAAABAABApIFfAgAAdGFjdGljcy5yYlVYCAAx7QhClu0IQlBLBQYAAAAA AwADANkAAAAGBgAAAAA-Apple-Mail-2-726891214--