From fa6264cc8fc9f1a5c41f239884e0acfcc08040ef Mon Sep 17 00:00:00 2001 From: Isaac Good Date: Mon, 25 May 2026 15:48:39 -0700 Subject: [PATCH 1/3] Format all `instructions.append.md` to start with an H1 (required but ignored) and H2 --- .../atbash-cipher/.docs/instructions.append.md | 2 ++ exercises/practice/bob/.docs/instructions.append.md | 4 +++- .../circular-buffer/.docs/instructions.append.md | 2 ++ .../collatz-conjecture/.docs/instructions.append.md | 2 ++ .../crypto-square/.docs/instructions.append.md | 2 ++ .../practice/diamond/.docs/instructions.append.md | 4 +++- .../grade-school/.docs/instructions.append.md | 2 ++ .../practice/high-scores/.docs/instructions.append.md | 2 ++ exercises/practice/house/.docs/instructions.append.md | 2 ++ .../matching-brackets/.docs/instructions.append.md | 4 +++- .../practice/micro-blog/.docs/instructions.append.md | 2 ++ .../practice/minesweeper/.docs/instructions.append.md | 1 + .../practice/ocr-numbers/.docs/instructions.append.md | 4 +++- .../palindrome-products/.docs/instructions.append.md | 6 ++++-- .../practice/pig-latin/.docs/instructions.append.md | 2 ++ .../queen-attack/.docs/instructions.append.md | 11 ++++++++--- .../reverse-string/.docs/instructions.append.md | 2 ++ .../rotational-cipher/.docs/instructions.append.md | 4 +++- .../run-length-encoding/.docs/instructions.append.md | 2 ++ .../saddle-points/.docs/instructions.append.md | 5 ++++- .../practice/space-age/.docs/instructions.append.md | 5 ++++- .../spiral-matrix/.docs/instructions.append.md | 2 ++ .../practice/sublist/.docs/instructions.append.md | 5 ++++- .../practice/tournament/.docs/instructions.append.md | 2 ++ .../practice/twelve-days/.docs/instructions.append.md | 2 ++ 25 files changed, 68 insertions(+), 13 deletions(-) diff --git a/exercises/practice/atbash-cipher/.docs/instructions.append.md b/exercises/practice/atbash-cipher/.docs/instructions.append.md index 77f832c..606d450 100644 --- a/exercises/practice/atbash-cipher/.docs/instructions.append.md +++ b/exercises/practice/atbash-cipher/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/bob/.docs/instructions.append.md b/exercises/practice/bob/.docs/instructions.append.md index a62a79d..606d450 100644 --- a/exercises/practice/bob/.docs/instructions.append.md +++ b/exercises/practice/bob/.docs/instructions.append.md @@ -1,5 +1,7 @@ +# Instructions append + ## Reserved Memory Bytes 64-319 of the linear memory are reserved for the input string. -The input string can be modified in place if desired. \ No newline at end of file +The input string can be modified in place if desired. diff --git a/exercises/practice/circular-buffer/.docs/instructions.append.md b/exercises/practice/circular-buffer/.docs/instructions.append.md index 7042752..284910e 100644 --- a/exercises/practice/circular-buffer/.docs/instructions.append.md +++ b/exercises/practice/circular-buffer/.docs/instructions.append.md @@ -1,3 +1,5 @@ # Instructions append +## Implementation + The `read` returns a Go-style error handling type `(i32,i32)` diff --git a/exercises/practice/collatz-conjecture/.docs/instructions.append.md b/exercises/practice/collatz-conjecture/.docs/instructions.append.md index 77db8ea..cadbe43 100644 --- a/exercises/practice/collatz-conjecture/.docs/instructions.append.md +++ b/exercises/practice/collatz-conjecture/.docs/instructions.append.md @@ -1,3 +1,5 @@ # Instructions append +## Implementation + If `n` is _not_ a positive integer, don't continue executing and return `-1` to indicate an error condition. diff --git a/exercises/practice/crypto-square/.docs/instructions.append.md b/exercises/practice/crypto-square/.docs/instructions.append.md index 285116d..e441053 100644 --- a/exercises/practice/crypto-square/.docs/instructions.append.md +++ b/exercises/practice/crypto-square/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/diamond/.docs/instructions.append.md b/exercises/practice/diamond/.docs/instructions.append.md index e4e9b34..f27fe06 100644 --- a/exercises/practice/diamond/.docs/instructions.append.md +++ b/exercises/practice/diamond/.docs/instructions.append.md @@ -1,3 +1,5 @@ -# Diamond format +# Instructions append + +## Diamond format The diamond is represented as a string, with a newline character at the end of each row. diff --git a/exercises/practice/grade-school/.docs/instructions.append.md b/exercises/practice/grade-school/.docs/instructions.append.md index dbba812..ac0edc7 100644 --- a/exercises/practice/grade-school/.docs/instructions.append.md +++ b/exercises/practice/grade-school/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory Bytes 64-191 of the linear memory are reserved for the input string. diff --git a/exercises/practice/high-scores/.docs/instructions.append.md b/exercises/practice/high-scores/.docs/instructions.append.md index 4ccc6b1..cf572e6 100644 --- a/exercises/practice/high-scores/.docs/instructions.append.md +++ b/exercises/practice/high-scores/.docs/instructions.append.md @@ -1,5 +1,7 @@ # Instructions append +## Implementation + You may assume that the high score list is never empty. For the last task, if there are less than 3 scores, leave the remaining return values at zero. diff --git a/exercises/practice/house/.docs/instructions.append.md b/exercises/practice/house/.docs/instructions.append.md index 8fb070a..6b0fac4 100644 --- a/exercises/practice/house/.docs/instructions.append.md +++ b/exercises/practice/house/.docs/instructions.append.md @@ -1,3 +1,5 @@ # Instruction append +## Implementation + Each verse should end with a newline `\n`, with no additional delimiter. diff --git a/exercises/practice/matching-brackets/.docs/instructions.append.md b/exercises/practice/matching-brackets/.docs/instructions.append.md index a62a79d..606d450 100644 --- a/exercises/practice/matching-brackets/.docs/instructions.append.md +++ b/exercises/practice/matching-brackets/.docs/instructions.append.md @@ -1,5 +1,7 @@ +# Instructions append + ## Reserved Memory Bytes 64-319 of the linear memory are reserved for the input string. -The input string can be modified in place if desired. \ No newline at end of file +The input string can be modified in place if desired. diff --git a/exercises/practice/micro-blog/.docs/instructions.append.md b/exercises/practice/micro-blog/.docs/instructions.append.md index 21f659c..d9b51a0 100644 --- a/exercises/practice/micro-blog/.docs/instructions.append.md +++ b/exercises/practice/micro-blog/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory The buffer for the UTF-8 input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/minesweeper/.docs/instructions.append.md b/exercises/practice/minesweeper/.docs/instructions.append.md index 91a7969..23b8c31 100644 --- a/exercises/practice/minesweeper/.docs/instructions.append.md +++ b/exercises/practice/minesweeper/.docs/instructions.append.md @@ -1,3 +1,4 @@ +# Instructions append ## Minefield format diff --git a/exercises/practice/ocr-numbers/.docs/instructions.append.md b/exercises/practice/ocr-numbers/.docs/instructions.append.md index 642dc54..e509acc 100644 --- a/exercises/practice/ocr-numbers/.docs/instructions.append.md +++ b/exercises/practice/ocr-numbers/.docs/instructions.append.md @@ -1,4 +1,6 @@ -# Reserved Memory +# Instructions append + +## Reserved Memory Bytes 64-191 of the linear memory are reserved for the input string. diff --git a/exercises/practice/palindrome-products/.docs/instructions.append.md b/exercises/practice/palindrome-products/.docs/instructions.append.md index 71d602f..1fb5ab4 100644 --- a/exercises/practice/palindrome-products/.docs/instructions.append.md +++ b/exercises/practice/palindrome-products/.docs/instructions.append.md @@ -1,7 +1,9 @@ -## Return values +# Instructions append -The functions are supposed to return the product and the offset and length of the factors array. The factors are just written as pairs of i32 into memory: +## Return values +The functions are supposed to return the product and the offset and length of the factors array. +The factors are just written as pairs of i32 into memory: ``` Return value: diff --git a/exercises/practice/pig-latin/.docs/instructions.append.md b/exercises/practice/pig-latin/.docs/instructions.append.md index 77f832c..606d450 100644 --- a/exercises/practice/pig-latin/.docs/instructions.append.md +++ b/exercises/practice/pig-latin/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/queen-attack/.docs/instructions.append.md b/exercises/practice/queen-attack/.docs/instructions.append.md index 11d1881..1d2e481 100644 --- a/exercises/practice/queen-attack/.docs/instructions.append.md +++ b/exercises/practice/queen-attack/.docs/instructions.append.md @@ -1,9 +1,13 @@ # Instructions append +## Implementation + A queen must be placed on a valid position on the board. Two queens cannot share the same position. -The queens shown below are at their [default starting positions](https://en.wikipedia.org/wiki/Rules_of_chess#Initial_setup). That's the 1st rank (row 7) for the white queen and the 8th rank (row 0) for the black queen. Both queens start in the d file (column 3). +The queens shown below are at their [default starting positions](https://en.wikipedia.org/wiki/Rules_of_chess#Initial_setup). +That's the 1st rank (row 7) for the white queen and the 8th rank (row 0) for the black queen. +Both queens start in the d file (column 3). ```text a b c d e f g h @@ -18,9 +22,10 @@ The queens shown below are at their [default starting positions](https://en.wiki a b c d e f g h ``` -# Positions argument +## Positions argument -The function will receive only a single unsigned 32bit number as argument. Both rows and columns are encoded into it: +The function will receive only a single unsigned 32bit number as argument. +Both rows and columns are encoded into it: - The chess notation files a..h become zero-indexed columns 0..7 - The chess notation ranks 8..1 become zero-indexed rows 0..7 diff --git a/exercises/practice/reverse-string/.docs/instructions.append.md b/exercises/practice/reverse-string/.docs/instructions.append.md index 29e1fbb..c96f504 100644 --- a/exercises/practice/reverse-string/.docs/instructions.append.md +++ b/exercises/practice/reverse-string/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory The buffer for the input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/rotational-cipher/.docs/instructions.append.md b/exercises/practice/rotational-cipher/.docs/instructions.append.md index a62a79d..606d450 100644 --- a/exercises/practice/rotational-cipher/.docs/instructions.append.md +++ b/exercises/practice/rotational-cipher/.docs/instructions.append.md @@ -1,5 +1,7 @@ +# Instructions append + ## Reserved Memory Bytes 64-319 of the linear memory are reserved for the input string. -The input string can be modified in place if desired. \ No newline at end of file +The input string can be modified in place if desired. diff --git a/exercises/practice/run-length-encoding/.docs/instructions.append.md b/exercises/practice/run-length-encoding/.docs/instructions.append.md index 29e1fbb..c96f504 100644 --- a/exercises/practice/run-length-encoding/.docs/instructions.append.md +++ b/exercises/practice/run-length-encoding/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory The buffer for the input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/saddle-points/.docs/instructions.append.md b/exercises/practice/saddle-points/.docs/instructions.append.md index 56cf001..2dcdb74 100644 --- a/exercises/practice/saddle-points/.docs/instructions.append.md +++ b/exercises/practice/saddle-points/.docs/instructions.append.md @@ -1,6 +1,9 @@ +# Instructions append + ## Input format -The input will be in the format of a string. To keep this exercise beginner-friendly, you need not expect numbers with multiple digits. +The input will be in the format of a string. +To keep this exercise beginner-friendly, you need not expect numbers with multiple digits. Bytes 64-191 of the linear memory are reserved for the input string. diff --git a/exercises/practice/space-age/.docs/instructions.append.md b/exercises/practice/space-age/.docs/instructions.append.md index 22fb7df..d8d713d 100644 --- a/exercises/practice/space-age/.docs/instructions.append.md +++ b/exercises/practice/space-age/.docs/instructions.append.md @@ -1,5 +1,8 @@ # Instructions append -Please do not delete the exported planet names. They serve as an enumeration, so the planet does not need to be parsed from a string. +## Implementation + +Please do not delete the exported planet names. +They serve as an enumeration, so the planet does not need to be parsed from a string. The result is expected to be rounded to two decimal places. diff --git a/exercises/practice/spiral-matrix/.docs/instructions.append.md b/exercises/practice/spiral-matrix/.docs/instructions.append.md index b8d5a23..fa7a55a 100644 --- a/exercises/practice/spiral-matrix/.docs/instructions.append.md +++ b/exercises/practice/spiral-matrix/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Output format The output is expected as a flat array of u16 numbers; it will be deserialized into the required square array of arrays: diff --git a/exercises/practice/sublist/.docs/instructions.append.md b/exercises/practice/sublist/.docs/instructions.append.md index b1c808a..238a15b 100644 --- a/exercises/practice/sublist/.docs/instructions.append.md +++ b/exercises/practice/sublist/.docs/instructions.append.md @@ -1,3 +1,6 @@ +# Instructions append + ## Reserved Memory -The buffer for the input lists uses bytes 64-319 of linear memory. The lists are byte arrays directly concatenated in linear memory. +The buffer for the input lists uses bytes 64-319 of linear memory. +The lists are byte arrays directly concatenated in linear memory. diff --git a/exercises/practice/tournament/.docs/instructions.append.md b/exercises/practice/tournament/.docs/instructions.append.md index 64b8bfd..a7bea0e 100644 --- a/exercises/practice/tournament/.docs/instructions.append.md +++ b/exercises/practice/tournament/.docs/instructions.append.md @@ -1,3 +1,5 @@ +# Instructions append + ## Reserved Memory Bytes 64-447 of the linear memory are reserved for the input string. diff --git a/exercises/practice/twelve-days/.docs/instructions.append.md b/exercises/practice/twelve-days/.docs/instructions.append.md index 8fb070a..6b0fac4 100644 --- a/exercises/practice/twelve-days/.docs/instructions.append.md +++ b/exercises/practice/twelve-days/.docs/instructions.append.md @@ -1,3 +1,5 @@ # Instruction append +## Implementation + Each verse should end with a newline `\n`, with no additional delimiter. From 92325ade72bf5dbccd228392fb6f22b41a9999b6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 16:03:56 -0700 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=A4=96=20Auto-sync=20docs,=20metadata?= =?UTF-8?q?,=20and=20filepaths=20(#221)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercises/practice/bob/.meta/config.json | 2 +- .../practice/book-store/.meta/config.json | 2 +- exercises/practice/etl/.meta/config.json | 2 +- .../kindergarten-garden/.meta/config.json | 2 +- exercises/practice/luhn/.docs/instructions.md | 2 +- .../ocr-numbers/.docs/instructions.md | 80 ++++++------------- .../ocr-numbers/.docs/introduction.md | 6 ++ .../practice/phone-number/.meta/config.json | 2 +- .../practice/pig-latin/.meta/config.json | 2 +- .../protein-translation/.docs/instructions.md | 47 +++++------ .../practice/reverse-string/.meta/config.json | 2 +- .../practice/space-age/.meta/config.json | 2 +- .../practice/triangle/.docs/instructions.md | 6 ++ exercises/practice/triangle/.meta/config.json | 2 +- 14 files changed, 66 insertions(+), 93 deletions(-) create mode 100644 exercises/practice/ocr-numbers/.docs/introduction.md diff --git a/exercises/practice/bob/.meta/config.json b/exercises/practice/bob/.meta/config.json index aaf628d..c2952c3 100644 --- a/exercises/practice/bob/.meta/config.json +++ b/exercises/practice/bob/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Bob is a lackadaisical teenager. In conversation, his responses are very limited.", "source": "Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial.", - "source_url": "https://pine.fm/LearnToProgram/?Chapter=06", + "source_url": "https://pine.fm/LearnToProgram/chap_06.html", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/book-store/.meta/config.json b/exercises/practice/book-store/.meta/config.json index 6933616..bf62da6 100644 --- a/exercises/practice/book-store/.meta/config.json +++ b/exercises/practice/book-store/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts of multiple-book purchases.", "source": "Inspired by the harry potter kata from Cyber-Dojo.", - "source_url": "https://cyber-dojo.org", + "source_url": "https://cyber-dojo.org/creator/home", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/etl/.meta/config.json b/exercises/practice/etl/.meta/config.json index 051f5d7..0d85fb4 100644 --- a/exercises/practice/etl/.meta/config.json +++ b/exercises/practice/etl/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Change the data format for scoring a game to more easily add other languages.", "source": "Based on an exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://turing.edu", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/kindergarten-garden/.meta/config.json b/exercises/practice/kindergarten-garden/.meta/config.json index 2750e03..e672fae 100644 --- a/exercises/practice/kindergarten-garden/.meta/config.json +++ b/exercises/practice/kindergarten-garden/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Given a diagram, determine which plants each child in the kindergarten class is responsible for.", "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://turing.edu", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/luhn/.docs/instructions.md b/exercises/practice/luhn/.docs/instructions.md index df2e304..7702c6b 100644 --- a/exercises/practice/luhn/.docs/instructions.md +++ b/exercises/practice/luhn/.docs/instructions.md @@ -41,7 +41,7 @@ If the sum is evenly divisible by 10, the original number is valid. ### Invalid Canadian SIN -The number to be checked is `066 123 468`. +The number to be checked is `066 123 478`. We start at the end of the number and double every second digit, beginning with the second digit from the right and moving left. diff --git a/exercises/practice/ocr-numbers/.docs/instructions.md b/exercises/practice/ocr-numbers/.docs/instructions.md index 7beb257..8a391ce 100644 --- a/exercises/practice/ocr-numbers/.docs/instructions.md +++ b/exercises/practice/ocr-numbers/.docs/instructions.md @@ -1,79 +1,47 @@ # Instructions -Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled. +Optical Character Recognition or OCR is software that converts images of text into machine-readable text. +Given a grid of characters representing some digits, convert the grid to a string of digits. +If the grid has multiple rows of cells, the rows should be separated in the output with a `","`. -## Step One +- The grid is made of one of more lines of cells. +- Each line of the grid is made of one or more cells. +- Each cell is three columns wide and four rows high (3x4) and represents one digit. +- Digits are drawn using pipes (`"|"`), underscores (`"_"`), and spaces (`" "`). -To begin with, convert a simple binary font to a string containing 0 or 1. +## Edge cases -The binary font uses pipes and underscores, four rows high and three columns wide. +- If the input is not a valid size, your program should indicate there is an error. +- If the input is the correct size, but a cell is not recognizable, your program should output a `"?"` for that character. -```text - _ # - | | # zero. - |_| # - # the fourth row is always blank -``` +## Examples -Is converted to "0" - -```text - # - | # one. - | # - # (blank fourth row) -``` - -Is converted to "1" - -If the input is the correct size, but not recognizable, your program should return '?' - -If the input is the incorrect size, your program should return an error. - -## Step Two - -Update your program to recognize multi-character binary strings, replacing garbled numbers with ? - -## Step Three - -Update your program to recognize all numbers 0 through 9, both individually and as part of a larger string. - -```text - _ - _| -|_ - -``` - -Is converted to "2" +The following input (without the comments) is converted to `"1234567890"`. ```text _ _ _ _ _ _ _ _ # - | _| _||_||_ |_ ||_||_|| | # decimal numbers. + | _| _||_||_ |_ ||_||_|| | # Decimal numbers. ||_ _| | _||_| ||_| _||_| # - # fourth line is always blank + # The fourth line is always blank, ``` -Is converted to "1234567890" - -## Step Four +The following input is converted to `"123,456,789"`. -Update your program to handle multiple numbers, one per line. -When converting several lines, join the lines with commas. + ```text - _ _ + _ _ | _| _| ||_ _| - - _ _ -|_||_ |_ + + _ _ +|_||_ |_ | _||_| - - _ _ _ + + _ _ _ ||_||_| ||_| _| - + ``` -Is converted to "123,456,789". + diff --git a/exercises/practice/ocr-numbers/.docs/introduction.md b/exercises/practice/ocr-numbers/.docs/introduction.md new file mode 100644 index 0000000..366d760 --- /dev/null +++ b/exercises/practice/ocr-numbers/.docs/introduction.md @@ -0,0 +1,6 @@ +# Introduction + +Your best friend Marta recently landed their dream job working with a local history museum's collections. +Knowing of your interests in programming, they confide in you about an issue at work for an upcoming exhibit on computing history. +A local university's math department had donated several boxes of historical printouts, but given the poor condition of the documents, the decision has been made to digitize the text. +However, the university's old printer had some quirks in how text was represented, and your friend could use your help to extract the data successfully. diff --git a/exercises/practice/phone-number/.meta/config.json b/exercises/practice/phone-number/.meta/config.json index 3bed9cf..0014d2d 100644 --- a/exercises/practice/phone-number/.meta/config.json +++ b/exercises/practice/phone-number/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Clean up user-entered phone numbers so that they can be sent SMS messages.", "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://turing.edu", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/pig-latin/.meta/config.json b/exercises/practice/pig-latin/.meta/config.json index 03118dc..e483ff5 100644 --- a/exercises/practice/pig-latin/.meta/config.json +++ b/exercises/practice/pig-latin/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Implement a program that translates from English to Pig Latin.", "source": "The Pig Latin exercise at Test First Teaching by Ultrasaurus", - "source_url": "https://github.com/ultrasaurus/test-first-teaching/blob/master/learn_ruby/pig_latin/", + "source_url": "https://github.com/ultrasaurus/test-first-teaching/tree/master/learn_ruby/pig_latin", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/protein-translation/.docs/instructions.md b/exercises/practice/protein-translation/.docs/instructions.md index 4488080..35c953b 100644 --- a/exercises/practice/protein-translation/.docs/instructions.md +++ b/exercises/practice/protein-translation/.docs/instructions.md @@ -1,36 +1,17 @@ # Instructions -Translate RNA sequences into proteins. +Your job is to translate RNA sequences into proteins. -RNA can be broken into three-nucleotide sequences called codons, and then translated to a protein like so: +RNA strands are made up of three-nucleotide sequences called **codons**. +Each codon translates to an **amino acid**. +When joined together, those amino acids make a protein. -RNA: `"AUGUUUUCU"` => translates to - -Codons: `"AUG", "UUU", "UCU"` -=> which become a protein with the following sequence => - -Protein: `"Methionine", "Phenylalanine", "Serine"` - -There are 64 codons which in turn correspond to 20 amino acids; however, all of the codon sequences and resulting amino acids are not important in this exercise. -If it works for one codon, the program should work for all of them. -However, feel free to expand the list in the test suite to include them all. - -There are also three terminating codons (also known as 'STOP' codons); if any of these codons are encountered (by the ribosome), all translation ends and the protein is terminated. - -All subsequent codons after are ignored, like this: - -RNA: `"AUGUUUUCUUAAAUG"` => - -Codons: `"AUG", "UUU", "UCU", "UAA", "AUG"` => - -Protein: `"Methionine", "Phenylalanine", "Serine"` - -Note the stop codon `"UAA"` terminates the translation and the final methionine is not translated into the protein sequence. - -Below are the codons and resulting amino acids needed for the exercise. +In the real world, there are 64 codons, which in turn correspond to 20 amino acids. +However, for this exercise, you’ll only use a few of the possible 64. +They are listed below: | Codon | Amino Acid | -| :----------------- | :------------ | +| ------------------ | ------------- | | AUG | Methionine | | UUU, UUC | Phenylalanine | | UUA, UUG | Leucine | @@ -40,6 +21,18 @@ Below are the codons and resulting amino acids needed for the exercise. | UGG | Tryptophan | | UAA, UAG, UGA | STOP | +For example, the RNA string “AUGUUUUCU” has three codons: “AUG”, “UUU” and “UCU”. +These map to Methionine, Phenylalanine, and Serine. + +## “STOP” Codons + +You’ll note from the table above that there are three **“STOP” codons**. +If you encounter any of these codons, ignore the rest of the sequence — the protein is complete. + +For example, “AUGUUUUCUUAAAUG” contains a STOP codon (“UAA”). +Once we reach that point, we stop processing. +We therefore only consider the part before it (i.e. “AUGUUUUCU”), not any further codons after it (i.e. “AUG”). + Learn more about [protein translation on Wikipedia][protein-translation]. [protein-translation]: https://en.wikipedia.org/wiki/Translation_(biology) diff --git a/exercises/practice/reverse-string/.meta/config.json b/exercises/practice/reverse-string/.meta/config.json index 0f25a78..0d6cf57 100644 --- a/exercises/practice/reverse-string/.meta/config.json +++ b/exercises/practice/reverse-string/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Reverse a given string.", "source": "Introductory challenge to reverse an input string", - "source_url": "https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb", + "source_url": "https://www.freecodecamp.org/news/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/space-age/.meta/config.json b/exercises/practice/space-age/.meta/config.json index 5fc8293..f9362e0 100644 --- a/exercises/practice/space-age/.meta/config.json +++ b/exercises/practice/space-age/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.", "source": "Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial.", - "source_url": "https://pine.fm/LearnToProgram/?Chapter=01", + "source_url": "https://pine.fm/LearnToProgram/chap_01.html", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/triangle/.docs/instructions.md b/exercises/practice/triangle/.docs/instructions.md index ac39008..e9b053d 100644 --- a/exercises/practice/triangle/.docs/instructions.md +++ b/exercises/practice/triangle/.docs/instructions.md @@ -13,6 +13,12 @@ A _scalene_ triangle has all sides of different lengths. For a shape to be a triangle at all, all sides have to be of length > 0, and the sum of the lengths of any two sides must be greater than or equal to the length of the third side. +~~~~exercism/note +_Degenerate triangles_ are triangles where the sum of the length of two sides is **equal** to the length of the third side, e.g. `1, 1, 2`. +We opted to not include tests for degenerate triangles in this exercise. +You may handle those situations if you wish to do so, or safely ignore them. +~~~~ + In equations: Let `a`, `b`, and `c` be sides of the triangle. diff --git a/exercises/practice/triangle/.meta/config.json b/exercises/practice/triangle/.meta/config.json index eaf4c2a..ff2d320 100644 --- a/exercises/practice/triangle/.meta/config.json +++ b/exercises/practice/triangle/.meta/config.json @@ -18,7 +18,7 @@ }, "blurb": "Determine if a triangle is equilateral, isosceles, or scalene.", "source": "The Ruby Koans triangle project, parts 1 & 2", - "source_url": "https://web.archive.org/web/20220831105330/http://rubykoans.com", + "source_url": "https://www.rubykoans.com/", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, From ff089a362a58d044305c3c1aab2d357261397c91 Mon Sep 17 00:00:00 2001 From: Isaac Good Date: Tue, 26 May 2026 22:17:16 -0700 Subject: [PATCH 3/3] Update the header to "Track specific instructions" --- .../practice/atbash-cipher/.docs/instructions.append.md | 2 +- exercises/practice/bob/.docs/instructions.append.md | 2 +- .../practice/circular-buffer/.docs/instructions.append.md | 2 +- .../collatz-conjecture/.docs/instructions.append.md | 2 +- .../practice/crypto-square/.docs/instructions.append.md | 2 +- exercises/practice/diamond/.docs/instructions.append.md | 2 +- .../practice/grade-school/.docs/instructions.append.md | 2 +- exercises/practice/high-scores/.docs/instructions.append.md | 2 +- exercises/practice/house/.docs/instructions.append.md | 2 +- .../practice/matching-brackets/.docs/instructions.append.md | 2 +- exercises/practice/micro-blog/.docs/instructions.append.md | 2 +- exercises/practice/minesweeper/.docs/instructions.append.md | 6 ++++-- exercises/practice/ocr-numbers/.docs/instructions.append.md | 2 +- .../palindrome-products/.docs/instructions.append.md | 2 +- exercises/practice/pig-latin/.docs/instructions.append.md | 2 +- .../practice/queen-attack/.docs/instructions.append.md | 2 +- .../practice/reverse-string/.docs/instructions.append.md | 2 +- .../practice/rotational-cipher/.docs/instructions.append.md | 2 +- .../run-length-encoding/.docs/instructions.append.md | 2 +- .../practice/saddle-points/.docs/instructions.append.md | 6 ++++-- exercises/practice/space-age/.docs/instructions.append.md | 2 +- .../practice/spiral-matrix/.docs/instructions.append.md | 2 +- exercises/practice/sublist/.docs/instructions.append.md | 2 +- exercises/practice/tournament/.docs/instructions.append.md | 6 ++++-- exercises/practice/twelve-days/.docs/instructions.append.md | 2 +- 25 files changed, 34 insertions(+), 28 deletions(-) diff --git a/exercises/practice/atbash-cipher/.docs/instructions.append.md b/exercises/practice/atbash-cipher/.docs/instructions.append.md index 606d450..4c86ec1 100644 --- a/exercises/practice/atbash-cipher/.docs/instructions.append.md +++ b/exercises/practice/atbash-cipher/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/bob/.docs/instructions.append.md b/exercises/practice/bob/.docs/instructions.append.md index 606d450..4c86ec1 100644 --- a/exercises/practice/bob/.docs/instructions.append.md +++ b/exercises/practice/bob/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/circular-buffer/.docs/instructions.append.md b/exercises/practice/circular-buffer/.docs/instructions.append.md index 284910e..b204db2 100644 --- a/exercises/practice/circular-buffer/.docs/instructions.append.md +++ b/exercises/practice/circular-buffer/.docs/instructions.append.md @@ -1,5 +1,5 @@ # Instructions append -## Implementation +## Track specific instructions The `read` returns a Go-style error handling type `(i32,i32)` diff --git a/exercises/practice/collatz-conjecture/.docs/instructions.append.md b/exercises/practice/collatz-conjecture/.docs/instructions.append.md index cadbe43..7ec32c2 100644 --- a/exercises/practice/collatz-conjecture/.docs/instructions.append.md +++ b/exercises/practice/collatz-conjecture/.docs/instructions.append.md @@ -1,5 +1,5 @@ # Instructions append -## Implementation +## Track specific instructions If `n` is _not_ a positive integer, don't continue executing and return `-1` to indicate an error condition. diff --git a/exercises/practice/crypto-square/.docs/instructions.append.md b/exercises/practice/crypto-square/.docs/instructions.append.md index e441053..2688bc9 100644 --- a/exercises/practice/crypto-square/.docs/instructions.append.md +++ b/exercises/practice/crypto-square/.docs/instructions.append.md @@ -1,5 +1,5 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/diamond/.docs/instructions.append.md b/exercises/practice/diamond/.docs/instructions.append.md index f27fe06..294f0ae 100644 --- a/exercises/practice/diamond/.docs/instructions.append.md +++ b/exercises/practice/diamond/.docs/instructions.append.md @@ -1,5 +1,5 @@ # Instructions append -## Diamond format +## Track specific instructions The diamond is represented as a string, with a newline character at the end of each row. diff --git a/exercises/practice/grade-school/.docs/instructions.append.md b/exercises/practice/grade-school/.docs/instructions.append.md index ac0edc7..c9d36e1 100644 --- a/exercises/practice/grade-school/.docs/instructions.append.md +++ b/exercises/practice/grade-school/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-191 of the linear memory are reserved for the input string. diff --git a/exercises/practice/high-scores/.docs/instructions.append.md b/exercises/practice/high-scores/.docs/instructions.append.md index cf572e6..26001b6 100644 --- a/exercises/practice/high-scores/.docs/instructions.append.md +++ b/exercises/practice/high-scores/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Implementation +## Track specific instructions You may assume that the high score list is never empty. diff --git a/exercises/practice/house/.docs/instructions.append.md b/exercises/practice/house/.docs/instructions.append.md index 6b0fac4..a0f0553 100644 --- a/exercises/practice/house/.docs/instructions.append.md +++ b/exercises/practice/house/.docs/instructions.append.md @@ -1,5 +1,5 @@ # Instruction append -## Implementation +## Track specific instructions Each verse should end with a newline `\n`, with no additional delimiter. diff --git a/exercises/practice/matching-brackets/.docs/instructions.append.md b/exercises/practice/matching-brackets/.docs/instructions.append.md index 606d450..4c86ec1 100644 --- a/exercises/practice/matching-brackets/.docs/instructions.append.md +++ b/exercises/practice/matching-brackets/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/micro-blog/.docs/instructions.append.md b/exercises/practice/micro-blog/.docs/instructions.append.md index d9b51a0..d4e06a3 100644 --- a/exercises/practice/micro-blog/.docs/instructions.append.md +++ b/exercises/practice/micro-blog/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions The buffer for the UTF-8 input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/minesweeper/.docs/instructions.append.md b/exercises/practice/minesweeper/.docs/instructions.append.md index 23b8c31..2036e55 100644 --- a/exercises/practice/minesweeper/.docs/instructions.append.md +++ b/exercises/practice/minesweeper/.docs/instructions.append.md @@ -1,12 +1,14 @@ # Instructions append -## Minefield format +## Track specific instructions + +### Minefield format The minefield is represented as a string, with a newline character at the end of each row. An example would be `" \n * \n \n"` -## Reserved Memory +### Reserved Memory The buffer for the input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/ocr-numbers/.docs/instructions.append.md b/exercises/practice/ocr-numbers/.docs/instructions.append.md index e509acc..29b69df 100644 --- a/exercises/practice/ocr-numbers/.docs/instructions.append.md +++ b/exercises/practice/ocr-numbers/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-191 of the linear memory are reserved for the input string. diff --git a/exercises/practice/palindrome-products/.docs/instructions.append.md b/exercises/practice/palindrome-products/.docs/instructions.append.md index 1fb5ab4..3766b1d 100644 --- a/exercises/practice/palindrome-products/.docs/instructions.append.md +++ b/exercises/practice/palindrome-products/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Return values +## Track specific instructions The functions are supposed to return the product and the offset and length of the factors array. The factors are just written as pairs of i32 into memory: diff --git a/exercises/practice/pig-latin/.docs/instructions.append.md b/exercises/practice/pig-latin/.docs/instructions.append.md index 606d450..4c86ec1 100644 --- a/exercises/practice/pig-latin/.docs/instructions.append.md +++ b/exercises/practice/pig-latin/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/queen-attack/.docs/instructions.append.md b/exercises/practice/queen-attack/.docs/instructions.append.md index 1d2e481..9c0d0e1 100644 --- a/exercises/practice/queen-attack/.docs/instructions.append.md +++ b/exercises/practice/queen-attack/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Implementation +## Track specific instructions A queen must be placed on a valid position on the board. Two queens cannot share the same position. diff --git a/exercises/practice/reverse-string/.docs/instructions.append.md b/exercises/practice/reverse-string/.docs/instructions.append.md index c96f504..1738c42 100644 --- a/exercises/practice/reverse-string/.docs/instructions.append.md +++ b/exercises/practice/reverse-string/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions The buffer for the input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/rotational-cipher/.docs/instructions.append.md b/exercises/practice/rotational-cipher/.docs/instructions.append.md index 606d450..4c86ec1 100644 --- a/exercises/practice/rotational-cipher/.docs/instructions.append.md +++ b/exercises/practice/rotational-cipher/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions Bytes 64-319 of the linear memory are reserved for the input string. diff --git a/exercises/practice/run-length-encoding/.docs/instructions.append.md b/exercises/practice/run-length-encoding/.docs/instructions.append.md index c96f504..1738c42 100644 --- a/exercises/practice/run-length-encoding/.docs/instructions.append.md +++ b/exercises/practice/run-length-encoding/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions The buffer for the input string uses bytes 64-319 of linear memory. diff --git a/exercises/practice/saddle-points/.docs/instructions.append.md b/exercises/practice/saddle-points/.docs/instructions.append.md index 2dcdb74..4e9331b 100644 --- a/exercises/practice/saddle-points/.docs/instructions.append.md +++ b/exercises/practice/saddle-points/.docs/instructions.append.md @@ -1,13 +1,15 @@ # Instructions append -## Input format +## Track specific instructions + +### Input format The input will be in the format of a string. To keep this exercise beginner-friendly, you need not expect numbers with multiple digits. Bytes 64-191 of the linear memory are reserved for the input string. -## Output format +### Output format The output is expected in pairs of row and column as u8 directly concatenated. diff --git a/exercises/practice/space-age/.docs/instructions.append.md b/exercises/practice/space-age/.docs/instructions.append.md index d8d713d..ffeb1d6 100644 --- a/exercises/practice/space-age/.docs/instructions.append.md +++ b/exercises/practice/space-age/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Implementation +## Track specific instructions Please do not delete the exported planet names. They serve as an enumeration, so the planet does not need to be parsed from a string. diff --git a/exercises/practice/spiral-matrix/.docs/instructions.append.md b/exercises/practice/spiral-matrix/.docs/instructions.append.md index fa7a55a..bb74da7 100644 --- a/exercises/practice/spiral-matrix/.docs/instructions.append.md +++ b/exercises/practice/spiral-matrix/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Output format +## Track specific instructions The output is expected as a flat array of u16 numbers; it will be deserialized into the required square array of arrays: diff --git a/exercises/practice/sublist/.docs/instructions.append.md b/exercises/practice/sublist/.docs/instructions.append.md index 238a15b..0b27f8b 100644 --- a/exercises/practice/sublist/.docs/instructions.append.md +++ b/exercises/practice/sublist/.docs/instructions.append.md @@ -1,6 +1,6 @@ # Instructions append -## Reserved Memory +## Track specific instructions The buffer for the input lists uses bytes 64-319 of linear memory. The lists are byte arrays directly concatenated in linear memory. diff --git a/exercises/practice/tournament/.docs/instructions.append.md b/exercises/practice/tournament/.docs/instructions.append.md index a7bea0e..0cc258a 100644 --- a/exercises/practice/tournament/.docs/instructions.append.md +++ b/exercises/practice/tournament/.docs/instructions.append.md @@ -1,11 +1,13 @@ # Instructions append -## Reserved Memory +## Track specific instructions + +### Reserved Memory Bytes 64-447 of the linear memory are reserved for the input string. The input string can be modified in place if desired. -## Input format +### Input format Each line will contain the name of the first team, then a semicolon `;`, then the name of the second team, another semicolon `;`, the outcome of the match (`"win"`, `"draw"`, `"loss"`) and then a line break `\n`. diff --git a/exercises/practice/twelve-days/.docs/instructions.append.md b/exercises/practice/twelve-days/.docs/instructions.append.md index 6b0fac4..a0f0553 100644 --- a/exercises/practice/twelve-days/.docs/instructions.append.md +++ b/exercises/practice/twelve-days/.docs/instructions.append.md @@ -1,5 +1,5 @@ # Instruction append -## Implementation +## Track specific instructions Each verse should end with a newline `\n`, with no additional delimiter.