<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">It doesn't answer your question, but if your game is any good,</div><div class="gmail_default" style="font-family:monospace,monospace">some day it will need maintaining.  I have recently done some</div><div class="gmail_default" style="font-family:monospace,monospace">maintenance work on code I wrote 20 years ago, and it was as</div><div class="gmail_default" style="font-family:monospace,monospace">if it had been written by someone else.  (I guess I'm just not</div><div class="gmail_default" style="font-family:monospace,monospace">smart to keep the structure and justification of several hundred</div><div class="gmail_default" style="font-family:monospace,monospace">thousand lines of code in my head for decades.)  So readability</div><div class="gmail_default" style="font-family:monospace,monospace">is an issue, even if you never expect anyone else to read it.</div><div class="gmail_default" style="font-family:monospace,monospace">And for me, the first version is just so much more readable than</div><div class="gmail_default" style="font-family:monospace,monospace">the second version that I'd prefer it even if it was slower.</div><div class="gmail_default" style="font-family:monospace,monospace">You can tell at a glance what is the same every time and what</div><div class="gmail_default" style="font-family:monospace,monospace">is not the same.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">There's a rule of thumb I picked up from the Smalltalk</div><div class="gmail_default" style="font-family:monospace,monospace">community: if all the branches of a conditional have a</div><div class="gmail_default" style="font-family:monospace,monospace">common pattern, move it out so that you can see it and</div><div class="gmail_default" style="font-family:monospace,monospace">make sure it *has* to be the same.  It's a rule of thumb.</div><div class="gmail_default" style="font-family:monospace,monospace">There can be reasons to violate it.  But I find that it</div><div class="gmail_default" style="font-family:monospace,monospace">generally makes my code better.  (And boy do I need help</div><div class="gmail_default" style="font-family:monospace,monospace">with that.)</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 26 Aug 2023 at 22:13, Sean Charles (emacstheviking) <<a href="mailto:objitsu@gmail.com">objitsu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>I started out with this:</div><div><br></div><div><font face="Courier New">    get_random_value(0, 2, V, !IO),</font></div><div><font face="Courier New">    ( if V = 0 then</font></div><div><font face="Courier New">        Speed = 0.25, Color = color(gray)</font></div><div><font face="Courier New">    else if V = 1 then</font></div><div><font face="Courier New">        Speed = 0.75, Color = color(skyblue)</font></div><div><font face="Courier New">    else</font></div><div><font face="Courier New">        Speed = 1.25, Color = color(beige)</font></div><div><font face="Courier New">    ),</font></div><div><font face="Courier New">    Star = star(X, StarY, Speed, to_rgba(Color)).</font></div><div><br></div><div>end then, for some half0baked reason regarding not creating Speed and Color but instead directly returning Star...</div><div><br></div><div><font face="Courier New">    get_random_value(0, 2, V, !IO),</font></div><div><font face="Courier New">    ( if V = 0 then</font></div><div><font face="Courier New">        Star = star(X, StarY, 0.25, to_rgba(color(gray)))</font></div><div><font face="Courier New">    else if V = 1 then</font></div><div><font face="Courier New">        Star = star(X, StarY, 0.75, to_rgba(color(skyblue)))</font></div><div><font face="Courier New">    else</font></div><div><font face="Courier New">        Star = star(X, StarY, 1.25, to_rgba(color(beige)))</font></div><div><font face="Courier New">    ).</font></div><div><br></div><div><br></div><div>So, is there any real difference, or did I do something good / bad / indifferent at best?</div><div>Yes, I know it's a nit picking question but I am curious to know the relative speed / efficiencies , I am writing a game after all so being 1980-s paranoid, every cycle counts. I have '-O4' level optimisation in my build.</div><div><br></div><div>:D</div><div><br></div><div>Thanks</div><div>Sean.</div><div><br></div></div>_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@lists.mercurylang.org" target="_blank">users@lists.mercurylang.org</a><br>
<a href="https://lists.mercurylang.org/listinfo/users" rel="noreferrer" target="_blank">https://lists.mercurylang.org/listinfo/users</a><br>
</blockquote></div>