<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Generating random combination of obstacles:Problem</title>
		<link>http://www.allegro.cc/forums/view/613763</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 13 Jan 2014 21:40:31 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>

Guys I have successfully implemented my first basic level Allegro5 c++ game.</p><p>It has a player that keeps moving continuously in right direction. From the right edge of the screen player faces obstacles like triangles  and squares. These obstacles come alive at right edge of screen and die at left edge of screen.<br />I randomized the occurrence of both square and triangle individually.</p><p>player jumps over them, if hits triangle loses life, if falls on squares rolls over it.</p><p>But then, I thought a lot about how to make them randomly appear in combinations.</p><p>For example: If suppose  <br />X represents triangle<br />O represents squares<br />and . (Fullstop) represents empty space.</p><p>.........x.....xo.....oxxo......</p><p>......oo.....x....oxx......xo...</p><p>and similarly they should appear in many randomized patterns.</p><p>But I after having tried a lot, I still am empty-handed (No solution).</p><p>Apart from rendering I have used below code:</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">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="c">// Random triangles such that they dont overlap</span>
<span class="number">  2</span>       <span class="k2">{</span>
<span class="number">  3</span>        Triangle <span class="k3">*</span>t <span class="k3">=</span> <span class="k1">new</span> Triangle<span class="k2">(</span><span class="n">800</span> <span class="k3">+</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">325</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>        objects.push_back<span class="k2">(</span>t<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>        t-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>        <span class="k1">if</span><span class="k2">(</span> <span class="k2">(</span>triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">12</span>  <span class="k3">&lt;</span>  t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">12</span>   <span class="k3">&amp;</span><span class="k3">&amp;</span>   triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">12</span>  <span class="k3">&gt;</span>  t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">12</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number">  8</span>          <span class="k2">(</span>square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span> <span class="k3">&lt;</span>  t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">12</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>   square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>  <span class="k3">&gt;</span> t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">12</span><span class="k2">)</span> <span class="k2">)</span>
<span class="number">  9</span>        <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 10</span>
<span class="number"> 11</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span> triangle-&gt;GetAlive<span class="k2">(</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span><span class="k1">false</span> <span class="k2">)</span>
<span class="number"> 12</span>        <span class="k2">{</span>
<span class="number"> 13</span>          triangle-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>          triangle-&gt;SetX<span class="k2">(</span>t-&gt;GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>          triangle-&gt;SetY<span class="k2">(</span>t-&gt;GetY<span class="k2">(</span><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="number"> 18</span>       <span class="k2">}</span>
<span class="number"> 19</span>
<span class="number"> 20</span>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span><span class="c">//Random squares such that they dont overlap </span>
<span class="number"> 21</span>       <span class="k2">{</span>
<span class="number"> 22</span>        Square <span class="k3">*</span>s <span class="k3">=</span> <span class="k1">new</span> Square<span class="k2">(</span><span class="n">800</span> <span class="k3">+</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">325</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>        objects.push_back<span class="k2">(</span>s<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>        s-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span>        <span class="k1">if</span><span class="k2">(</span> <span class="k2">(</span>square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span>  <span class="k3">&lt;</span>   s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>   <span class="k3">&amp;</span><span class="k3">&amp;</span>   square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>  <span class="k3">&gt;</span>  s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 27</span>          <span class="k2">(</span>triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">12</span>  <span class="k3">&lt;</span>  s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>  <span class="k3">&amp;</span><span class="k3">&amp;</span>   triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">12</span>  <span class="k3">&gt;</span>  s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 28</span>        <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 29</span>
<span class="number"> 30</span>
<span class="number"> 31</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span> triangle-&gt;GetAlive<span class="k2">(</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span><span class="k1">false</span> <span class="k2">)</span>
<span class="number"> 32</span>        <span class="k2">{</span>
<span class="number"> 33</span>          square-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>          square-&gt;SetX<span class="k2">(</span>s-&gt;GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>          square-&gt;SetY<span class="k2">(</span>s-&gt;GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>        <span class="k2">}</span>
<span class="number"> 37</span>
<span class="number"> 38</span>       <span class="k2">}</span>
</div></div><p>
 <br />[Note: once in a while, like rarely, triangle and square DO overlap.Dunno how!]<br />I request you all to guide me until I solve the problem.</p><p><span class="remote-thumbnail"><span class="json">{"name":"Capture.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/a\/ea61732842592cbc05dfedb8fccbeca9.jpg","w":1279,"h":524,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/a\/ea61732842592cbc05dfedb8fccbeca9"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/e/a/ea61732842592cbc05dfedb8fccbeca9-240.jpg" alt="Capture.jpg" width="240" height="98" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Thu, 09 Jan 2014 04:29:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have only skimmed the code briefly, but what <b>exactly</b> is not working?</p><p>The randomeness? Tri and Squares not actually appearing?  Did you seed (with srand() ) the random function?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Thu, 09 Jan 2014 14:26:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span></span></p><p>That means if a random number between 0 and 199 is 1 !!! Not much of a range!!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 09 Jan 2014 18:01:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If I understand you correctly, you want to generate something like<br />.........x.....xo.....oxxo......<br />but your code only generates something like<br />...x...o...o...x...x...o......x<br />sometimes with a triangle and a square sharing the same coordinate?</p><p>First off: They are ovelapping, because you&#39;re checking if a square or triangle should be generated individually instead of checking if an obstacle is to be generated in general and then deciding, whether the obstacle should be a square or a triange. In other words: If the first rand()%200 generates a zero, you create a triangle, but the second rand()%200 can generate a 1 right after the zero, in which case you create a new square at the same coordinates as the riangle.<br />If you want to avoid overlapping, rewrite your code to
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="c">//create obstacle</span>
<span class="k2">{</span>
   <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">2</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="c">//obstacle is a triangle</span>
   <span class="k2">{</span>
      <span class="c">//put triangle creainon code here</span>
   <span class="k2">}</span>
   <span class="k1">else</span> <span class="c">//obstacle is a square</span>
   <span class="k2">{</span>
      <span class="c">//put square creainon code here</span>
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

If you want your code to genarate a random group of obstacles like<br />..xooxoxxoxxxo..<br />you could use do something like this:
</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">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="c">//create obstacle</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>   <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">200</span> <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="c">//create single obstacle</span>
<span class="number">  4</span>   <span class="k2">{</span>
<span class="number">  5</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">2</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="c">//obstacle is a triangle</span>
<span class="number">  6</span>      <span class="k2">{</span>
<span class="number">  7</span>         <span class="c">//put triangle creainon code here</span>
<span class="number">  8</span>      <span class="k2">}</span>
<span class="number">  9</span>      <span class="k1">else</span> <span class="c">//obstacle is a square</span>
<span class="number"> 10</span>      <span class="k2">{</span>
<span class="number"> 11</span>         <span class="c">//put square creainon code here</span>
<span class="number"> 12</span>      <span class="k2">}</span>
<span class="number"> 13</span>   <span class="k2">}</span>
<span class="number"> 14</span>   <span class="k1">else</span> <span class="c">//create group of obstacles</span>
<span class="number"> 15</span>   <span class="k2">{</span>
<span class="number"> 16</span>      <span class="k1">int</span> obstacle_count <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">15</span><span class="k3">+</span><span class="n">2</span><span class="k2">;</span> <span class="c">//</span>
<span class="number"> 17</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> obstacle_count<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 18</span>      <span class="k2">{</span>
<span class="number"> 19</span>         <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">2</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="c">//obstacle is a triangle</span>
<span class="number"> 20</span>         <span class="k2">{</span>
<span class="number"> 21</span>            Triangle <span class="k3">*</span>t <span class="k3">=</span> <span class="k1">new</span> Triangle<span class="k2">(</span><span class="n">800</span> <span class="k3">+</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">+</span>i<span class="k3">*</span>width,<span class="n">325</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>            <span class="c">//put rest of triangle creainon code here</span>
<span class="number"> 23</span>         <span class="k2">}</span>
<span class="number"> 24</span>         <span class="k1">else</span> <span class="c">//obstacle is a square</span>
<span class="number"> 25</span>         <span class="k2">{</span>
<span class="number"> 26</span>            Square <span class="k3">*</span>s <span class="k3">=</span> <span class="k1">new</span> Square<span class="k2">(</span><span class="n">800</span> <span class="k3">+</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">+</span>i<span class="k3">*</span>width,<span class="n">325</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>            <span class="c">//put rest of square creainon code here</span>
<span class="number"> 28</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="k2">}</span>
</div></div><p>
This code would generate a line from 2 to 17 obstacles off screen.<br /><s>Take note that the code also eventually will generate overlapping object in the line, as it doesn&#39;t check if there already is an object at 800 + Cameraposition[0]</s><br />Never mind, apparently you&#39;re checking for overlaps already, though I don&#39;t understand what your logic is behind that. What exactly are the square and triangle object and how and where are they defined?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lupuss.Umbrae)</author>
		<pubDate>Thu, 09 Jan 2014 18:28:08 +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/613763/995045#target">Lupuss.Umbrae</a> said:</div><div class="quote"><p> What exactly are the square and triangle object and how and where are they defined? </p></div></div><p>That is mainly why I asked <b>what</b> exactly does not work.</p><p>Besides not entirely grasping this logic (due to too little code shown I guess?) to check overlapping, the rest seems to be <i>plausible</i> to generate a random pattern of sqaure+triangles.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Thu, 09 Jan 2014 18:51:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When you add an obstacle (or series), you should compute the width of what you&#39;ve created. Don&#39;t create anything more until the screen has scrolled by this width + the minimum distance you want between two series.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Thu, 09 Jan 2014 19:02:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I would suggest you to create some simple patterns, like: {x} {xo} {xoox} {oxxo} {oxx}... And some variations(random maybe) then you proceed to randomize that. I think your map will be a little more organized.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (killocan)</author>
		<pubDate>Sat, 11 Jan 2014 00:20:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
LUPUSS caught my problem. And KILLOCAN what you said is perfectly what i want to do. </p><p>I am going back on computer to bang my head against code wall. Lets see if i make it to the other side of problem. But KILLOCAN how do i make those combinations , because to render my gameobjects i used a list. So what you suggested is all blurry. But I will give it many tries too. </p><p>UPDATED:------------------------------------------------------------</p><p>Guys look I tried this thing to get the combination of obstacles like KILLOCAN said, using what Lupuss suggested.</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">void</span> createObstacles<span class="k2">(</span><span class="k1">int</span> numObstacles<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</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> numObstacles<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  4</span>    <span class="k2">{</span>
<span class="number">  5</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">4</span> <span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  6</span>    <span class="k2">{</span>
<span class="number">  7</span>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">2</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  8</span>        <span class="k2">{</span>
<span class="number">  9</span>            Triangle <span class="k3">*</span>t <span class="k3">=</span> <span class="k1">new</span> Triangle<span class="k2">(</span><span class="n">800</span> <span class="k3">+</span><span class="n">40</span><span class="k3">+</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">319</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>        objects.push_back<span class="k2">(</span>t<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>        t-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>        <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><span class="k2">(</span>triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span>  <span class="k3">&lt;</span>  t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span>   <span class="k3">&amp;</span><span class="k3">&amp;</span>   triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span> <span class="k3">&gt;</span>  t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 14</span>          <span class="k3">!</span><span class="k2">(</span>square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span> <span class="k3">&lt;</span>  t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>   square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>  <span class="k3">&gt;</span> t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span><span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 15</span>        <span class="k1">continue</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>      
<span class="number"> 18</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span> triangle-&gt;GetAlive<span class="k2">(</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span><span class="k1">false</span> <span class="k2">)</span>
<span class="number"> 19</span>        <span class="k2">{</span>
<span class="number"> 20</span>          triangle-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>          triangle-&gt;SetX<span class="k2">(</span>t-&gt;GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>          triangle-&gt;SetY<span class="k2">(</span>t-&gt;GetY<span class="k2">(</span><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">else</span>
<span class="number"> 26</span>        <span class="k2">{</span>
<span class="number"> 27</span>             Square <span class="k3">*</span>s <span class="k3">=</span> <span class="k1">new</span> Square<span class="k2">(</span><span class="n">800</span> <span class="k3">+</span><span class="n">40</span><span class="k3">+</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">310</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>        objects.push_back<span class="k2">(</span>s<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>        s-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>        <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span><span class="k2">(</span>square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span>  <span class="k3">&lt;</span>   s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>   <span class="k3">&amp;</span><span class="k3">&amp;</span>   square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>  <span class="k3">&gt;</span>  s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 32</span>          <span class="k3">!</span><span class="k2">(</span>triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span>  <span class="k3">&lt;</span>  s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span>  <span class="k3">&amp;</span><span class="k3">&amp;</span>   triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span>  <span class="k3">&gt;</span>  s-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 33</span>        <span class="k1">continue</span><span class="k2">;</span>
<span class="number"> 34</span>
<span class="number"> 35</span>
<span class="number"> 36</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span> triangle-&gt;GetAlive<span class="k2">(</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span><span class="k1">false</span> <span class="k2">)</span>
<span class="number"> 37</span>        <span class="k2">{</span>
<span class="number"> 38</span>          square-&gt;SetAlive<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>          square-&gt;SetX<span class="k2">(</span>s-&gt;GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>          square-&gt;SetY<span class="k2">(</span>s-&gt;GetY<span class="k2">(</span><span class="k2">)</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="k2">}</span>
<span class="number"> 43</span>    <span class="k2">}</span>
<span class="number"> 44</span>  <span class="k2">}</span>
<span class="number"> 45</span><span class="k2">}</span>
<span class="number"> 46</span>
<span class="number"> 47</span>
<span class="number"> 48</span><span class="c">// I have this calling in main function as below:</span>
<span class="number"> 49</span><span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 50</span><span class="k2">{</span>
<span class="number"> 51</span>    <span class="c">// Create anywhere from 1 to maxToCreate (which is 4) obstacles at a time.</span>
<span class="number"> 52</span>    <span class="k1">const</span> <span class="k1">int</span> maxToCreate <span class="k3">=</span> <span class="n">4</span><span class="k2">;</span>
<span class="number"> 53</span>    <span class="k1">int</span> numToCreate <span class="k3">=</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % maxToCreate<span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 54</span>
<span class="number"> 55</span>    <span class="c">// Call the function to make some obstacles.</span>
<span class="number"> 56</span>    createObstacles<span class="k2">(</span>numToCreate<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 57</span><span class="k2">}</span>
</div></div><p>

Now also i am facing a problem.:-[</p><p>I think there is some conflict between creation of triangles and that of squares. No triangle overlaps other triangle. No Square overlaps other square. But either triangle overlap a square which is already drawn, OR a square overlaps an already drawn triangle. Can you see any error in my triangle/square creation code?</p><p>When they overlap, somehow both get drawn on same place such that their x &amp; y coordinates (or Their centre points) are same.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Sat, 11 Jan 2014 00:54:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>*(also thanks to Dizzy for making my rand()% range smaller <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> )
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Sat, 11 Jan 2014 07:58:35 +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/613763/995092#target">CodeOne</a> said:</div><div class="quote"><p>
I think there is some conflict between creation of triangles and that of squares. No triangle overlaps other triangle. No Square overlaps other square. But either triangle overlap a square which is already drawn, OR a square overlaps an already drawn triangle. Can you see any error in my triangle/square creation code?</p><p>When they overlap, somehow both get drawn on same place such that their x &amp; y coordinates (or Their centre points) are same. 
</p></div></div><p>
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613763/995045#target">Lupuss.Umbrae</a> said:</div><div class="quote"><p>
What exactly are the square and triangle object and how and where are they defined?
</p></div></div><p>

I think you should getrid of
</p><div class="source-code snippet"><div class="inner"><pre> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><span class="k2">(</span>triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span> <span class="k3">&lt;</span> t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> triangle-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span> <span class="k3">&gt;</span> t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><span class="k2">(</span>square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">40</span> <span class="k3">&lt;</span> t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">15</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> square-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">40</span> <span class="k3">&gt;</span> t-&gt;GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">15</span><span class="k2">)</span> <span class="k2">)</span> <span class="k1">continue</span><span class="k2">;</span>
</pre></div></div><p>
altoether and do what Audric said
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613763/995048#target">Audric</a> said:</div><div class="quote"><p>
When you add an obstacle (or series), you should compute the width of what you&#39;ve created. Don&#39;t create anything more until the screen has scrolled by this width + the minimum distance you want between two series.
</p></div></div><p>

P.S.:
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613763/995092#target">CodeOne</a> said:</div><div class="quote"><p>
Guys look I tried this thing to get the combination of obstacles like KILLOCAN said, using what Lupuss suggested.
</p></div></div><p>
Sorry, but I recognize neither his, nor my approach... <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lupuss.Umbrae)</author>
		<pubDate>Sat, 11 Jan 2014 16:04:30 +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>Square::Square<span class="k2">(</span><span class="k1">float</span> x,<span class="k1">float</span> y<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    GameObject::Init<span class="k2">(</span>x,y,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">40</span>,<span class="n">15</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>    SetID<span class="k2">(</span>SQUARE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>    SetAlive<span class="k2">(</span><span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span><span class="k2">}</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="c">//Render</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-40 , y<span class="k3">+</span><span class="n">15</span> , x <span class="k3">+</span> <span class="n">40</span>, y <span class="k3">-</span> <span class="n">15</span> , <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>Triangle::Triangle<span class="k2">(</span><span class="k1">float</span> x,<span class="k1">float</span> y<span class="k2">)</span>
<span class="number"> 12</span><span class="k2">{</span>
<span class="number"> 13</span>    GameObject::Init<span class="k2">(</span>x,y,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">12</span>,<span class="n">6</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//(float x,float y,float velX,int dirX, int dirY, int boundX, int boundY)</span>
<span class="number"> 14</span>    SetID<span class="k2">(</span>ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    SetAlive<span class="k2">(</span><span class="k1">false</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="number"> 18</span><span class="c">//Render</span>
<span class="number"> 19</span><a href="http://www.allegro.cc/manual/al_draw_filled_triangle"><span class="a">al_draw_filled_triangle</span></a><span class="k2">(</span>x-15 , y<span class="k3">+</span><span class="n">6</span> , x <span class="k3">+</span> <span class="n">15</span>, y <span class="k3">+</span><span class="n">6</span>,x ,y <span class="k3">-</span> <span class="n">34</span>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>


Lupuss if you didnt notice I tried to club the idea of creating a combination of random size (Between 1-4) by improvising on my previous code where you implemented rand()%2 ==0  inside rand()%200==0 ... I just implemented those rand() statements seperately, one in void createObstacles() and another inside the main function where  void createobstacles() is being called.</p><p>Dizzy, haha...#oops Thanks to you too.</p><p>But hey guyz, hello! I am still facing the issue. I am still working on it,meanwhile if you get any idea , I&#39;ll be waiting.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Sat, 11 Jan 2014 22:58:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You need to implement code for each combination of obstacle you want to do.</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">switch</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">4</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>   <span class="c">// x is triangle and o is square</span>
<span class="number">  3</span>   <span class="k1">case</span> <span class="n">0</span> <span class="k2">:</span>
<span class="number">  4</span>      <span class="c">// xx - make two triangles together</span>
<span class="number">  5</span>      
<span class="number">  6</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number">  7</span>   <span class="k1">case</span> <span class="n">1</span> <span class="k2">:</span>
<span class="number">  8</span>      <span class="c">// xy - make a triangle and square together</span>
<span class="number">  9</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 10</span>   <span class="k1">case</span> <span class="n">2</span> <span class="k2">:</span>
<span class="number"> 11</span>      <span class="c">// yx - make a square and a triangle together</span>
<span class="number"> 12</span>      
<span class="number"> 13</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 14</span>   <span class="k1">case</span> <span class="n">3</span> <span class="k2">:</span>
<span class="number"> 15</span>      <span class="c">// yy - make two squares together</span>
<span class="number"> 16</span>      
<span class="number"> 17</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 18</span>   <span class="k1">case</span> <span class="k1">default</span> <span class="k2">:</span>
<span class="number"> 19</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Combination not identified.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 21</span><span class="k2">}</span>
</div></div><p>
Or make an array of rand()%3 (empty / triangle / square) to determine what is coming up next and then add those objects to your game.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 11 Jan 2014 23:19:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar, Thanx man...<br />I was making things complex for no reason.<br />Classic methods always work :Lesson learned</p><p>Thanx everyone for looking into my confusing codes <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>UPDATE: Now where did this &#39;give credits section&#39; disappear along with that &#39;Problem Solved&#39; tab.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Sun, 12 Jan 2014 16:22:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually I would go with the second method. Use an array / list / vector to store a sequence of randomly generated objects with possible empty spaces between them. The first method means largely writing more code than you should, since its easier to work on a whole array instead of all the specific use cases.</p><p>The &#39;Give Credits&#39; option is only available if you make the new thread classification &#39;a question with a specific answer&#39;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 12 Jan 2014 21:10:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar, I am newbie. I dont have exposure with things. The first method was easy to go for since I have been doing it in ever since i started coding.<br />But second method, I never used an array to randomize things. And, if i have to store sequences in array how does it decrease the amount of code that i have to right.</p><p>I would like to learn this method too. If you have a little time, can you give me a quick brief about second method?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Mon, 13 Jan 2014 14:53:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What i suggest can be expressed(in pseudo correct code hehehe) as something like this:</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">const</span> <span class="k1">char</span> <span class="k3">*</span>objs<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="s">"x"</span>, <span class="s">"xoox"</span>, <span class="s">"oo"</span>, <span class="s">"xxx"</span>, <span class="s">"xx"</span>, <span class="s">"xoxo"</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  2</span>            ... <span class="c">//somecode...</span>
<span class="number">  3</span>            
<span class="number">  4</span>            <span class="c">//randomize your creation i.e: (rand()%200 == 0)</span>
<span class="number">  5</span>            <span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">6</span><span class="k2">;</span>
<span class="number">  6</span>            <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> cur_seq <span class="k3">=</span> objs<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span><span class="k2">;</span>
<span class="number">  7</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> <a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>cur_seq<span class="k2">)</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span>
<span class="number">  8</span>            <span class="k2">{</span>
<span class="number">  9</span>              <span class="k1">switch</span><span class="k2">(</span>cur_seq<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 10</span>              <span class="k2">{</span>
<span class="number"> 11</span>              <span class="k1">case</span> <span class="s">'x'</span><span class="k2">:</span>
<span class="number"> 12</span>                ...<span class="c">//Create something (quad)</span>
<span class="number"> 13</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 14</span>              <span class="k1">case</span> <span class="s">'o'</span><span class="k2">:</span>
<span class="number"> 15</span>                ...<span class="c">//Create anotherthing (tri)</span>
<span class="number"> 16</span>                <span class="k1">break</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>

You can make it an std::vector(if you like) (instead of array) and load it with random shapes during the stage setup, then use it like i did.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (killocan)</author>
		<pubDate>Mon, 13 Jan 2014 19:16:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>First , determine a random size for the number of obstacles in this object.</p><p>Then determine which obstacles is which - ie which is a triangle / square / empty space.</p><p>For each obstacle, push it back onto the vector of objects.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 13 Jan 2014 21:40:31 +0000</pubDate>
	</item>
</rss>
