<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Triforce Programming Challenge</title>
		<link>http://www.allegro.cc/forums/view/603383</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 15 Mar 2010 22:12:54 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My internet friend had an interesting assignment for his programming midterm, so I thought I&#39;d share it with you guys and see how creative we can get with our solutions.</p><p>Use whatever language you like; cookies for participants. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><b>The Problem</b></p><p>Assume the user gives you a numeric input ranging from 1 to 7.</p><p>When the input is 1, print the following:</p><pre class="terminal">***********
 *********
  *******
   *****
    ***
     *</pre><p>

Values greater than one should generate multiples of the pattern, ending with the one above, but always stacked symmetrically.</p><p>For example, 3 should print the following:</p><pre class="terminal scroll">*********** *********** ***********
 *********   *********   ********* 
  *******     *******     *******  
   *****       *****       *****   
    ***         ***         ***    
     *           *           *     
      *********** ***********
       *********   ********* 
        *******     *******  
         *****       *****   
          ***         ***    
           *           *     
            ***********
             ********* 
              *******  
               *****   
                ***    
                 *     </pre><p>

For bonus points, also print the reverse:</p><pre class="terminal scroll">*********** *********** ***********
 *********   *********   ********* 
  *******     *******     *******  
   *****       *****       *****   
    ***         ***         ***    
     *           *           *     
      *********** ***********
       *********   ********* 
        *******     *******  
         *****       *****   
          ***         ***    
           *           *     
            ***********
             ********* 
              *******  
               *****   
                ***    
                 *     
                 *     
                ***    
               *****   
              *******  
             ********* 
            ***********
           *           *     
          ***         ***    
         *****       *****   
        *******     *******  
       *********   ********* 
      *********** ***********
     *           *           *     
    ***         ***         ***    
   *****       *****       *****   
  *******     *******     *******  
 *********   *********   ********* 
*********** *********** ***********</pre><p>

<b>My Solution</b></p><p>I used C#. I wrote the tests first, as I do with most programming tasks, especially those with detailed data manipulation. The first pass was completely imperative, with a ton of loops and counters all shoving stuff into a buffer, but once I had something working I boiled it down to its essence and LINQified it.</p><p>Source code below.</p><div class="spoiler"><p>

