Skip to content

Commit f2d7c6c

Browse files
Make Adagrams a solo project (Ada-C19#15)
Co-authored-by: Kyra Patton <[email protected]>
1 parent 20f2e36 commit f2d7c6c

File tree

4 files changed

+20
-58
lines changed

4 files changed

+20
-58
lines changed

README.md

Lines changed: 20 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,75 +6,55 @@
66
- Reading tests
77
- Using git to maintain code
88
- Manipulating and processing data in lists and strings
9-
- Practicing pair-programming techniques
109

1110
## Goal
1211

13-
An [anagram](https://en.wikipedia.org/wiki/Anagram) is a word or phrase formed by rearranging the letters of a different word or phrase. In this project you and your partner will be creating _Adagrams_, a game in which a player is given a random set of letters and must make an anagram using those letters. Each submitted word will score points.
12+
An [anagram](https://en.wikipedia.org/wiki/Anagram) is a word or phrase formed by rearranging the letters of a different word or phrase. In this project you will be creating _Adagrams_, a game in which a player is given a random set of letters and must make an anagram using those letters. Each submitted word will score points.
1413

1514
While working on _Adagrams_, it may help to think of a physical metaphor for this game, such as other common word games like _Scrabble_ or _Bananagrams_. These games all feature a _pool_ of letter _tiles_ that the player _draws_ from.
1615

1716
In this version of _Adagrams_, we will only be working with the English alphabet.
1817

1918
![an image of a pile of letter tiles](images/letter-tiles.jpeg)
2019

21-
## Pair Programming
22-
23-
Utilize good pair programming practices. Refer to this [medium article](https://medium.com/@weblab_tech/pair-programming-guide-a76ca43ff389), and the lesson in Learn titled Intro to Pair Programming from Approaching a Problem if you need a refresher for some best practices. Switch _driver_ and _navigator_ roles often. When there is uncertainty or confusion, step away from the keyboard and discuss, plan, and document on paper or whiteboard before continuing.
24-
2520
## One-Time Project Setup
2621

27-
Follow these directions once, a the beginning of your project:
28-
29-
*Only one member of the team should complete the following two steps steps:*
30-
31-
1. In Github, click on the "Fork" button in github and fork the repository to your Github account. This will make a copy of the project in your github account.
32-
33-
![Fork Button](images/fork.png)
34-
35-
2. In Github, add the other member(s) of your team as collaborators to the repository. Do this by a The student who forked the respository should first choosing **Settings** from the top menu bar, then **Manage access** from the left navigation, and finally **Invite teams or people**.
22+
Follow these directions once, at the beginning of your project:
3623

37-
You can find detailed instructions [here](https://help.github.com/articles/inviting-collaborators-to-a-personal-repository/).
3824

39-
![Settings](images/settings.png)
25+
1. Navigate to your projects folder named `projects`.
4026

41-
<img src="images/manage-access.png" alt="Manage access" width="250"/>
42-
43-
![Invite teams or people](images/invite.png)
44-
45-
The member(s) who are invite will need to accept the invitation either by accepting an email invitation or accepting the invitation in Github.
46-
47-
Both members of the team will be working from the same forked repository. Be sure to follow proper git protocol from the Intro to Git topic in Learn.
48-
49-
*Each member of the pair should complete the following steps:*
50-
51-
3. Navigate to your projects folder named `projects`
27+
If you followed Ada's recommended file system structure from the Intro to Dev Environment lesson in Learn, you can navigate to your projects folder with the following command:
5228

5329
```bash
5430
$ cd ~/Developer/projects
5531
```
5632

57-
4. "Clone" (download a copy of this project) into your projects folder. This command makes a new folder called `adagrams-py`, and then puts the project into this new folder. Make sure you are cloning from your copy of the project and not the class version (ada-cX).
33+
2. In Github click on the "Fork" button in github and fork the repository to your Github account. This will make a copy of the project in your github account.
34+
35+
![Fork Button](images/fork.png)
36+
37+
3. "Clone" (download a copy of this project) into your projects folder. This command makes a new folder called `adagrams-py`, and then puts the project into this new folder. Make sure you are cloning from your copy of the project and not the class version (ada-cX).
5838

5939
```bash
6040
$ git clone ...
6141
```
6242

6343
Use `ls` to confirm there's a new project folder
6444

65-
5. Move your location into this project folder
45+
4. Move your location into this project folder
6646

6747
```bash
6848
$ cd adagrams-py
6949
```
7050

71-
6. Create a virtual environment named `venv` for this project:
51+
5. Create a virtual environment named `venv` for this project:
7252

7353
```bash
7454
$ python3 -m venv venv
7555
```
7656

77-
7. Activate this environment:
57+
6. Activate this environment:
7858

7959
```bash
8060
$ source venv/bin/activate
@@ -85,20 +65,15 @@ Verify that you're in a python3 virtual environment by running:
8565
- `$ python --version` should output a Python 3 version
8666
- `$ pip --version` should output that it is working with Python 3
8767

88-
8. Install dependencies once at the beginning of this project with
68+
7. Install dependencies once at the beginning of this project with
8969

9070
```bash
9171
# Must be in activated virtual environment
9272
$ pip install -r requirements.txt
9373
```
9474

9575
Summary of one-time project setup:
96-
97-
One person:
9876
- [ ] Fork the project respository
99-
- [ ] Invite team members to the respository
100-
101-
All team members:
10277
- [ ] `cd` into your `projects` folder
10378
- [ ] Clone the project onto your machine
10479
- [ ] `cd` into the `adagrams-py` folder
@@ -121,7 +96,7 @@ $ source venv/bin/activate
12196
$ python main.py wave
12297
```
12398

124-
3. Use play-testing wth your partner to guide your development.
99+
3. Use play-testing to guide your development.
125100

126101
4. Use tests to verify your functions after thoroughly play-testing. See instructions for running tests in the section below. *A complete set of unit tests is provided for this project.*
127102

@@ -133,11 +108,9 @@ $ git add .
133108
$ git commit -m "meaningful message explaining your commit"
134109
```
135110

136-
6. Consider switching driver/navigator rolls. Make sure the current driver pushes using `git push` and the new driver pulls using `git pull`.
111+
6. Move on to the next wave!
137112

138-
7. Move on to the next wave!
139-
140-
8. When you are finished working for the day, deactivate your environment with deactivate or closing the Terminal tab/window
113+
7. When you are finished working for the day, deactivate your environment with deactivate or closing the Terminal tab/window
141114

142115
```bash
143116
$ deactivate
@@ -183,22 +156,15 @@ You will use play-testing and unit tests to drive your development.
183156

184157
At submission time, no matter where you are, submit the project via Learn.
185158

186-
In addition to submitting your Pull Request, submit a reflection the the pair programming reflection prompt.
187-
159+
This will let us give feedback on what you've finished so that you can be better prepared for the next project.
188160

189161
## Project Directions
190162

191-
### Setup a Pair Plan
192-
193-
First, come up with a "plan of action" for how you want to work as a pair. Discuss your learning style, how you prefer to receive feedback, and one team communication skill you want to improve with this experience.
194-
195-
We recommend spending at least a portion of the time pair programming and working collaboratively from the same machine. Zoom and screen sharing or [VSCode Live Share](https://code.visualstudio.com/learn/collaboration/live-share) are good tools to consider. Some teams will choose to pair program and work collaboratively from the same machine for the entire project. Some teams will choose to divide a portion of the work and combine their code using git.
196-
197163
### Get Familiar
198164

199-
Take time to read through the Wave 1 implementation requirements and the tests for wave 1. Write down your questions, and spend some time going through your understanding of the requirements and tests with your pair. Make sure you both can run `$ pytest` and see the tests fail.
165+
Take time to read through the Wave 1 implementation requirements and the tests for Wave 1. Write down your questions, and spend some time going through your understanding of the requirements and tests. Make sure you can run `$ pytest` and see the tests fail.
200166

201-
If, after you and your pair have taken some time to think through the problem and would like direction for how to dissect the problem, or if you need clarity on the terms/vocabulary we used in this project, you can check out [a small hint we've provided](./project_docs/hints.md).
167+
If, after you have taken some time to think through the problem and would like direction for how to dissect the problem, or if you need clarity on the terms/vocabulary we used in this project, you can check out [a small hint we've provided](./project_docs/hints.md).
202168

203169
### Wave 1: draw_letters
204170

@@ -233,7 +199,7 @@ Your first task is to build a hand of 10 letters for the user. To do so, impleme
233199
| L : 4 | Y : 2 |
234200
| M : 2 | Z : 1 |
235201

236-
**Note:** Making sure that the drawn letters match the rules of the letter pool can be straightforward or very difficult, depending on how you build the data structure for the letter pool. It is worth spending some time with your partner to think carefully about this.
202+
**Note:** Making sure that the drawn letters match the rules of the letter pool can be straightforward or very difficult, depending on how you build the data structure for the letter pool. It is worth spending some time to think carefully about this.
237203

238204

239205
### Wave 2: use_available_letters
@@ -287,7 +253,3 @@ Implement a function called `get_highest_word_score` in `game.py`. This method s
287253
- prefer the word with the fewest letters...
288254
- ...unless one word has 10 letters. If the top score is tied between multiple words and one is 10 letters long, choose the one with 10 letters over the one with fewer tiles
289255
- If the there are multiple words that are the same score and the same length, pick the first one in the supplied list
290-
291-
292-
293-

images/invite.png

-124 KB
Binary file not shown.

images/manage-access.png

-78.7 KB
Binary file not shown.

images/settings.png

-36.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)