*Don't forget to use Git to save your projects!*

In your Ruby days to come, you'll inevitably run into times when you'll be working with CSV files and imperfect data. Seriously... there is no such thing as a perfect dataset. Any time you find what looks like the perfect batch of data on something interesting, whether you're trying to plot airline flight delays on a map, tease out the nuggets from a master list of nonprofits, or scrape 10,000 emails to mercilessly SPAM with your latest get-rich-quick scheme, it will be full of mistakes, omissions, and misspellings. Working with and cleaning up data go hand in hand.

- This tutorial from Jumpstart Lab walks you through just that sort of operation. Give it a shot.

*Send us your solution so we can show others! Submit a link to the Github repo with your files in it here using any of the methods listed on the contributing page. Please include your partner's github handle somewhere in the description if they would like attribution.*

- Add your solution below this line!
- ToTenMilan's solution
- Austin Norman's solution
- Nicolas Amaya's solution
- John Phelps's Solution
- Raiko's Solution
- Jib's Solution
- Stefan P's solution
- Jamie's solution
- Donald's solution
- Marina Sergeyeva's solution
- TomTom's solution
- Tommy Noe's solution
- Michael Alexander's solution
- Sahil Agarwal's solution
- Adrian Badarau's solution
- James MacIvor's solution
- Roman's solution
- Aleksandar's solution
- Vidul's solution
- Artur Janik's solution
- John Quarles' solution
- Kate McFaul's solution
- Dominik Stodolny's solution
- Lara Finnegan's solution
- Nikola Čvorović's solution
- hiendinhngoc's solution
- Kevin Mulhern's solution
- Chris Dziewa's solution
- Eduardo Frias' solution
- Jeremy Mauzy's solution
- Chris Hall's solution
- AtActionPark's solution
- Matias Pan's solution
- Mark Viola's solution
- Joe Balsamo's solution
- Alex Chen's solution
- Cody Gipson's solution
- Dan Hoying's solution
- John Tobillo's solution
- PiotrAleksander's solution
- Noah Prescott's solution
- lynchd2's solution
- Panashe Fundira's solution
- Ashley Lewis's solution
- Alex Tsiras' solution
- Scott Bobbitt's solution
- Giorgos Mitsis's solution
- Andrew Park's solution
- srashidi's solution
- cdouglass's solution
- Skye Free's solution
- djhart's solution
- Ricardo Villegas' solution
- Luke Walker's solution
- Miguel Herrera's solution
- Bartlomiej Lazarski's solution
- Max Gallant's solution
- noobling's solution
- DV's solution
- John's solution (complete)
- Fabricio Carrara's solution
- Shala Qweghen's solution
- Earth35's solution
- Austin Mason's solution
- Alejandro Corredor's solution
- Lani Huang's solution
- John Connor's solution
- Francisco Carlos's solution
- Jean Merlet's solution
- Amrr Bakry's solution
- Sasho's solution
- Oscar Y.'s solution
- Peuchen's solution
- Jiazhi Guo's solution
- Anthony Vumbaca's solution
- Clint's solution
- Derek K's solution
- Leonard Soai-Van's solution
- Dom Goj's solution
- David Chapman''s solution
- Hassan's solution
- Jerry Gao's solution
- Cody Buffaloe's solution
- Dominik Chomicki's solution
- Jakub Peikert's solution
- Bishal Shrestha's solution
- Sophia Wu's solution
- Samuel Langenfeld's solution
- Joe Himes's solution
- Kyle Thomson's solution
- Braydon Pacheco's solution
- Simon's Solution
- HenrytheDJ's Solution (complete)
- smilesr's solution
- nmac's solution
- Robert Szabo's solution
- Zach Beaird's solution
- jeff1st's solution

Files are a great way to save and reload a game, so we'll give it a shot here.

You will be building a simple command line Hangman game where one player plays against the computer, but a bit more advanced. If you're unfamiliar with how Hangman works, see Wikipedia.

- Download the
`5desk.txt`

dictionary file from http://scrapmaker.com/. - When a new game is started, your script should load in the dictionary and randomly select a word between 5 and 12 characters long for the secret word.
- You don't need to draw an actual stick figure (though you can if you want to!), but do display some sort of count so the player knows how many more incorrect guesses she has before the game ends. You should also display which correct letters have already been chosen (and their position in the word, e.g.
`_ r o g r a _ _ i n g`

) and which incorrect letters have already been chosen. - Every turn, allow the player to make a guess of a letter. It should be case insensitive. Update the display to reflect whether the letter was correct or incorrect. If out of guesses, the player should lose.
- Now implement the functionality where, at the start of any turn, instead of making a guess the player should also have the option to save the game. Remember what you learned about serializing objects... you can serialize your game class too!
- When the program first loads, add in an option that allows you to open one of your saved games, which should jump you exactly back to where you were when you saved. Play on!

