Hello,
I try now to solve this one : ntroductionThe diamond kata takes as its input a letter, and outputs it in a diamond shape. Given a letter, it prints a diamond starting with 'A', with the supplied letter at the widest point. Requirements
ExamplesIn the following examples, spaces are indicated by Diamond for letter 'A':
Diamond for letter 'C':
|
Administrator
|
Formula? Well, it's pretty straight forward. Let's start with the size of the diamond (it field, actually). In the example, there are two lines above and two lines below the "C" line. C-A = 2. This number looks useful. The dimension is 2+1+2 square. How many spaces before a letter? C-letter i.e. C-A = 2 C-B = 1 and C-C = 0 The same number of spaces after the second/last occurrence of the letter on the line. The number of spaces between the letters on a line is the size minus the number of spaces before and after plus the two copies of the current line's letter. For the "B" line, there is one space before and after, 2x"B", leaving 5 - 1 -1 - 2 = 1 space between. For the "A" line, the simple arithmetic would give you -1, which also confirms that just one "A" is appropriate with no space between first and last letter on the line. (For "A", it is first and last, once only.) After that, you just need to iterate ($A to: $C), ($(C-1) to: $A by: -1) and do the arithmetic. On Tue, Apr 28, 2020 at 1:23 AM Roelof Wobben via Pharo-users <[hidden email]> wrote:
|
Thanks,
And the 5 can also be calculated by 2 * (char - $a) + 1 Roelof Op 28-4-2020 om 18:31 schreef Richard Sargent:
|
In reply to this post by Richard Sargent
Building on Richard's advice, one way to break this down into a series of simpler tasks is - first generate a square without any dots, i.e. ALL A's on the first line, ALL B's on second line, ALL C's on third line. - second, work out when to output a dot rather than a letter. cheers -ben On Wed, 29 Apr 2020 at 00:32, Richard Sargent <[hidden email]> wrote:
|
In reply to this post by Richard Sargent
Am I right here or terrible wrong ?
Roelof Op 28-4-2020 om 20:53 schreef Roelof Wobben:
|
Administrator
|
In reply to this post by Richard Sargent
On Wed, Apr 29, 2020 at 11:30 AM Roelof Wobben <[hidden email]> wrote:
If you are referring to calculating the size of the square, you are correct.
Yes. That is what I wrote.
|
Free forum by Nabble | Edit this page |