Skip to content

Commit

Permalink
Sync with recent probspec changes (#206)
Browse files Browse the repository at this point in the history
  • Loading branch information
glennj committed Apr 10, 2024
1 parent fbbf470 commit 0731228
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 36 deletions.
11 changes: 6 additions & 5 deletions exercises/practice/dnd-character/.docs/instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
For a game of [Dungeons & Dragons][dnd], each player starts by generating a character they can play with.
This character has, among other things, six abilities; strength, dexterity, constitution, intelligence, wisdom and charisma.
These six abilities have scores that are determined randomly.
You do this by rolling four 6-sided dice and record the sum of the largest three dice.
You do this by rolling four 6-sided dice and recording the sum of the largest three dice.
You do this six times, once for each ability.

Your character's initial hitpoints are 10 + your character's constitution modifier.
You find your character's constitution modifier by subtracting 10 from your character's constitution, divide by 2 and round down.

Write a random character generator that follows the rules above.
Write a random character generator that follows the above rules.

For example, the six throws of four dice may look like:

Expand All @@ -22,10 +22,11 @@ For example, the six throws of four dice may look like:

Because constitution is 3, the constitution modifier is -4 and the hitpoints are 6.

## Notes

~~~~exercism/note
Most programming languages feature (pseudo-)random generators, but few programming languages are designed to roll dice.
One such language is [Troll][troll].
[dnd]: https://en.wikipedia.org/wiki/Dungeons_%26_Dragons
[troll]: https://di.ku.dk/Ansatte/?pure=da%2Fpublications%2Ftroll-a-language-for-specifying-dicerolls(84a45ff0-068b-11df-825d-000ea68e967b)%2Fexport.html
~~~~

[dnd]: https://en.wikipedia.org/wiki/Dungeons_%26_Dragons
10 changes: 10 additions & 0 deletions exercises/practice/dnd-character/.docs/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Introduction

After weeks of anticipation, you and your friends get together for your very first game of [Dungeons & Dragons][dnd] (D&D).
Since this is the first session of the game, each player has to generate a character to play with.
The character's abilities are determined by rolling 6-sided dice, but where _are_ the dice?
With a shock, you realize that your friends are waiting for _you_ to produce the dice; after all it was your idea to play D&D!
Panicking, you realize you forgot to bring the dice, which would mean no D&D game.
As you have some basic coding skills, you quickly come up with a solution: you'll write a program to simulate dice rolls.

[dnd]: https://en.wikipedia.org/wiki/Dungeons_%26_Dragons
3 changes: 3 additions & 0 deletions exercises/practice/roman-numerals/.meta/tests.toml
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,8 @@ description = "3000 is MMM"
[3bc4b41c-c2e6-49d9-9142-420691504336]
description = "3001 is MMMI"

[2f89cad7-73f6-4d1b-857b-0ef531f68b7e]
description = "3888 is MMMDCCCLXXXVIII"

[4e18e96b-5fbb-43df-a91b-9cb511fe0856]
description = "3999 is MMMCMXCIX"
7 changes: 7 additions & 0 deletions exercises/practice/roman-numerals/roman-numerals-test.arr
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,12 @@ fun MMMI():
end
end

fun MMMDCCCLXXXVIII():
check "3888 is MMMDCCCLXXXVIII":
to-roman(3888) is "MMMDCCCLXXXVIII"
end
end

fun MMMCMXCIX():
check "3999 is MMMCMXCIX":
to-roman(3999) is "MMMCMXCIX"
Expand Down Expand Up @@ -199,5 +205,6 @@ data TestRun: test(run, active) end
test(MDCLXVI, false),
test(MMM, false),
test(MMMI, false),
test(MMMDCCCLXXXVIII, false),
test(MMMCMXCIX, false)
].each(lam(t): when t.active: t.run() end end)
47 changes: 16 additions & 31 deletions exercises/practice/scrabble-score/.docs/instructions.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,25 @@
# Instructions

Given a word, compute the Scrabble score for that word.
Your task is to compute a word's Scrabble score by summing the values of its letters.

## Letter Values
The letters are valued as follows:

You'll need these:
| Letter | Value |
| ---------------------------- | ----- |
| A, E, I, O, U, L, N, R, S, T | 1 |
| D, G | 2 |
| B, C, M, P | 3 |
| F, H, V, W, Y | 4 |
| K | 5 |
| J, X | 8 |
| Q, Z | 10 |

```text
Letter Value
A, E, I, O, U, L, N, R, S, T 1
D, G 2
B, C, M, P 3
F, H, V, W, Y 4
K 5
J, X 8
Q, Z 10
```

## Examples

"cabbage" should be scored as worth 14 points:
For example, the word "cabbage" is worth 14 points:

- 3 points for C
- 1 point for A, twice
- 3 points for B, twice
- 1 point for A
- 3 points for B
- 3 points for B
- 1 point for A
- 2 points for G
- 1 point for E

And to total:

- `3 + 2*1 + 2*3 + 2 + 1`
- = `3 + 2 + 6 + 3`
- = `5 + 9`
- = 14

## Extensions

- You can play a double or a triple letter.
- You can play a double or a triple word.
7 changes: 7 additions & 0 deletions exercises/practice/scrabble-score/.docs/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Introduction

[Scrabble][wikipedia] is a word game where players place letter tiles on a board to form words.
Each letter has a value.
A word's score is the sum of its letters' values.

[wikipedia]: https://en.wikipedia.org/wiki/Scrabble

0 comments on commit 0731228

Please sign in to comment.