Week 1 Studio: Choose your own adventure
Git Repository: https://classroom50.org/lis875/lis-875-f26/assignments/choose-your-own-adventure/accept
The goal of today’s studio is to write a story, that is printed out using python. But, because python is a programming langauge on a computer, the story doesn’t have to be the same every time. It can ask the reader for input, and then change the story based on what the reader says.
That is, your goal for today is to write your own interactive Choose your Own Adventure story. The emphasis here is that you want to tell a story. OR, multiple closely related stories really. You want the person reading your story to enjoy it and/or learn something.
And it should be interactive. Your goal is to implement this story as a python computer program. When you run the program, it should show the beginning of the story, ask the user to make a choice, and then continue the story from that choice. And so on. If I run the program again, it will start in the same place, but if I make different choices, the story should go in a different direction.
You must work in a small group on this project. Form a group of 2-4 people and work together on this project. You must work in a group, but who you work with is up to you.
That’s it. That’s the whole of the instructions – form a group, write a choose your own adventure story, and make it a python program. What the story is about is entirely up to you. How you program it is entirely up to you. How complicated or simple the story is is up to you. Have fun with it. Be creative.
What follows is just advice for doing it. You don’t have to follow my advice. Do whatever you want. This is just my experience in doing this, and you might want to do it differently.
Advice
Work together
You should work in small groups on this studio. Groups of 2-4 people. Work together to create the story and to write the code. But don’t divide up the work; that’s no fun. Everyone should work on all parts. If you need to come up with the next step of the story, then get the whole group together and brainstorm the story. If you need to implement a choice in python, then get the whole group together and work on it until it looks how you want it to. Have one person on the keyboard sharing their screen, and the rest looking over helping (navigating).
Choosing a story
If you are good at coming up with stories, then you don’t need this advice. If, like me, you aren’t awesome at it, then the easiest way to start is to start with an existing story and a set of character. For example, I’d probably start with the Avengers movies because I like them and they have LOTS of interesting stories.
Pick a story that you already know a lot about to start with, and begin there. It could be from a movie, a book, a game, a TV show, a fairy tale, or real life. It could be a true story, or it can be made up. But pick an existing story.
The easiest place to start is to tell that story. Then think about different places where people in the story could have made different choices, and things would have turned out differently. Those are great places to ask the user to make a choice. You’ll also have to write the alternative outcomes / stories.
Diagram
Once you’ve got an idea for a story, I’d recommend creating a diagram. Put major events in circles on a piece of paper, and then draw a line between them to signify order. Figure out what kinds of choices can be made, and add other outcomes as additional circles. It will really help to have a diagram that you can refer back to as you work on the programming.
Here is a very simple example of a diagram.
It is perfectly OK to use pen-and-paper. It is also OK to find a computer program to draw the diagram, and then share your screen as you do that. It is up to you what tools you want to use, and how you use them. I think you will find that using external tools (like pen-and-paper) is a very important part of computer programming.
Start simple, then expand
Don’t try to do everything at once. Start with as simple of a story as you can, and then build from there. For example, the first thing you should do is probably just have it print out a single story block, and then end. Get that working first. Then write your first choice – get the coding working for a single choice, that prints out something silly, but different based on the choice the user made. Once that works correctly when you run it, then you can replace the silly text with the actual story you want to be telling. And then you can add more choices. But don’t move on add anything new until everything you’ve already written works correctly.
This also means that you don’t need to have the whole story written before you start writing your program. Get the first bit of it written, then try to make it work as a computer program. Alternate between writing story and writing code. If you try to do it all at once, the its easy to get bogged down in unimportant details. By going back and forth between story writng and coding, you make sure that each activity works well with the other activity.
Follow pair programming
In the lab, you practiced pair programming, with two people using one computer. One person was the driver, controlling the keyboard and mouse, and the other person was the navigator, helping out and thinking. Do that again here. It really does help get things working easier, and also helps with storytelling.
Submit on Canvas
When you are done, please submit screenshots on the dropbox on Canvas. The screenshot should show your program successfully running. If you like, you can submit more than one screenshot, showing different paths through your story.
Also, for this week only, please submit your code file (the .py file) on Canvas.