From ff9e177c01e1053d77239ca457a3682b544c1082 Mon Sep 17 00:00:00 2001 From: Patricia Aas Date: Mon, 4 Oct 2021 13:01:29 +0200 Subject: [PATCH] Reformat exercise --- .../small/131-functions-and-parameters.md | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/exercises/small/131-functions-and-parameters.md b/exercises/small/131-functions-and-parameters.md index 0c782a1..c997b60 100644 --- a/exercises/small/131-functions-and-parameters.md +++ b/exercises/small/131-functions-and-parameters.md @@ -6,11 +6,16 @@ The game board is defined in the `Board.cpp` file and the exported functions are ## Board.cpp/hpp -The structure of these files is as follows. The `cpp` file starts with including the `Board.hpp` file and all of its contents. Then we open a namespace and define how many rows and columns the board will have. We also create an enum that defines what each cell value means on the board itself. +The structure of these files is as follows. The `cpp` file starts with including the `Board.hpp` file and all of its +contents. Then we open a namespace and define how many rows and columns the board will have. We also create an enum that +defines what each cell value means on the board itself. -Then we have the actual board. A two dimensional array of integers. This will be the layout of the game board. We use integers and not the Cell enum we defined above so we can use the numbers directly, the `enum class` is strongly typed, you can see this when we check for values. +Then we have the actual board. A two dimensional array of integers. This will be the layout of the game board. We use +integers and not the Cell enum we defined above so we can use the numbers directly, the `enum class` is strongly typed, +you can see this when we check for values. -Below the board are the helper functions. Some of them are static (only visible within this file) and some are not, those that are not should have a similar function description in the `Board.hpp` file. For example: +Below the board are the helper functions. Some of them are static (only visible within this file) and some are not, +those that are not should have a similar function description in the `Board.hpp` file. For example: ```cpp // Board.hpp @@ -24,20 +29,31 @@ bool isWalkableForPacMan(GridPosition point) { ## Board Unit Tests -The game board is covered by unit tests. They are located in the `testBoard.cpp` file within the `test` directory. They don't check every single tile on the board but they do assume that the board shape is not changed significantly. If you change the board layout you might have to change some of the unit tests to match. +The game board is covered by unit tests. They are located in the `testBoard.cpp` file within the `test` directory. They +don't check every single tile on the board but they do assume that the board shape is not changed significantly. If you +change the board layout you might have to change some of the unit tests to match. -Unit tests are broken down into test cases, in this file it is focused on a test case per function. A `TEST_CASE` takes two arguments, a test name and a tag. The test name needs to be unique and for the tag we use the section of the game we are testing. Think of them like functions that are called when testing. +Unit tests are broken down into test cases, in this file it is focused on a test case per function. A `TEST_CASE` takes +two arguments, a test name and a tag. The test name needs to be unique and for the tag we use the section of the game we +are testing. Think of them like functions that are called when testing. ## Exercise Lets add a simple helper function. -You might notice that `isWalkableForPacMan` and `isWalkableForGhost` both call `cellAtPosition` with a `GridPosition` variable and check if it is a wall. +You might notice that `isWalkableForPacMan` and `isWalkableForGhost` both call `cellAtPosition` with a `GridPosition` +variable and check if it is a wall. -1. Create a function called `isWall` below `cellAtPosition` that returns true if the `GridPosition` variable sent in is a wall. Remember to also create the same function signature in the `Board.hpp` file so this helper function can be used elsewhere in the project if needed. +1. Create a function called `isWall` below `cellAtPosition` that returns true if the `GridPosition` variable sent in is + a wall. Remember to also create the same function signature in the `Board.hpp` file so this helper function can be + used elsewhere in the project if needed. 2. Replace the checks within `isWalkableForPacMan` and `isWalkableForGhost` with your new function. -3. Add a new unit test `TEST_CASE` for your function. Since you already added `isWall` to the `Board.hpp` file it should be accessible within the `testBoard.cpp` file. Check for a couple of cases, similarly to the `isWalkableForPacMan` test. Remember since the unit tests are not inside of the `pacman` namespace, we need to append `pacman::` to the function calls. +3. Add a new unit test `TEST_CASE` for your function. Since you already added `isWall` to the `Board.hpp` file it should + be accessible within the `testBoard.cpp` file. Check for a couple of cases, similarly to the `isWalkableForPacMan` + test. Remember since the unit tests are not inside of the `pacman` namespace, we need to append `pacman::` to the + function calls. -4. Compile the project and run the unit tests. They should all be passing and if they are not then check which unit test is failing and figure out what was causing the issue. If all goes well you can run the game. \ No newline at end of file +4. Compile the project and run the unit tests. They should all be passing and if they are not then check which unit test + is failing and figure out what was causing the issue. If all goes well you can run the game. \ No newline at end of file