Whilst my answer is longer, I think you will find it simulates a 7 segment display a little closer, and it has a larger, more readable font.
This one weighs in at 299 characters, excluding line breaks.
sub f{
$i=$_[0];$i=~s/(\d)\./$1|'@'/eg;@c=split//,"\brew\$]m.k{%\177o";
for$a(0..8){for$l(split//,$i){$x=ord$c[ord($l&"?")-45];print do{
if($a%4){$q=($x>>($a>4)*3)&6;($q&2?"|":" ")." ".($q&4?"|":" ")
." ";}else{($x>>($a>>2)*3&1?" ----- ":" "x7).
($a==8&&(($l&"@")eq"@")?" X ":" ");}}}print"\n";}}
f(-123.04);
f(56789);
And the output is:
----- -----
| | | | |
| | | | |
| | | | |
----- ----- ----- -----
| | | |
| | | |
| | | |
----- ----- X
----- ----- ----- ----- ----- -----
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
----- ----- ----- -----
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
----- ----- ----- ----- -----
Not bad for a first golf attempt? :-)
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|