Advanced Bash - Assignment 2
Created Friday 23 February 2018
This assignment will give you some practice with both "bash scripting" and dealing with translating ideas to code. Remember your basics: be sure to "chmod +x" your file before trying to run it, also be sure to save multiple versions of your code, especially as you move from one phase to the next.
And now: Probably the shortest set of instructions for an assignment I can give:
Implement Mad Libs.
(if you're perhaps unfamiliar — https://en.wikipedia.org/wiki/Mad_Libs )
The story is up to you, and this will be a bit of a "rolling" assignment. You should *certainly* be able to do phase 1 right now, probably phase 2 as well. The rest may require a bit more from me next week. Either way I'd like to see how far everyone gets regardless; please feel free to ask questions and to give me feedback generally. I will perhaps add more information as time goes on, but I think the hints should get us where we need to go. The only time you'll need to turn in the whole thing is when you've completed all 5 phases, which will not be at least until Spring Break begins.
I've deliberately worded these a bit vaguely, in order to let you try to think about how to accomplish each task. I've provided "further hints," but for each phase, brainstorm a bit on how you might do it — and please let me know if you come up with something different or interesting; it's one of the best things that happens in this course.
Phase 1:
The user will be prompted for a series of words identified by parts of speech (at least 4). Upon completion, the script will print back the story to the screen. The story is up to you!
Phase 2:
These may just end up being masterpieces. So, maybe we'd like to save them; for this we'll need unique names. Before we get to the words, we will ask for a name. Upon completion we will BOTH print the story to the screen AND save the the story with the format $usernames-story.txt — i.e. my story would be saved as johnsstory.txt
Phase 3:
Because these things can get a little naughty, we're going to prevent underage users from using the program, using the same extremely accurate and defensive system used by gaming and porn websites across the world; we're just going to ask and assume they're not lying. So, before the user is prompted for nouns and verbs et. al., we're going to ask for their age; the program should only proceed if the user is 18 or older. (Feel free to keep a list of logins?)
Phase 4:
In which we remember that people are lazy. Revisit your phase 1 code, but let's forget the whole prompting thing. Instead, give your code the ability to generate randomly different stories (i.e. with different parts-of-speech words every time it's run). Obviously, you'll have to figure out a way to get random words, of the correct type, no less....
Phase 5:
Dominate the world with a bot-led army of A.I. storytellers. Specifically — Prompt the user for a number, and then generate and save that many stories, with attribution to random peoples names, e.g. janesstory.txt, joesstory.txt.
./verbs
./adverbs
./adjectives
./firstnames
./names
./nouns001
Backlinks: FSU Courses:LIS5364