Compare your expression for  dice :

   faces=: {&' o'@((i.3 3)e.&":"1])&.>4 80 840 8620 86420 865320
   faces
------T-----T-----T-----T-----T-----┐
│     │o    │o    │o   o│o   o│o   o│
│  o  │     │  o  │     │  o  │o   o│
│     │    o│    o│o   o│o   o│o   o│
L-----+-----+-----+-----+-----+------

With Kip Murray's version:
   
    one =:   '   ',' o ',:'   '
    two =:   'o  ','   ',:'  o'
   three =: 'o  ',' o ',:'  o'
   four =:  'o o','   ',:'o o'
   five =:  'o o',' o ',:'o o'
   six =:   'o o','o o',:'o o'
   ]dice =: one;two;three;four;five;six
----T---T---T---T---T---┐
│   │o  │o  │o o│o o│o o│
│ o │   │ o │   │ o │o o│
│   │  o│  o│o o│o o│o o│
L---+---+---+---+---+----

Your dice are great looking! However that change has greatly increased the
complexity of the code.  Also, there is a condition of the challenge to
exclude  @  in each expression. This requirement encourages considering the
execution from the right toward the left. In your example  4 80 840 8620
86420 865320   could  be puzzling to a beginner. Your other ideas are
thoughtful ideas to incorporate in an actual design of a program. At this
stage, I'm trying to raise issues that can be discussed and explored
further.

From your design so far, is it possible for you to capture the actual values
of the  and display them following each   toss  ?  It is this data that will
be useful as you finish the challenge.

Linda


-----Original Message-----
From: programming-boun...@jsoftware.com
[mailto:programming-boun...@jsoftware.com] On Behalf Of Raul Miller
Sent: Monday, December 05, 2011 9:50 AM
To: Programming forum
Subject: Re: [Jprogramming] Turkey Roll - Challenge 2

Personally, I have been baffled by a number of the choices and requirements
here.  And, by this, I mean that I do not understand them.

That said, here is my current interpretation of a mix of some of the
statements expressed here, about what is being accomplished:

faces=: {&' o'@((i.3 3)e.&":"1])&.>4 80 840 8620 86420 865320
toss=: (] {~ (?@$ #)) ".bind 'faces'

Example use, with ascii box drawing enabled:

   toss 2 10
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|o    |o    |o   o|o    |o    |o    |o    |o   o|o   o|o   o|
|  o  |  o  |  o  |  o  |  o  |     |     |     |  o  |o   o|
|    o|    o|o   o|    o|    o|    o|    o|o   o|o   o|o   o|
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|o    |o   o|o    |o   o|o   o|o    |o    |o    |o   o|o    |
|  o  |  o  |     |  o  |     |     |     |     |     |     |
|    o|o   o|    o|o   o|o   o|    o|    o|    o|o   o|    o|
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
   toss 2 10
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|o    |o    |o   o|o    |o   o|o    |o   o|o   o|o   o|o    |
|     |     |     |  o  |o   o|  o  |     |  o  |o   o|     |
|    o|    o|o   o|    o|o   o|    o|o   o|o   o|o   o|    o|
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|o   o|o    |o   o|o   o|o   o|o   o|     |o   o|o   o|o   o|
|     |     |  o  |     |     |  o  |  o  |     |     |     |
|o   o|    o|o   o|o   o|o   o|o   o|     |o   o|o   o|o   o|
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Notes:

1. I spaced my pips out wider, horizontally, than the original.  I think
this looks better.
2. toss has 'faces' as an implicit dependency
3. I can change the number of dice being tossed by changing the argument to
toss

In my opinion, this is not a very good design.  In "real life" code, I
would either replace (". bind 'faces') with (faces) or I would make it an
argument to the function.

I could probably compress a few characters out of the definition of faces,
but it would become more mysterious if I did so.

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to