From 827d0c0c1ce99ad99d9a3184e4a4f199cd799fec Mon Sep 17 00:00:00 2001 From: dorritoexe <112140821+dorritoexe@users.noreply.github.com> Date: Thu, 31 Oct 2024 22:22:17 -0700 Subject: [PATCH] Update project5.md --- _projects/project5.md | 155 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 137 insertions(+), 18 deletions(-) diff --git a/_projects/project5.md b/_projects/project5.md index 08525fb..9f945e7 100644 --- a/_projects/project5.md +++ b/_projects/project5.md @@ -1,7 +1,7 @@ --- title: Project 5 description: Pyturis -due: "11:59 PM PST on Thursday, ???" +due: "11:59 PM PST on Wednesday, 11/13" submission_files: - project folder or individual files --- @@ -20,9 +20,9 @@ submission_files: [II. Intoruction](#introduction) [III. Part 0: Set Up](#part-0-set-up) [IV. Part 1: Board](#part-1-board) -[V. Part 2: Pytromino](#) -[VI. Rubrics, Grading and Submission](#) -[VII. Appendix: Pyturis Game Rules](#) +[V. Part 2: Pytromino](#part-2-the-pytromino) +[VI. Rubrics, Grading and Submission](#rubrics-grading-and-submission) +[VII. Appendix: Pyturis Game Rules](#appendix-pyturis-game-rules) ## Submission Guidelines @@ -100,7 +100,7 @@ Nice work! Now you’re ready to start coding. In Pyturis, the board is stored as a 1D list in row-major order. Row-major order stores values in the same row of a matrix consecutively and concatenates rows into a single list starting from the top. -![Board Setup](/fa24/assets/images/p5/P6-Part1Board.png) +![Board Setup](/fa24/assets/images/p5/P5-Part1Board.png) The relationship between the coordinates of an item in the board — notated as (x, y) — and the index of the corresponding item in the row-major order list is represented by the following equation, and illustrated in the above image. @@ -150,7 +150,7 @@ python3 grader.py Board In Pyturis, pytrominoes are the name for the pieces that fall from the top of the board. Each pytromino is represented as a single shape made of four blocks. In addition to absolute coordinates that represent where the pytromino is on the board, each block in the pytromino has a relative coordinate, to indicate its position within the pytromino. The relative coordinates are calculated according to where the block is relative to the center of rotation for that pytromino. -![Pytromino Setup](/fa24/assets/images/p5/P6-Part2Pytromino.png) +![Pytromino Setup](/fa24/assets/images/p5/P5-Part2Pytromino.png) ### Attributes The Pytromino class is located in the models.py file. As with the Board class, there is already a constructor method provided, which contains a few useful attributes: @@ -197,15 +197,134 @@ python3 grader.py Pytromino ### Running the GUI -| Block | Points | Function Type | Inputs | Outputs -| -------- | ------- | ------- | ------- | ------- | -| letter _ | 1 | Predicate | string | boolean -| _ has letter _ | 1 | Predicate | strings | boolean -| uppercase word _ | 2 | Reporter | string | string -| lowercase word _ | 2 | Reporter | string | string -| _ has only these letters _ | 5 | Predicate | strings | boolean -| _ is a pangram using all letters _ | 6.5 | Predicate | strings | boolean -| complete solution to puzzle _ using words _ | 7.5 | Reporter | list and string | string - -## Feedback Form -Congratulations on finish your first project in CS10🥳. Please spend some time completing this [feedback form](https://forms.gle/R7bYuwgrPRHtd3ca6). This will be worth 1 point of your project grade. Thank you! +Once you’ve finished all parts, you’re done! Nice work! You can now play the game of Pyturis you’ve coded, by running the following command inside the project directory: +For Windows: + +``` +py __main__.py +``` + +For Mac: +``` +python3 __main__.py +``` + +## Rubrics, Grading and Submission + +This rubric gives an overview of the points that passing tests in the PrairieLearn autograder is worth, relative to each function you have to fill out. This project is autograded, not manually graded, so what you see on PL when the autograder stops running is what your score is. +
Rubrics | +|
---|---|
Part 1: The Board (15) | +|
get_board_item(board, x, y) | +5 | +
set_board_item(board, x, y, item) | +5 | +
valid_coordinate(board, coordinate) | +5 | +
get_row(board, y)) | +5 | +
check_row_full(board, y) | +5 | +
Part 2: The Pytromino (15) | +|
rotate_block_90_cw(pytromino, pos) | +5 | +
filter_blocks_pos(pytromino, fn) | +5 | +
shift_down_fn(pos, steps) | +5 | +
shift_left_fn(pos, steps) | +5 | +
validated_apply_non_rot(self, fn, validator) | +5 | +