*Send us your solution so we can show others! Submit a link to the Github repo with your files in it here using any of the methods listed on the contributing page. Please include your partner's github handle somewhere in the description if they would like attribution.*

- Add your solution below this line!
- yilmazgunalp's solution
- Austin Norman's solution (with hd ascii graphics)
- ToTenMilan's solution
- Ayushka's solution
- Nicolas Amaya's solution
- John Phelps's Solution
- Raiko's Solution
- Charles's Solution
- Jib's Solution
- Afshinator's solution | View in browser
- Jamie's solution
- Chris's solution
- Jayrobin's solution
- Donald's solution
- Alan Russell's solution
- Marina Sergeyeva's solution
- TomTom's solution
- Peter's solution (with AI)
- Tommy Noe's solution
- Michael Alexander's solution
- Sahil Agarwal's solution
- Adrian Badarau's solution
- Erithair's solution
- James MacIvor's solution
- Hawkeye's solution
- Vincent's solution
- Aleksandar's solution
- Vidul's solution
- John Quarles' solution
- Artur Janik's solution
- Kate McFaul's solution
- Dominik Stodolny's solution
- Lara Finnegan's solution
- Nikola Čvorović's solution
- Dawn Pattison's solution
- Kevin Mulhern's solution
- Rafael E's solution
- LongPotato's solution
- Tomislav Mikulin's solution
- Eduardo Frias' solution
- Jeremy Mauzy's solution
- Frank Peelen's solution
- Brann James' solution
- Chris Hall's solution
- Greg Park's solution
- ll14m4n's solution
- AtActionPark's solution
- Matias Pan's solution
- Jon Yorg's solution
- Mark Viola's solution
- Alex Chen's solution
- Joe Balsamo's solution
- Cody Gipson's solution
- Dan Hoying's solution
- hiendinhngoc's solution
- Raycotek's solution
- John Tobillo's solution
- PiotrAleksander's solution
- Noah Prescott's solution
- Florian Mainguy's solution
- lynchd2's solution
- Aviv Levinsky's solution
- Ashley Lewis's solution
- Alex Tsiras' solution
- Scott Bobbitt's solution
- Sander Schepens's solution
- Giorgos Mitsis's solution
- Andrew Park's solution
- poctek's solution
- Panashe Fundira's solution
- srashidi's solution
- James Brooks's solution
- cdouglass's solution
- Skye Free's solution
- djhart's solution
- Eric's solution
- Ricardo Villegas' solution
- Oleh Zinisk'd solution
- Luke Walker's solution
- Miguel Herrera's solution
- Tomasz Kula's solution
- Max Gallant's solution
- noobling's soltion
- Barltomiej Lazarski's solution
- Diarmuid Murphy's solution
- Benjamin Contant's
- John's Solution
- Fabricio Carrara's solution (with sweet ASCII)
- DV's solution
- Deepak' solution
- Shala Qweghen's solution
- Earth35's solution
- Austin Mason's solution
- Cyprium (Stefan)'s solution
- Alejandro Corredor's solution
- Lani Huang's solution
- John Connor's solution
- Francisco Carlos's solution
- Jean Merlet's solution
- Sasho's solution
- Amrr Bakry's solution
- Oscar Y.'s solution
- Peuchen's solution
- Jiazhi Guo's solution
- J-kaizen's solution
- cs-rail's solution
- Loris Aranda's solution
- Anthony Vumbaca's solution
- Clint's solution
- Ryan Armstrong's solution
- Derek K's solution
- m-chrzan's solution
- Dom Goj's solution
- David Chapman's solution
- Hassan's solution
- Jerry Gao's solution
- Dominik Chomicki's solution
- Jakub Peikert's solution
- Sophia Wu's solution
- Samuel Langenfeld's solution
- Kyle Thomson's solution
- Braydon Pacheco's solution
- Simon's Solution
- Bishal's Solution
- Cody Buffaloe's Solution
- nmac's solution
- Robert Szabo's solution
- smilesr's solution
- HenrytheDJ's Wild West solution
- Zach Beaird's solution
- jeff1st's solution

*This section contains helpful links to other content. It isn't required, so consider it supplemental for if you need to dive deeper into something*

- Found something helpful? Add it here!

From the creators of The Odin Project...

The Viking Code School