</p><div class="source-code"><div class="toolbar"><span class="name">Program.cs</span><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">using</span> System<span class="k2">;</span>
<span class="number">  2</span><span class="k1">using</span> System.Collections.Generic<span class="k2">;</span>
<span class="number">  3</span><span class="k1">using</span> System.Linq<span class="k2">;</span>
<span class="number">  4</span><span class="k1">using</span> System.Text<span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">namespace</span> ConsoleApplication1
<span class="number">  7</span><span class="k2">{</span>
<span class="number">  8</span>    <span class="k1">class</span> Program
<span class="number">  9</span>    <span class="k2">{</span>
<span class="number"> 10</span>        <span class="k1">static</span> <span class="k1">void</span> Main<span class="k2">(</span>string<span class="k2">[</span><span class="k2">]</span> args<span class="k2">)</span>
<span class="number"> 11</span>        <span class="k2">{</span>
<span class="number"> 12</span>            Console.WriteLine<span class="k2">(</span><span class="s">"Welcome, Hero of Time"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>            Console.WriteLine<span class="k2">(</span><span class="s">"How many triforces?"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>            var iterations <span class="k3">=</span> Int32.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>            Console.WriteLine<span class="k2">(</span><span class="s">"Do you want to reverse them as well?"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>            var reverse <span class="k3">=</span> Boolean.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>            Console.WriteLine<span class="k2">(</span>Triforce.MakeTriforce<span class="k2">(</span>iterations, reverse<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>            Console.ReadKey<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>        <span class="k2">}</span>
<span class="number"> 20</span>    <span class="k2">}</span>
<span class="number"> 21</span><span class="k2">}</span>
</div></div><p>

</p><div class="source-code"><div class="toolbar"><span class="name">Triforce.cs</span><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">using</span> System<span class="k2">;</span>
<span class="number">  2</span><span class="k1">using</span> System.Collections.Generic<span class="k2">;</span>
<span class="number">  3</span><span class="k1">using</span> System.Linq<span class="k2">;</span>
<span class="number">  4</span><span class="k1">using</span> System.Text<span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">namespace</span> ConsoleApplication1
<span class="number">  7</span><span class="k2">{</span>
<span class="number">  8</span>    <span class="k1">public</span> <span class="k1">static</span> <span class="k1">class</span> Triforce
<span class="number">  9</span>    <span class="k2">{</span>
<span class="number"> 10</span>        <span class="k1">private</span> <span class="k1">static</span> IEnumerable<span class="k3">&lt;</span>string&gt; makeTriforceIteration<span class="k2">(</span><span class="k1">int</span> buffer, <span class="k1">int</span> iteration<span class="k2">)</span>
<span class="number"> 11</span>        <span class="k2">{</span>
<span class="number"> 12</span>            var triforce <span class="k3">=</span> @<span class="s">"***********</span>
<span class="number"> 13</span><span class="s"> ********* </span>
<span class="number"> 14</span><span class="s">  *******  </span>
<span class="number"> 15</span><span class="s">   *****   </span>
<span class="number"> 16</span><span class="s">    ***    </span>
<span class="number"> 17</span><span class="s">     *     "</span><span class="k2">;</span>
<span class="number"> 18</span>            var bufferString <span class="k3">=</span> String.Join<span class="k2">(</span><span class="s">""</span>, Enumerable.Repeat<span class="k2">(</span><span class="s">"      "</span>, buffer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>            <span class="k1">return</span> from <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> in triforce.Split<span class="k2">(</span><span class="k1">new</span> string<span class="k2">[</span><span class="k2">]</span> <span class="k2">{</span> Environment.NewLine <span class="k2">}</span>, StringSplitOptions.None<span class="k2">)</span>
<span class="number"> 20</span>                   <a href="http://www.delorie.com/djgpp/doc/libc/libc_688.html" target="_blank">select</a> bufferString <span class="k3">+</span> String.Join<span class="k2">(</span><span class="s">" "</span>, Enumerable.Repeat<span class="k2">(</span><a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a>, iteration<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>        <span class="k2">}</span>
<span class="number"> 22</span>
<span class="number"> 23</span>        <span class="k1">public</span> <span class="k1">static</span> string MakeTriforce<span class="k2">(</span><span class="k1">int</span> iterations, <span class="k1">bool</span> reverse<span class="k2">)</span>
<span class="number"> 24</span>        <span class="k2">{</span>
<span class="number"> 25</span>            var result <span class="k3">=</span> <span class="k2">(</span>from buffer in Enumerable.Range<span class="k2">(</span><span class="n">0</span>, iterations<span class="k2">)</span>
<span class="number"> 26</span>                         let iteration <span class="k3">=</span> iterations <span class="k3">-</span> buffer
<span class="number"> 27</span>                         <a href="http://www.delorie.com/djgpp/doc/libc/libc_688.html" target="_blank">select</a> makeTriforceIteration<span class="k2">(</span>buffer, iteration<span class="k2">)</span><span class="k2">)</span>.SelectMany<span class="k2">(</span>s <span class="k3">=</span><span class="k3">&gt;</span> s<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>            <span class="k1">if</span> <span class="k2">(</span>reverse<span class="k2">)</span>
<span class="number"> 29</span>            <span class="k2">{</span>
<span class="number"> 30</span>                result <span class="k3">=</span> result.Concat<span class="k2">(</span>result.Reverse<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>            <span class="k2">}</span>
<span class="number"> 32</span>            <span class="k1">return</span> String.Join<span class="k2">(</span>Environment.NewLine, result<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>        <span class="k2">}</span>
<span class="number"> 34</span>    <span class="k2">}</span>
<span class="number"> 35</span><span class="k2">}</span>
</div></div><p>

</p><div class="source-code"><div class="toolbar"><span class="name">TriforceTest.cs</span><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="k1">using</span> System<span class="k2">;</span>
<span class="number">   2</span><span class="k1">using</span> System.Collections.Generic<span class="k2">;</span>
<span class="number">   3</span><span class="k1">using</span> System.Linq<span class="k2">;</span>
<span class="number">   4</span><span class="k1">using</span> System.Text<span class="k2">;</span>
<span class="number">   5</span><span class="k1">using</span> NUnit.Framework<span class="k2">;</span>
<span class="number">   6</span>
<span class="number">   7</span><span class="k1">namespace</span> ConsoleApplication1
<span class="number">   8</span><span class="k2">{</span>
<span class="number">   9</span>    <span class="k2">[</span>TestFixture<span class="k2">]</span>
<span class="number">  10</span>    <span class="k1">public</span> <span class="k1">class</span> TriforceTest
<span class="number">  11</span>    <span class="k2">{</span>
<span class="number">  12</span>        <span class="k2">[</span>Test<span class="k2">]</span>
<span class="number">  13</span>        <span class="k1">public</span> <span class="k1">void</span> ProducesASingleTriforceWhenInputIs1<span class="k2">(</span><span class="k2">)</span>
<span class="number">  14</span>        <span class="k2">{</span>
<span class="number">  15</span>            var singleTriforce <span class="k3">=</span> @<span class="s">"***********</span>
<span class="number">  16</span><span class="s"> ********* </span>
<span class="number">  17</span><span class="s">  *******  </span>
<span class="number">  18</span><span class="s">   *****   </span>
<span class="number">  19</span><span class="s">    ***    </span>
<span class="number">  20</span><span class="s">     *     "</span><span class="k2">;</span>
<span class="number">  21</span>            Assert.That<span class="k2">(</span>Triforce.MakeTriforce<span class="k2">(</span><span class="n">1</span>, <span class="k1">false</span><span class="k2">)</span>, Is.EqualTo<span class="k2">(</span>singleTriforce<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>        <span class="k2">}</span>
<span class="number">  23</span>
<span class="number">  24</span>        <span class="k2">[</span>Test<span class="k2">]</span>
<span class="number">  25</span>        <span class="k1">public</span> <span class="k1">void</span> ProducesTwoTrifocesWhenInputIs2<span class="k2">(</span><span class="k2">)</span>
<span class="number">  26</span>        <span class="k2">{</span>
<span class="number">  27</span>            var doubleTriforce <span class="k3">=</span> @<span class="s">"*********** ***********</span>
<span class="number">  28</span><span class="s"> *********   ********* </span>
<span class="number">  29</span><span class="s">  *******     *******  </span>
<span class="number">  30</span><span class="s">   *****       *****   </span>
<span class="number">  31</span><span class="s">    ***         ***    </span>
<span class="number">  32</span><span class="s">     *           *     </span>
<span class="number">  33</span><span class="s">      ***********</span>
<span class="number">  34</span><span class="s">       ********* </span>
<span class="number">  35</span><span class="s">        *******  </span>
<span class="number">  36</span><span class="s">         *****   </span>
<span class="number">  37</span><span class="s">          ***    </span>
<span class="number">  38</span><span class="s">           *     "</span><span class="k2">;</span>
<span class="number">  39</span>            Assert.That<span class="k2">(</span>Triforce.MakeTriforce<span class="k2">(</span><span class="n">2</span>, <span class="k1">false</span><span class="k2">)</span>, Is.EqualTo<span class="k2">(</span>doubleTriforce<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>        <span class="k2">}</span>
<span class="number">  41</span>
<span class="number">  42</span>        <span class="k2">[</span>Test<span class="k2">]</span>
<span class="number">  43</span>        <span class="k1">public</span> <span class="k1">void</span> ProducesThreeTrifocesWhenInputIs3<span class="k2">(</span><span class="k2">)</span>
<span class="number">  44</span>        <span class="k2">{</span>
<span class="number">  45</span>            var tripleTriforce <span class="k3">=</span> @<span class="s">"*********** *********** ***********</span>
<span class="number">  46</span><span class="s"> *********   *********   ********* </span>
<span class="number">  47</span><span class="s">  *******     *******     *******  </span>
<span class="number">  48</span><span class="s">   *****       *****       *****   </span>
<span class="number">  49</span><span class="s">    ***         ***         ***    </span>
<span class="number">  50</span><span class="s">     *           *           *     </span>
<span class="number">  51</span><span class="s">      *********** ***********</span>
<span class="number">  52</span><span class="s">       *********   ********* </span>
<span class="number">  53</span><span class="s">        *******     *******  </span>
<span class="number">  54</span><span class="s">         *****       *****   </span>
<span class="number">  55</span><span class="s">          ***         ***    </span>
<span class="number">  56</span><span class="s">           *           *     </span>
<span class="number">  57</span><span class="s">            ***********</span>
<span class="number">  58</span><span class="s">             ********* </span>
<span class="number">  59</span><span class="s">              *******  </span>
<span class="number">  60</span><span class="s">               *****   </span>
<span class="number">  61</span><span class="s">                ***    </span>
<span class="number">  62</span><span class="s">                 *     "</span><span class="k2">;</span>
<span class="number">  63</span>            Assert.That<span class="k2">(</span>Triforce.MakeTriforce<span class="k2">(</span><span class="n">3</span>, <span class="k1">false</span><span class="k2">)</span>, Is.EqualTo<span class="k2">(</span>tripleTriforce<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>        <span class="k2">}</span>
<span class="number">  65</span>
<span class="number">  66</span>        <span class="k2">[</span>Test<span class="k2">]</span>
<span class="number">  67</span>        <span class="k1">public</span> <span class="k1">void</span> ProducesReverse<span class="k2">(</span><span class="k2">)</span>
<span class="number">  68</span>        <span class="k2">{</span>
<span class="number">  69</span>            var reverseTriforce <span class="k3">=</span> @<span class="s">"*********** *********** ***********</span>
<span class="number">  70</span><span class="s"> *********   *********   ********* </span>
<span class="number">  71</span><span class="s">  *******     *******     *******  </span>
<span class="number">  72</span><span class="s">   *****       *****       *****   </span>
<span class="number">  73</span><span class="s">    ***         ***         ***    </span>
<span class="number">  74</span><span class="s">     *           *           *     </span>
<span class="number">  75</span><span class="s">      *********** ***********</span>
<span class="number">  76</span><span class="s">       *********   ********* </span>
<span class="number">  77</span><span class="s">        *******     *******  </span>
<span class="number">  78</span><span class="s">         *****       *****   </span>
<span class="number">  79</span><span class="s">          ***         ***    </span>
<span class="number">  80</span><span class="s">           *           *     </span>
<span class="number">  81</span><span class="s">            ***********</span>
<span class="number">  82</span><span class="s">             ********* </span>
<span class="number">  83</span><span class="s">              *******  </span>
<span class="number">  84</span><span class="s">               *****   </span>
<span class="number">  85</span><span class="s">                ***    </span>
<span class="number">  86</span><span class="s">                 *     </span>
<span class="number">  87</span><span class="s">                 *     </span>
<span class="number">  88</span><span class="s">                ***    </span>
<span class="number">  89</span><span class="s">               *****   </span>
<span class="number">  90</span><span class="s">              *******  </span>
<span class="number">  91</span><span class="s">             ********* </span>
<span class="number">  92</span><span class="s">            ***********</span>
<span class="number">  93</span><span class="s">           *           *     </span>
<span class="number">  94</span><span class="s">          ***         ***    </span>
<span class="number">  95</span><span class="s">         *****       *****   </span>
<span class="number">  96</span><span class="s">        *******     *******  </span>
<span class="number">  97</span><span class="s">       *********   ********* </span>
<span class="number">  98</span><span class="s">      *********** ***********</span>
<span class="number">  99</span><span class="s">     *           *           *     </span>
<span class="number"> 100</span><span class="s">    ***         ***         ***    </span>
<span class="number"> 101</span><span class="s">   *****       *****       *****   </span>
<span class="number"> 102</span><span class="s">  *******     *******     *******  </span>
<span class="number"> 103</span><span class="s"> *********   *********   ********* </span>
<span class="number"> 104</span><span class="s">*********** *********** ***********"</span><span class="k2">;</span>
<span class="number"> 105</span>            Assert.That<span class="k2">(</span>Triforce.MakeTriforce<span class="k2">(</span><span class="n">3</span>, <span class="k1">true</span><span class="k2">)</span>, Is.EqualTo<span class="k2">(</span>reverseTriforce<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</span>        <span class="k2">}</span>
<span class="number"> 107</span>    <span class="k2">}</span>
<span class="number"> 108</span><span class="k2">}</span>
</div></div><p>

</p></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Mon, 08 Mar 2010 11:14:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k3">&lt;</span>?php
<span class="number">  2</span>  <span class="k2">(</span>$t <span class="k3">=</span> $argc <span class="k3">&gt;</span> <span class="n">1</span> ? intval<span class="k2">(</span>$argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span> <span class="k2">:</span> <span class="n">3</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span> <span class="k1">or</span> die<span class="k2">(</span><span class="s">"enter count &gt; 0\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>  <span class="k2">(</span>$A <span class="k3">=</span> $argc <span class="k3">&gt;</span> <span class="n">2</span> ? intval<span class="k2">(</span>$argv<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span> <span class="k3">|</span> <span class="n">1</span> <span class="k2">:</span> <span class="n">11</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span> <span class="k1">or</span> die<span class="k2">(</span><span class="s">"enter size &gt; 0\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>  $B <span class="k3">=</span> <span class="k2">(</span>$A <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>  ob_start<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">do</span>
<span class="number">  8</span>  <span class="k2">{</span>
<span class="number">  9</span>    <span class="k1">for</span> <span class="k2">(</span>$z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> $z <span class="k3">&lt;</span> $B<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>$z<span class="k2">)</span>
<span class="number"> 10</span>    <span class="k2">{</span>
<span class="number"> 11</span>      echo str_repeat<span class="k2">(</span><span class="s">' '</span>, $s<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>      <span class="k1">for</span> <span class="k2">(</span>$y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> $y <span class="k3">&lt;</span> $t<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>$y<span class="k2">)</span> echo str_repeat<span class="k2">(</span><span class="s">' '</span>, $z<span class="k2">)</span>.str_repeat<span class="k2">(</span><span class="s">'*'</span>, $A-<span class="k2">(</span>$z<span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">)</span>.str_repeat<span class="k2">(</span><span class="s">' '</span>, $z<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>      echo <span class="s">"\n"</span><span class="k2">;</span>
<span class="number"> 14</span>    <span class="k2">}</span>
<span class="number"> 15</span>    $s <span class="k3">+</span><span class="k3">=</span> $B<span class="k2">;</span>
<span class="number"> 16</span>  <span class="k2">}</span>
<span class="number"> 17</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">-</span><span class="k3">-</span>$t<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>  echo rtrim<span class="k2">(</span>$b <span class="k3">=</span> ob_get_clean<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>  foreach <span class="k2">(</span>array_reverse<span class="k2">(</span>explode<span class="k2">(</span><span class="s">"\n"</span>, $b<span class="k2">)</span><span class="k2">)</span> as $l<span class="k2">)</span> echo <span class="s">"$l\n"</span><span class="k2">;</span>
<span class="number"> 21</span>?<span class="k3">&gt;</span>
</div></div><p>

Edit: added second parameter.</p><p>./triforce.php [count [size]]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Mon, 08 Mar 2010 11:34:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nice.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Mon, 08 Mar 2010 11:35:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wrote this one in C, my usual choice for everything. Thought of using python, but meh.<br />Does the inverse one as well <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p><div class="spoiler"><p>
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k1">void</span> print_chunk<span class="k2">(</span><span class="k1">char</span> string<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> count, <span class="k1">int</span> starts<span class="k2">)</span>
<span class="number">  4</span><span class="k2">{</span>
<span class="number">  5</span>        <span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  6</span>        <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> starts<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  7</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"      "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>        <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> count<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  9</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s"</span>, string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span><span class="k2">}</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="k1">void</span> print_triforce_strip<span class="k2">(</span><span class="k1">int</span> count, <span class="k1">int</span> start, <span class="k1">int</span> dir<span class="k2">)</span>
<span class="number"> 14</span><span class="k2">{</span>
<span class="number"> 15</span>        <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 16</span>                print_chunk<span class="k2">(</span><span class="s">"*********** "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>                print_chunk<span class="k2">(</span><span class="s">" *********  "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>                print_chunk<span class="k2">(</span><span class="s">"  *******   "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>                print_chunk<span class="k2">(</span><span class="s">"   *****    "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>                print_chunk<span class="k2">(</span><span class="s">"    ***     "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>                print_chunk<span class="k2">(</span><span class="s">"     *      "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>        <span class="k2">}</span><span class="k1">else</span><span class="k2">{</span>
<span class="number"> 23</span>                print_chunk<span class="k2">(</span><span class="s">"     *      "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>                print_chunk<span class="k2">(</span><span class="s">"    ***     "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>                print_chunk<span class="k2">(</span><span class="s">"   *****    "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>                print_chunk<span class="k2">(</span><span class="s">"  *******   "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>                print_chunk<span class="k2">(</span><span class="s">" *********  "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>                print_chunk<span class="k2">(</span><span class="s">"*********** "</span>, count, start<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>        <span class="k2">}</span>
<span class="number"> 30</span><span class="k2">}</span>
<span class="number"> 31</span>        
<span class="number"> 32</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 33</span><span class="k2">{</span>
<span class="number"> 34</span>        <span class="k1">int</span> i<span class="k2">;</span>
<span class="number"> 35</span>        <span class="k1">int</span> c <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>        <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> c<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 37</span>                print_triforce_strip<span class="k2">(</span>c <span class="k3">-</span> i, i, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>        <span class="k2">}</span>                      
<span class="number"> 39</span>        <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> c<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 40</span>                print_triforce_strip<span class="k2">(</span>i <span class="k3">+</span> <span class="n">1</span>, c <span class="k3">-</span> i <span class="k3">-</span> <span class="n">1</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>        <span class="k2">}</span>
<span class="number"> 42</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 43</span><span class="k2">}</span>
</div></div><p>
</p></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trap15)</author>
		<pubDate>Mon, 08 Mar 2010 11:52:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I like this version better:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k3">&lt;</span>?php
<span class="number">  2</span>  <span class="k2">(</span>$t <span class="k3">=</span> $argc <span class="k3">&gt;</span> <span class="n">1</span> ? intval<span class="k2">(</span>$argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span> <span class="k2">:</span> <span class="n">3</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span> <span class="k1">or</span> die<span class="k2">(</span><span class="s">"enter count &gt; 0\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>  <span class="k2">(</span>$A <span class="k3">=</span> $argc <span class="k3">&gt;</span> <span class="n">2</span> ? intval<span class="k2">(</span>$argv<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span> <span class="k3">|</span> <span class="n">1</span> <span class="k2">:</span> <span class="n">11</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span> <span class="k1">or</span> die<span class="k2">(</span><span class="s">"enter size &gt; 0\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>  $B <span class="k3">=</span> <span class="k2">(</span>$A <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>  <span class="k1">for</span> <span class="k2">(</span>$j <span class="k3">=</span> <span class="n">0</span>, $b <span class="k3">=</span> <span class="s">''</span><span class="k2">;</span> $j <span class="k3">&lt;</span> $t<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>$j<span class="k2">)</span>
<span class="number">  7</span>  <span class="k2">{</span>
<span class="number">  8</span>    $l <span class="k3">=</span> str_repeat<span class="k2">(</span><span class="s">' '</span>,$j <span class="k3">*</span> $B<span class="k2">)</span>.str_repeat<span class="k2">(</span><span class="s">' '</span>.str_repeat<span class="k2">(</span><span class="s">'*'</span>, $A<span class="k2">)</span>, $t-$j<span class="k2">)</span>. <span class="s">' '</span><span class="k2">;</span>
<span class="number">  9</span>    <span class="k1">for</span> <span class="k2">(</span>$i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> $i <span class="k3">&lt;</span> $B<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>$i, $l <span class="k3">=</span> strtr<span class="k2">(</span>$l, array<span class="k2">(</span><span class="s">" *"</span><span class="k3">=</span><span class="k3">&gt;</span><span class="s">"  "</span>, <span class="s">"* *"</span> <span class="k3">=</span><span class="k3">&gt;</span> <span class="s">"   "</span>, <span class="s">"* "</span><span class="k3">=</span><span class="k3">&gt;</span><span class="s">"  "</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 10</span>      $b .<span class="k3">=</span> <span class="s">"$l\n"</span><span class="k2">;</span>
<span class="number"> 11</span>  <span class="k2">}</span>
<span class="number"> 12</span>
<span class="number"> 13</span>  echo rtrim<span class="k2">(</span>$b<span class="k2">)</span>.implode<span class="k2">(</span><span class="s">"\n"</span>, array_reverse<span class="k2">(</span>explode<span class="k2">(</span><span class="s">"\n"</span>, $b<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>.<span class="s">"\n"</span><span class="k2">;</span>
<span class="number"> 14</span>?<span class="k3">&gt;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Mon, 08 Mar 2010 11:58:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Anyone gonna make a 1-liner Perl script to do it? <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trap15)</author>
		<pubDate>Mon, 08 Mar 2010 12:00:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Mine is in python and uses combinators. Not the shortest..</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#!/usr/bin/env python</span>
<span class="number">   2</span>
<span class="number">   3</span>def reverse<span class="k2">(</span>l<span class="k2">)</span><span class="k2">:</span>
<span class="number">   4</span>    <span class="k1">return</span> l<span class="k2">[</span><span class="k2">:</span><span class="k2">:</span><span class="k3">-</span><span class="n">1</span><span class="k2">]</span>
<span class="number">   5</span>
<span class="number">   6</span><span class="k1">class</span> Triangle:
<span class="number">   7</span>    def __init__<span class="k2">(</span>self, height <span class="k3">=</span> <span class="n">7</span><span class="k2">)</span><span class="k2">:</span>
<span class="number">   8</span>        self.height <span class="k3">=</span> height
<span class="number">   9</span>
<span class="number">  10</span>    def lines<span class="k2">(</span>self, pixel <span class="k3">=</span> <span class="s">'*'</span><span class="k2">)</span><span class="k2">:</span>
<span class="number">  11</span>        <span class="k1">for</span> length in range<span class="k2">(</span>self.height <span class="k3">-</span> <span class="n">1</span>, <span class="n">0</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">:</span>
<span class="number">  12</span>            yield <span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span>self.height <span class="k3">-</span> length <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">+</span> pixel <span class="k3">*</span> <span class="k2">(</span>length <span class="k3">*</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">+</span> <span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span>self.height <span class="k3">-</span> length<span class="k2">)</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">class</span> Printer:
<span class="number">  15</span>    def __init__<span class="k2">(</span>self, <a href="http://www.allegro.cc/manual/triangle" target="_blank"><span class="a">triangle</span></a><span class="k2">)</span><span class="k2">:</span>
<span class="number">  16</span>        self.triangle <span class="k3">=</span> <a href="http://www.allegro.cc/manual/triangle" target="_blank"><span class="a">triangle</span></a>
<span class="number">  17</span>
<span class="number">  18</span>    def show<span class="k2">(</span>self<span class="k2">)</span><span class="k2">:</span>
<span class="number">  19</span>        <span class="k1">for</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> in self.triangle.lines<span class="k2">(</span><span class="k2">)</span><span class="k2">:</span>
<span class="number">  20</span>            yield <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">class</span> CombinePrinter<span class="k2">(</span>Printer<span class="k2">)</span><span class="k2">:</span>
<span class="number">  23</span>    def __init__<span class="k2">(</span>self, p1, p2<span class="k2">)</span><span class="k2">:</span>
<span class="number">  24</span>        self.p1 <span class="k3">=</span> p1
<span class="number">  25</span>        self.p2 <span class="k3">=</span> p2
<span class="number">  26</span>
<span class="number">  27</span>    def show<span class="k2">(</span>self<span class="k2">)</span><span class="k2">:</span>
<span class="number">  28</span>        s1 <span class="k3">=</span> self.p1.show<span class="k2">(</span><span class="k2">)</span>
<span class="number">  29</span>        s2 <span class="k3">=</span> self.p2.show<span class="k2">(</span><span class="k2">)</span>
<span class="number">  30</span>        <span class="k1">while</span> True:
<span class="number">  31</span>            try:
<span class="number">  32</span>                yield s1.next<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> s2.next<span class="k2">(</span><span class="k2">)</span>
<span class="number">  33</span>            except StopIteration:
<span class="number">  34</span>                <span class="k1">break</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="k1">class</span> SequencePrinter<span class="k2">(</span>Printer<span class="k2">)</span><span class="k2">:</span>
<span class="number">  37</span>    def __init__<span class="k2">(</span>self, printer1, printer2<span class="k2">)</span><span class="k2">:</span>
<span class="number">  38</span>        self.printer1 <span class="k3">=</span> printer1
<span class="number">  39</span>        self.printer2 <span class="k3">=</span> printer2
<span class="number">  40</span>
<span class="number">  41</span>    def show<span class="k2">(</span>self<span class="k2">)</span><span class="k2">:</span>
<span class="number">  42</span>        s1 <span class="k3">=</span> self.printer1.show<span class="k2">(</span><span class="k2">)</span>
<span class="number">  43</span>        s2 <span class="k3">=</span> self.printer2.show<span class="k2">(</span><span class="k2">)</span>
<span class="number">  44</span>        <span class="k1">while</span> True:
<span class="number">  45</span>            try:
<span class="number">  46</span>                yield s1.next<span class="k2">(</span><span class="k2">)</span>
<span class="number">  47</span>            except StopIteration:
<span class="number">  48</span>                <span class="k1">break</span>
<span class="number">  49</span>        <span class="k1">while</span> True:
<span class="number">  50</span>            try:
<span class="number">  51</span>                yield s2.next<span class="k2">(</span><span class="k2">)</span>
<span class="number">  52</span>            except StopIteration:
<span class="number">  53</span>                <span class="k1">break</span>
<span class="number">  54</span>
<span class="number">  55</span><span class="k1">class</span> SpacePrinter<span class="k2">(</span>Printer<span class="k2">)</span><span class="k2">:</span>
<span class="number">  56</span>    def __init__<span class="k2">(</span>self, printer, space<span class="k2">)</span><span class="k2">:</span>
<span class="number">  57</span>        self.printer <span class="k3">=</span> printer
<span class="number">  58</span>        self.space <span class="k3">=</span> space
<span class="number">  59</span>
<span class="number">  60</span>    def show<span class="k2">(</span>self<span class="k2">)</span><span class="k2">:</span>
<span class="number">  61</span>        s1 <span class="k3">=</span> self.printer.show<span class="k2">(</span><span class="k2">)</span>
<span class="number">  62</span>        <span class="k1">while</span> True:
<span class="number">  63</span>            try:
<span class="number">  64</span>                yield <span class="s">" "</span> <span class="k3">*</span> self.space <span class="k3">+</span> s1.next<span class="k2">(</span><span class="k2">)</span>
<span class="number">  65</span>                <span class="p"># yield s1.next()</span>
<span class="number">  66</span>            except StopIteration:
<span class="number">  67</span>                <span class="k1">break</span>
<span class="number">  68</span>
<span class="number">  69</span><span class="k1">class</span> ReversePrinter<span class="k2">(</span>Printer<span class="k2">)</span><span class="k2">:</span>
<span class="number">  70</span>    def __init__<span class="k2">(</span>self, printer<span class="k2">)</span><span class="k2">:</span>
<span class="number">  71</span>        self.printer <span class="k3">=</span> printer
<span class="number">  72</span>
<span class="number">  73</span>    def show<span class="k2">(</span>self<span class="k2">)</span><span class="k2">:</span>
<span class="number">  74</span>        out <span class="k3">=</span> reverse<span class="k2">(</span><span class="k2">[</span><a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> <span class="k1">for</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> in self.printer.show<span class="k2">(</span><span class="k2">)</span><span class="k2">]</span><span class="k2">)</span>
<span class="number">  75</span>        <span class="k1">for</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> in out:
<span class="number">  76</span>            yield <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a>
<span class="number">  77</span>
<span class="number">  78</span>def printN<span class="k2">(</span>num<span class="k2">)</span><span class="k2">:</span>
<span class="number">  79</span>    all <span class="k3">=</span> <span class="k2">[</span>Printer<span class="k2">(</span>Triangle<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">for</span> x in xrange<span class="k2">(</span><span class="n">0</span>, num<span class="k2">)</span><span class="k2">]</span>
<span class="number">  80</span>    <span class="k1">return</span> reduce<span class="k2">(</span>lambda a, b: CombinePrinter<span class="k2">(</span>a, b<span class="k2">)</span>, all<span class="k2">)</span>
<span class="number">  81</span>
<span class="number">  82</span>def triforce<span class="k2">(</span>height<span class="k2">)</span><span class="k2">:</span>
<span class="number">  83</span>    all <span class="k3">=</span> <span class="k2">[</span>SpacePrinter<span class="k2">(</span>printN<span class="k2">(</span>total<span class="k2">)</span>, <span class="k2">(</span>height <span class="k3">-</span> total <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">*</span> <span class="n">6</span><span class="k2">)</span> <span class="k1">for</span> total in xrange<span class="k2">(</span><span class="n">1</span>, height<span class="k2">)</span><span class="k2">]</span>
<span class="number">  84</span>    <span class="k1">return</span> reduce<span class="k2">(</span>lambda a, b: SequencePrinter<span class="k2">(</span>b, a<span class="k2">)</span>, all<span class="k2">)</span>
<span class="number">  85</span>
<span class="number">  86</span>def printit<span class="k2">(</span>printer<span class="k2">)</span><span class="k2">:</span>
<span class="number">  87</span>    <span class="k1">for</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> in printer.show<span class="k2">(</span><span class="k2">)</span><span class="k2">:</span>
<span class="number">  88</span>        print <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a>
<span class="number">  89</span>
<span class="number">  90</span><span class="p"># Printer().show(Triangle())</span>
<span class="number">  91</span><span class="p"># printit(CombinePrinter(CombinePrinter(Printer(Triangle()), Printer(Triangle())), Printer(Triangle())))</span>
<span class="number">  92</span><span class="p"># printit(printN(5))</span>
<span class="number">  93</span><span class="p"># printit(SequencePrinter(printN(5), SpacePrinter(printN(4), 6)))</span>
<span class="number">  94</span>def doit<span class="k2">(</span>n<span class="k2">)</span><span class="k2">:</span>
<span class="number">  95</span>    printit<span class="k2">(</span>SequencePrinter<span class="k2">(</span>triforce<span class="k2">(</span>n<span class="k2">)</span>, ReversePrinter<span class="k2">(</span>triforce<span class="k2">(</span>n<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  96</span>
<span class="number">  97</span>import sys
<span class="number">  98</span>doit<span class="k2">(</span><span class="k1">int</span><span class="k2">(</span>sys.argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">)</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Mon, 08 Mar 2010 12:31:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>New user here.</p><p>My four-line solution in Python 2 (or 3?), doesn&#39;t do the reverse:</p><div class="source-code snippet"><div class="inner"><pre>def triforce<span class="k2">(</span>num<span class="k2">)</span><span class="k2">:</span>
  <span class="k1">for</span> i in range<span class="k2">(</span>num <span class="k3">-</span> <span class="n">1</span>, <span class="k3">-</span><span class="n">1</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">:</span>
    <span class="k1">for</span> x in range<span class="k2">(</span><span class="n">5</span>, <span class="k3">-</span><span class="n">1</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">:</span>
      print <span class="k2">(</span><span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">6</span> <span class="k3">*</span> <span class="k2">(</span>num <span class="k3">-</span> <span class="n">1</span> <span class="k3">-</span> i<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="s">' '</span>.join<span class="k2">(</span><span class="k2">(</span><span class="s">'%s%s%s'</span> % <span class="k2">(</span><span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">5</span> <span class="k3">-</span> x<span class="k2">)</span>, <span class="s">'*'</span> <span class="k3">*</span> <span class="k2">(</span><span class="k2">(</span><span class="n">2</span> <span class="k3">*</span> x<span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span>, <span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">5</span> <span class="k3">-</span> x<span class="k2">)</span><span class="k2">)</span> <span class="k1">for</span> m in range<span class="k2">(</span><span class="n">0</span>, i <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>
      
triforce<span class="k2">(</span><span class="k1">int</span><span class="k2">(</span>input<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>
</pre></div></div><p>


Not sure how to do the fancy code tags, but that works, I guess <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />.</p><p>Edit: fixed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xuzzers)</author>
		<pubDate>Mon, 08 Mar 2010 12:35:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The bar has been raised!</p><p>This is my most compact solution, using a string extension for String.Repeat().<br />Edit: Removed prompts.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">using</span> System<span class="k2">;</span>
<span class="number">  2</span><span class="k1">using</span> System.Linq<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">namespace</span> ConsoleApplication1
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>    <span class="k1">class</span> Program
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>        <span class="k1">static</span> <span class="k1">void</span> Main<span class="k2">(</span>string<span class="k2">[</span><span class="k2">]</span> args<span class="k2">)</span>
<span class="number">  9</span>        <span class="k2">{</span>
<span class="number"> 10</span>            var iterations <span class="k3">=</span> Int32.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>            var reverse <span class="k3">=</span> Boolean.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>            var triforce <span class="k3">=</span> from i in Enumerable.Range<span class="k2">(</span><span class="n">0</span>, iterations<span class="k2">)</span>
<span class="number"> 13</span>                           from j in Enumerable.Range<span class="k2">(</span><span class="n">0</span>, <span class="n">6</span><span class="k2">)</span>
<span class="number"> 14</span>                           <a href="http://www.delorie.com/djgpp/doc/libc/libc_688.html" target="_blank">select</a> <span class="s">" "</span>.Repeat<span class="k2">(</span><span class="n">6</span> <span class="k3">*</span> i<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span><span class="s">" "</span>.Repeat<span class="k2">(</span>j<span class="k2">)</span> <span class="k3">+</span> <span class="s">"*"</span>.Repeat<span class="k2">(</span><span class="n">11</span> <span class="k3">-</span> j <span class="k3">*</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="s">" "</span>.Repeat<span class="k2">(</span>j <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span><span class="k2">)</span>.Repeat<span class="k2">(</span>iterations <span class="k3">-</span> i<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>            Console.WriteLine<span class="k2">(</span>reverse ? String.Join<span class="k2">(</span>Environment.NewLine, triforce.Concat<span class="k2">(</span>triforce.Reverse<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">:</span> String.Join<span class="k2">(</span>Environment.NewLine, triforce<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>        <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Mon, 08 Mar 2010 12:47:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now, what does that say about Python and C# ;P.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xuzzers)</author>
		<pubDate>Mon, 08 Mar 2010 12:53:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>They both let you take the long way or the short way?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Mon, 08 Mar 2010 13:00:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>n/m
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Mon, 08 Mar 2010 13:03:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Perl one-liner, does not do reverse. Takes a single argument on the commandline.
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number"> 1</span>map <span class="k2">{</span> print <span class="s">""</span>.<span class="k2">(</span><span class="s">" "</span> x <span class="k2">(</span><span class="n">6</span><span class="k3">*</span><span class="k1">int</span><span class="k2">(</span>$_<span class="k3">/</span><span class="n">6</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>, <span class="k2">(</span><span class="k2">(</span><span class="s">" "</span> x <span class="k2">(</span>$_%<span class="n">6</span><span class="k2">)</span><span class="k2">)</span>.<span class="k2">(</span><span class="s">"*"</span> x <span class="k2">(</span><span class="n">11</span><span class="k3">-</span><span class="n">2</span><span class="k3">*</span><span class="k2">(</span>$_%<span class="n">6</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>.<span class="k2">(</span><span class="s">" "</span> x <span class="k2">(</span>$_%<span class="n">6</span><span class="k2">)</span><span class="k2">)</span>.<span class="s">" "</span><span class="k2">)</span> x <span class="k2">(</span>$ARGV<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">-</span><span class="k1">int</span><span class="k2">(</span>$_<span class="k3">/</span><span class="n">6</span><span class="k2">)</span><span class="k2">)</span>, <span class="s">"\n"</span><span class="k2">;</span> <span class="k2">}</span> <span class="k2">(</span><span class="k2">(</span><span class="n">0</span> .. <span class="k2">(</span><span class="n">6</span><span class="k3">*</span>$ARGV<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>

(EDIT: The following prints it reversed as well.
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number"> 1</span>map <span class="k2">{</span> print <span class="s">""</span>.<span class="k2">(</span><span class="s">" "</span> x <span class="k2">(</span><span class="n">6</span><span class="k3">*</span><span class="k1">int</span><span class="k2">(</span>$_<span class="k3">/</span><span class="n">6</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>, <span class="k2">(</span><span class="k2">(</span><span class="s">" "</span> x <span class="k2">(</span>$_%<span class="n">6</span><span class="k2">)</span><span class="k2">)</span>.<span class="k2">(</span><span class="s">"*"</span> x <span class="k2">(</span><span class="n">11</span><span class="k3">-</span><span class="n">2</span><span class="k3">*</span><span class="k2">(</span>$_%<span class="n">6</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>.<span class="k2">(</span><span class="s">" "</span> x <span class="k2">(</span>$_%<span class="n">6</span><span class="k2">)</span><span class="k2">)</span>.<span class="s">" "</span><span class="k2">)</span> x <span class="k2">(</span>$ARGV<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">-</span><span class="k1">int</span><span class="k2">(</span>$_<span class="k3">/</span><span class="n">6</span><span class="k2">)</span><span class="k2">)</span>, <span class="s">"\n"</span><span class="k2">;</span> <span class="k2">}</span> <span class="k2">(</span><span class="k2">(</span><span class="n">0</span> .. <span class="k2">(</span><span class="n">6</span><span class="k3">*</span>$ARGV<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span>, reverse<span class="k2">(</span><span class="n">0</span> .. <span class="k2">(</span><span class="k2">(</span><span class="n">6</span><span class="k3">*</span>$ARGV<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>
)</p><p>Can be run as:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>perl <span class="k3">-</span>e <span class="s">'map { print "".(" " x (6*int($_/6))), ((" " x ($_%6)).("*" x (11-2*($_%6))).(" " x ($_%6))." ") x ($ARGV[0]-int($_/6)), "\n"; } ((0 .. (6*$ARGV[0])-1));'</span> <span class="n">3</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dustin Howett)</author>
		<pubDate>Mon, 08 Mar 2010 13:53:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>... What?</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">char</span> <span class="k3">*</span>tri<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number">  5</span><span class="s">"***********"</span>,
<span class="number">  6</span><span class="s">" ********* "</span>,
<span class="number">  7</span><span class="s">"  *******  "</span>,
<span class="number">  8</span><span class="s">"   *****   "</span>,
<span class="number">  9</span><span class="s">"    ***    "</span>,
<span class="number"> 10</span><span class="s">"     *     "</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 13</span><span class="k2">{</span>
<span class="number"> 14</span>    <span class="k1">int</span> h <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    <span class="k1">int</span> x, y, w<span class="k2">;</span>
<span class="number"> 16</span>    <span class="k1">for</span> <span class="k2">(</span>w <span class="k3">=</span> h<span class="k2">;</span> w <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">;</span> w--<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>        <span class="k1">for</span> <span class="k2">(</span>y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">6</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>            <span class="k1">for</span> <span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="k2">(</span>h <span class="k3">-</span> w<span class="k2">)</span> <span class="k3">*</span> <span class="n">6</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 19</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_629.html" target="_blank">putchar</a><span class="k2">(</span><span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>            <span class="k1">for</span> <span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> w <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 21</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s "</span>, tri<span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s\n"</span>, tri<span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>        <span class="k2">}</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span>    <span class="k1">for</span> <span class="k2">(</span>w <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> w <span class="k3">&lt;</span><span class="k3">=</span> h<span class="k2">;</span> w<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 26</span>        <span class="k1">for</span> <span class="k2">(</span>y <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span> y <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y--<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 27</span>            <span class="k1">for</span> <span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="k2">(</span>h <span class="k3">-</span> w<span class="k2">)</span> <span class="k3">*</span> <span class="n">6</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 28</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_629.html" target="_blank">putchar</a><span class="k2">(</span><span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>            <span class="k1">for</span> <span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> w <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 30</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s "</span>, tri<span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s\n"</span>, tri<span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>        <span class="k2">}</span>
<span class="number"> 33</span>    <span class="k2">}</span>
<span class="number"> 34</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 35</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Mon, 08 Mar 2010 14:11:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603383/854893#target">Xuzzers</a> said:</div><div class="quote"><p>Now, what does that say about Python and C# ;P.</p></div></div><p>
Modded my solution to look slightly more like yours*, just because it looks eerily similar for two languages you probably wouldn&#39;t place next to each other at the dinner table.</p><p>*Looks almost exactly the same if you run it through a C# interpreter to avoid the boilerplate stuff!</p><p>I&#39;ll try a Ruby solution tomorrow if I feel like it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Mon, 08 Mar 2010 14:49:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Obligatory whitespace solution.
</p><div class="source-code snippet"><div class="inner"><pre>
</pre></div></div><p>
(Only 7 lines)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Mon, 08 Mar 2010 15:20:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Haskell:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>go n <span class="k3">=</span> <span class="k1">do</span>
<span class="number">  2</span>  mapM putStr $ map unlines $ reverse $ map reverse $ rows n
<span class="number">  3</span>  mapM putStr $ map unlines $ rows n
<span class="number">  4</span>
<span class="number">  5</span>rows n <span class="k3">=</span> <span class="k2">[</span>padrow <span class="k2">(</span>n-i<span class="k2">)</span> <span class="k2">(</span>row i<span class="k2">)</span> <span class="k3">|</span> i <span class="k3">&lt;</span><span class="k3">-</span> <span class="k2">[</span><span class="n">1</span>..n<span class="k2">]</span><span class="k2">]</span>
<span class="number">  6</span>
<span class="number">  7</span>padrow w <span class="k3">=</span> map <span class="k2">(</span>sp <span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  8</span>  where sp <span class="k3">=</span> replicate <span class="k2">(</span><span class="n">6</span><span class="k3">*</span>w<span class="k2">)</span> <span class="s">' '</span>
<span class="number">  9</span>
<span class="number"> 10</span>row <span class="n">1</span> <span class="k3">=</span> tri
<span class="number"> 11</span>row n <span class="k3">=</span> zipWith join tri <span class="k2">(</span>row <span class="k2">(</span>n-1<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 12</span>
<span class="number"> 13</span>join x y <span class="k3">=</span> x <span class="k3">+</span><span class="k3">+</span> <span class="s">" "</span> <span class="k3">+</span><span class="k3">+</span> y
<span class="number"> 14</span>
<span class="number"> 15</span>tri <span class="k3">=</span> map <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> <span class="k2">[</span><span class="n">1</span>..<span class="n">6</span><span class="k2">]</span>
<span class="number"> 16</span>
<span class="number"> 17</span><a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> n <span class="k3">=</span> sp <span class="k3">+</span><span class="k3">+</span> replicate <span class="k2">(</span>n<span class="k3">*</span><span class="n">2</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span> <span class="s">'*'</span> <span class="k3">+</span><span class="k3">+</span> sp
<span class="number"> 18</span>  where sp <span class="k3">=</span> replicate <span class="k2">(</span><span class="n">6</span><span class="k3">-</span>n<span class="k2">)</span> <span class="s">' '</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Mon, 08 Mar 2010 16:25:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>c++:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  2</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"input triforce number: "</span><span class="k2">;</span>
<span class="number">  6</span>    <span class="k1">int</span> n<span class="k2">;</span>
<span class="number">  7</span>    cin <span class="k3">&gt;</span><span class="k3">&gt;</span> n<span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> t <span class="k3">=</span> n<span class="k2">;</span> t <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">;</span> <span class="k3">-</span><span class="k3">-</span>t<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">11</span><span class="k2">;</span> i <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> i <span class="k3">-</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 10</span>            <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="k2">(</span>n-t<span class="k2">)</span><span class="k3">*</span><span class="n">12</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span> cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" "</span><span class="k2">;</span>
<span class="number"> 11</span>            <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> k <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> k <span class="k3">&lt;</span> t<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>k<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>                <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">11</span><span class="k3">/</span><span class="n">2</span> <span class="k3">-</span> i<span class="k3">/</span><span class="n">2</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span> cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" "</span><span class="k2">;</span>
<span class="number"> 13</span>                <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> i         <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span> cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"*"</span><span class="k2">;</span>
<span class="number"> 14</span>                <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">12</span><span class="k3">/</span><span class="n">2</span> <span class="k3">-</span> i<span class="k3">/</span><span class="n">2</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span> cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" "</span><span class="k2">;</span>
<span class="number"> 15</span>            <span class="k2">}</span>
<span class="number"> 16</span>            cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 17</span>        <span class="k2">}</span>
<span class="number"> 18</span>    <span class="k2">}</span>
<span class="number"> 19</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 20</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (axilmar)</author>
		<pubDate>Mon, 08 Mar 2010 19:38:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One line of Python:</p><div class="source-code snippet"><div class="inner"><pre>print<span class="k2">(</span><span class="s">'\n'</span>.join<span class="k2">(</span><span class="s">'\n'</span>.join<span class="k2">(</span><span class="k2">(</span><span class="k2">(</span><span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">6</span> <span class="k3">*</span> n<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="s">' '</span>.join<span class="k2">(</span><span class="k2">(</span><span class="s">'%s%s%s'</span> % <span class="k2">(</span><span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">5</span> <span class="k3">-</span> x<span class="k2">)</span>, <span class="s">'*'</span> <span class="k3">*</span> <span class="k2">(</span><span class="k2">(</span><span class="n">2</span> <span class="k3">*</span> x<span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span>, <span class="s">' '</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">5</span> <span class="k3">-</span> x<span class="k2">)</span><span class="k2">)</span> <span class="k1">for</span> m in range<span class="k2">(</span>i <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">for</span> x in range<span class="k2">(</span><span class="n">5</span>, <span class="k3">-</span><span class="n">1</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">for</span> n, i in enumerate<span class="k2">(</span>range<span class="k2">(</span><span class="k1">int</span><span class="k2">(</span>input<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span>, <span class="k3">-</span><span class="n">1</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>
</pre></div></div><p>

Doesn&#39;t print the reverse, at least yet <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /></p><p>Edit: Online! The stuff with input() is to fake it when there is no input() allowed. <a href="http://codepad.org/ZwE4KsP3">http://codepad.org/ZwE4KsP3</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xuzzers)</author>
		<pubDate>Mon, 08 Mar 2010 23:07:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  2</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"input triforce number: "</span><span class="k2">;</span>
<span class="number">  6</span>    <span class="k1">int</span> n<span class="k2">;</span>
<span class="number">  7</span>    cin <span class="k3">&gt;</span><span class="k3">&gt;</span> n<span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> t <span class="k3">=</span> n<span class="k2">;</span> t <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">;</span> <span class="k3">-</span><span class="k3">-</span>t<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">11</span><span class="k2">;</span> i <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> i <span class="k3">-</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 10</span>            cout <span class="k3">&lt;</span><span class="k3">&lt;</span> string<span class="k2">(</span><span class="k2">(</span>n-t<span class="k2">)</span><span class="k3">*</span><span class="n">12</span><span class="k3">/</span><span class="n">2</span>, <span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>            <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> k <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> k <span class="k3">&lt;</span> t<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>k<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>                cout <span class="k3">&lt;</span><span class="k3">&lt;</span> string<span class="k2">(</span><span class="n">11</span><span class="k3">/</span><span class="n">2</span> <span class="k3">-</span> i<span class="k3">/</span><span class="n">2</span>, <span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>                cout <span class="k3">&lt;</span><span class="k3">&lt;</span> string<span class="k2">(</span>i,          <span class="s">'*'</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>                cout <span class="k3">&lt;</span><span class="k3">&lt;</span> string<span class="k2">(</span><span class="n">12</span><span class="k3">/</span><span class="n">2</span> <span class="k3">-</span> i<span class="k3">/</span><span class="n">2</span>, <span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>            <span class="k2">}</span>
<span class="number"> 16</span>            cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 17</span>        <span class="k2">}</span>
<span class="number"> 18</span>    <span class="k2">}</span>
<span class="number"> 19</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Wed, 10 Mar 2010 02:49:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>All I keep thinking is <a href="http://knowyourmeme.com/memes/newfags-cant-triforce">newfags can&#39;t triforce</a>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Wed, 10 Mar 2010 02:53:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  3</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">template</span> <span class="k3">&lt;</span><span class="k1">class</span> T&gt; T repeat<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_822.html" target="_blank">times</a>, <span class="k1">const</span> T <span class="k3">&amp;</span>t<span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_822.html" target="_blank">times</a> <span class="k3">&gt;</span> <span class="n">0</span> ? t <span class="k3">+</span> repeat<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_822.html" target="_blank">times</a> <span class="k3">-</span> <span class="n">1</span>, t<span class="k2">)</span> <span class="k2">:</span> T<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  8</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"input triforce number: "</span><span class="k2">;</span>
<span class="number">  9</span>    <span class="k1">int</span> n<span class="k2">;</span>
<span class="number"> 10</span>    cin <span class="k3">&gt;</span><span class="k3">&gt;</span> n<span class="k2">;</span>
<span class="number"> 11</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> t <span class="k3">=</span> n<span class="k2">;</span> t <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">;</span> <span class="k3">-</span><span class="k3">-</span>t<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">11</span><span class="k2">;</span> i <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> i <span class="k3">-</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>            cout <span class="k3">&lt;</span><span class="k3">&lt;</span> string<span class="k2">(</span><span class="k2">(</span>n-t<span class="k2">)</span><span class="k3">*</span><span class="n">6</span>, <span class="s">' '</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> repeat<span class="k2">(</span>t, string<span class="k2">(</span><span class="n">5</span> <span class="k3">-</span> i<span class="k3">/</span><span class="n">2</span>, <span class="s">' '</span><span class="k2">)</span><span class="k3">+</span>string<span class="k2">(</span>i,<span class="s">'*'</span><span class="k2">)</span><span class="k3">+</span>string<span class="k2">(</span><span class="n">6</span> <span class="k3">-</span> i<span class="k3">/</span><span class="n">2</span>, <span class="s">' '</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span><span class="k2">;</span>
<span class="number"> 14</span>        <span class="k2">}</span>
<span class="number"> 15</span>    <span class="k2">}</span>
<span class="number"> 16</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (axilmar)</author>
		<pubDate>Wed, 10 Mar 2010 19:09:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
newfags can&#39;t triforce [knowyourmeme.com].
</p></div></div><p>
Well, truth be told, I seen the original post about 1 hour after it started, and began working on a plain old C implementation.  About 15 minutes after that, I saw the &quot;Now, what does that say about Python and C#&quot; quote, and was somewhat flummoxed.  Anyway, during the course of this I was informed that I no longer had a job, which torqued my gourd for quite a few hours, so I gave up entirely.  But in the end, there have been a few posts well beyond what I&#39;m capable of, so kudos to you <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />.  Other subjects and areas of interest notwithstanding of course...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Wed, 10 Mar 2010 20:58:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603383/855234#target">Arthur Kalliokoski</a> said:</div><div class="quote"><p>I seen the original post</p></div></div><p>

You what?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 10 Mar 2010 21:44:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Load &quot;triforce&quot;,8,1<br />Run
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Sirocco)</author>
		<pubDate>Wed, 10 Mar 2010 21:52:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I seen the original post
</p></div></div><p>
I first saw the original post?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Wed, 10 Mar 2010 22:38:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Concurrent version lolol:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">using</span> System<span class="k2">;</span>
<span class="number">  2</span><span class="k1">using</span> System.Linq<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">namespace</span> ConsoleApplication1
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>    <span class="k1">class</span> Program
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>        <span class="k1">static</span> <span class="k1">void</span> Main<span class="k2">(</span>string<span class="k2">[</span><span class="k2">]</span> args<span class="k2">)</span>
<span class="number">  9</span>        <span class="k2">{</span>
<span class="number"> 10</span>            var iterations <span class="k3">=</span> Int32.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>            var reverse <span class="k3">=</span> Boolean.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>            var triforce <span class="k3">=</span> from i in ParallelEnumerable.Range<span class="k2">(</span><span class="n">0</span>, iterations<span class="k2">)</span>
<span class="number"> 13</span>                           from j in ParallelEnumerable.Range<span class="k2">(</span><span class="n">0</span>, <span class="n">6</span><span class="k2">)</span>
<span class="number"> 14</span>                           <a href="http://www.delorie.com/djgpp/doc/libc/libc_688.html" target="_blank">select</a> <span class="s">" "</span>.Repeat<span class="k2">(</span><span class="n">6</span> <span class="k3">*</span> i<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span><span class="s">" "</span>.Repeat<span class="k2">(</span>j<span class="k2">)</span> <span class="k3">+</span> <span class="s">"*"</span>.Repeat<span class="k2">(</span><span class="n">11</span> <span class="k3">-</span> j <span class="k3">*</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="s">" "</span>.Repeat<span class="k2">(</span>j <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span><span class="k2">)</span>.Repeat<span class="k2">(</span>iterations <span class="k3">-</span> i<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>            Console.WriteLine<span class="k2">(</span>reverse ? String.Join<span class="k2">(</span>Environment.NewLine, triforce.Concat<span class="k2">(</span>triforce.Reverse<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">:</span> String.Join<span class="k2">(</span>Environment.NewLine, triforce<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>        <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>

1000 iterations (and reverse)<br />Single-threaded: 1.175s<br />Multi-threaded: 0.669s
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Thu, 11 Mar 2010 02:34:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603383/855280#target">Kibiz0r</a> said:</div><div class="quote"><div class="source-code snippet"><div class="inner"><pre>var iterations <span class="k3">=</span> Int32.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
var reverse <span class="k3">=</span> Boolean.Parse<span class="k2">(</span>Console.ReadLine<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div></div></div><p>
That&#39;s just ugly. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> It would be easier to use <span class="source-code">args</span>. <img src="http://www.allegro.cc/forums/smileys/angry.gif" alt="&gt;:(" /> Both <span class="source-code">Parse</span> methods are going to throw if the line isn&#39;t parse-able anyway so if you were going for compact you could just ignore an <span class="source-code">args.Length</span> check and get similar behavior for incorrect usage.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Thu, 11 Mar 2010 06:48:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>triforce <span class="k2">:</span><span class="k3">-</span> triforce<span class="k2">(</span><span class="n">3</span><span class="k2">)</span>.
triforce<span class="k2">(</span>N<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> triforce<span class="k2">(</span>N,<span class="n">6</span><span class="k2">)</span>.
triforce<span class="k2">(</span>N,Size<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> triforce<span class="k2">(</span>N,Size,<span class="k1">true</span><span class="k2">)</span>.
triforce<span class="k2">(</span>N,Size,Reverse<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> triforce<span class="k2">(</span>N,Size,Reverse,<span class="n">0</span><span class="k2">)</span>.
triforce<span class="k2">(</span>N,Size,Reverse,Indent<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> N&gt;0, triforce<span class="k2">(</span>N,Size,Reverse,Indent,<span class="n">0</span><span class="k2">)</span>.
triforce<span class="k2">(</span><span class="n">0</span>,_Size,_Reverse,_Indent<span class="k2">)</span>.
triforce<span class="k2">(</span>N,Size,Reverse,Indent,Row<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span>
  Row<span class="k3">&lt;</span>Size, Off is <span class="n">1</span><span class="k3">+</span>Row<span class="k3">*</span><span class="n">2</span>, On is Size<span class="k3">*</span><span class="n">2</span><span class="k3">-</span>Off, Indent2 is Indent<span class="k3">+</span><span class="n">1</span>, Row2 is Row<span class="k3">+</span><span class="n">1</span>,
  tfScan<span class="k2">(</span>N,Indent,On,Off<span class="k2">)</span>, triforce<span class="k2">(</span>N,Size,Reverse,Indent2,Row2<span class="k2">)</span>, <span class="k2">(</span>Reverse, tfScan<span class="k2">(</span>N,Indent,On,Off<span class="k2">)</span><span class="k2">;</span> <span class="k1">true</span><span class="k2">)</span>.
triforce<span class="k2">(</span>N,Size,Reverse,Indent,Size<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> N2 is N-1, triforce<span class="k2">(</span>N2,Size,Reverse,Indent<span class="k2">)</span>.
tfScan<span class="k2">(</span>N,Indent,On,Off<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> N&gt;0, tfRun<span class="k2">(</span><span class="s">' '</span>,Indent<span class="k2">)</span>, tfRun<span class="k2">(</span><span class="s">'*'</span>,On<span class="k2">)</span>, N2 is N-1, tfScan<span class="k2">(</span>N2,Off,On,Off<span class="k2">)</span>.
tfScan<span class="k2">(</span><span class="n">0</span>,_Indent,_On,_Off<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> nl.
tfRun<span class="k2">(</span>C,M<span class="k2">)</span> <span class="k2">:</span><span class="k3">-</span> M&gt;0, <a href="http://www.delorie.com/djgpp/doc/libc/libc_866.html" target="_blank">write</a><span class="k2">(</span>C<span class="k2">)</span>, M2 is M-1, tfRun<span class="k2">(</span>C,M2<span class="k2">)</span>.
tfRun<span class="k2">(</span>_C,<span class="n">0</span><span class="k2">)</span>.
</pre></div></div><p>

Can be invoked with a query such as
</p><div class="source-code snippet"><div class="inner"><pre>?<span class="k3">-</span> triforce.
?<span class="k3">-</span> triforce<span class="k2">(</span><span class="n">3</span><span class="k2">)</span>.
?<span class="k3">-</span> triforce<span class="k2">(</span><span class="n">3</span>,<span class="n">6</span><span class="k2">)</span>.
?<span class="k3">-</span> triforce<span class="k2">(</span><span class="n">3</span>,<span class="n">6</span>,<span class="k1">true</span><span class="k2">)</span>.
</pre></div></div><p>
where the 3 is the number of triangles, the 6 is the size of each one, and the Boolean is whether to print the reverse Triforce.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Perry)</author>
		<pubDate>Fri, 12 Mar 2010 03:41:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603383/855080#target">X-G</a> said:</div><div class="quote"><p>All I keep thinking is newfags can&#39;t triforce</p></div></div><p>

  ▲<br />▲ ▲
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Fri, 12 Mar 2010 04:21:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My program briefly output<br />▲<br />▲ ▲<br />at one stage during its development. Much hilarity ensued.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Perry)</author>
		<pubDate>Fri, 12 Mar 2010 04:59:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603383/855080#target">X-G</a> said:</div><div class="quote"><p>All I keep thinking is newfags can&#39;t triforce</p></div></div><p>
</p><div class="quote_container"><div class="title">My Facebook after posting my solution said:</div><div class="quote"><p>Newfags can&#39;t from i in Enumerable.Range(0, iterations) from j in Enumerable.Range(0, 6) select repeat(&quot; &quot;, 6 * i) + repeat(repeat(&quot; &quot;, j) + repeat(&quot;*&quot;, 11 - j * 2) + repeat(&quot; &quot;, j + 1), iterations - i);</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Fri, 12 Mar 2010 05:11:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603383/855509#target">Kibiz0r</a> said:</div><div class="quote"><p>Newfags can&#39;t from i in Enumerable.Range(0, iterations) from j in Enumerable.Range(0, 6) select repeat(&quot; &quot;, 6 * i) + repeat(repeat(&quot; &quot;, j) + repeat(&quot;*&quot;, 11 - j * 2) + repeat(&quot; &quot;, j + 1), iterations - i);</p></div></div><p>

You win. I&#39;m not sure what you win, but you definitely win.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Fri, 12 Mar 2010 05:14:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you seriously write that in Prolog? <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Fri, 12 Mar 2010 10:02:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>And what&#39;s more, a female friend got me into it <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Perry)</author>
		<pubDate>Fri, 12 Mar 2010 15:05:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://stackoverflow.com/questions/2406780/code-golf-triforce">http://stackoverflow.com/questions/2406780/code-golf-triforce</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Fri, 12 Mar 2010 19:23:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh wow.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Fri, 12 Mar 2010 22:50:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh no, the Interwebs! <i>Hide!</i>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Sat, 13 Mar 2010 00:01:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A bit late, but the compiler had a bug, which is fixed now.</p><p>The Modula-2 version:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>MODULE triforce<span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span>FROM STextIO IMPORT WriteChar, WriteString, WriteLn<span class="k2">;</span>
<span class="number">  4</span>FROM SWholeIO IMPORT ReadCard<span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>VAR n <span class="k2">:</span> CARDINAL<span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span>PROCEDURE DrawTriforce<span class="k2">(</span>cur, max <span class="k2">:</span> CARDINAL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>VAR i1, i2, i3 <span class="k2">:</span> CARDINAL<span class="k2">;</span>
<span class="number"> 10</span>BEGIN
<span class="number"> 11</span>     IF cur <span class="k3">&gt;</span> max THEN RETURN END<span class="k2">;</span>
<span class="number"> 12</span>     FOR i1 <span class="k2">:</span><span class="k3">=</span> <span class="n">0</span> TO <span class="n">5</span> DO
<span class="number"> 13</span>         FOR i2 <span class="k2">:</span><span class="k3">=</span> <span class="n">0</span> TO cur <span class="k3">*</span> <span class="n">6</span> DO WriteChar<span class="k2">(</span><span class="s">' '</span><span class="k2">)</span> END<span class="k2">;</span>
<span class="number"> 14</span>         FOR i2 <span class="k2">:</span><span class="k3">=</span> <span class="n">0</span> TO max <span class="k3">-</span> cur DO 
<span class="number"> 15</span>              FOR i3 <span class="k2">:</span><span class="k3">=</span> <span class="n">1</span> TO i1 DO WriteChar<span class="k2">(</span><span class="s">' '</span><span class="k2">)</span> END<span class="k2">;</span>
<span class="number"> 16</span>              FOR i3 <span class="k2">:</span><span class="k3">=</span> <span class="n">1</span> TO <span class="k2">(</span><span class="n">11</span> <span class="k3">-</span> i1 <span class="k3">*</span> <span class="n">2</span><span class="k2">)</span> DO WriteChar<span class="k2">(</span><span class="s">'*'</span><span class="k2">)</span> END<span class="k2">;</span>
<span class="number"> 17</span>              FOR i3 <span class="k2">:</span><span class="k3">=</span> <span class="n">0</span> TO i1 DO WriteChar<span class="k2">(</span><span class="s">' '</span><span class="k2">)</span> END<span class="k2">;</span>
<span class="number"> 18</span>         END<span class="k2">;</span>
<span class="number"> 19</span>         WriteLn<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 20</span>     END<span class="k2">;</span>
<span class="number"> 21</span>     DrawTriforce<span class="k2">(</span>cur <span class="k3">+</span> <span class="n">1</span>, max<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>END DrawTriforce<span class="k2">;</span>
<span class="number"> 23</span>
<span class="number"> 24</span>BEGIN
<span class="number"> 25</span>     WriteString<span class="k2">(</span><span class="s">'Amount: '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>     ReadCard<span class="k2">(</span>n<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>     DrawTriforce<span class="k2">(</span><span class="n">0</span>, n <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>END triforce.
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Martin Kalbfuß)</author>
		<pubDate>Sat, 13 Mar 2010 03:20:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just saw this challenge, not planning on doing it in full yet, but the simplest way I find to generate a triangle is to think of it as a square, and then increasingly &quot;sculpt&quot; out the edges.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> end <span class="k3">=</span> <span class="n">11</span><span class="k2">;</span> <span class="k1">int</span> begin <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">6</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span> <span class="c">/*six rows*/</span>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> k <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> k <span class="k3">&lt;</span> begin<span class="k2">;</span> k<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" "</span><span class="k2">;</span> <span class="k2">}</span>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> end<span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"*"</span><span class="k2">;</span> <span class="k2">}</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span><span class="k2">;</span> end <span class="k3">-</span><span class="k3">=</span> <span class="n">2</span><span class="k2">;</span> begin<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (machine)</author>
		<pubDate>Sat, 13 Mar 2010 21:07:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, this is pretty much done. Good job, everybody! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kibiz0r)</author>
		<pubDate>Mon, 15 Mar 2010 22:12:54 +0000</pubDate>
	</item>
</rss>
