From fbdca5ee14326f86dcf7f6e3bdf03f1d1822f0af Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Thu, 24 Aug 2023 21:02:16 -0400 Subject: [PATCH] copying python labs --- python/lab2.md | 155 ++++++++++++++++++++++++++++++++++++++++++++++++ python/lab_1.md | 28 +++++++++ python/lab_3.md | 58 ++++++++++++++++++ 3 files changed, 241 insertions(+) create mode 100644 python/lab2.md create mode 100644 python/lab_1.md create mode 100644 python/lab_3.md diff --git a/python/lab2.md b/python/lab2.md new file mode 100644 index 0000000..8f6cdf5 --- /dev/null +++ b/python/lab2.md @@ -0,0 +1,155 @@ +# Landscaper + +![studio ghibli landscape](https://peakmemory.files.wordpress.com/2014/06/cliufqx.jpg) + +You'll be creating a simple, terminal game to send messages and receive input from the user. + +#### Learning Objectives + +- Putting everything you've learned so far together (arrays, loops, conditionals) + +#### Prerequisites + +- JavaScript (arrays, loops, conditionals) + +--- + +## Getting Started + +1. Inside of the student_labs directory there is already an `app.js` set up and ready to go! + +## Landscaper + +1. You are starting a landscaping business, but all you have are your teeth. +1. Using just your teeth, you can spend the day cutting lawns and make $1. You can do this as much as you want. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can use teeth to cut grass" +
+ +1. At any point, if you are currently using your teeth, you can buy a pair of rusty scissors for $5. You can do this once, assuming you have enough money. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can buy scissors" +
+ +1. Using the rusty scissors, you can spend the day cutting lawns and make $5. You can do this as much as you want. + +
+ 🔴 Commit:
+ "Landscaper App: user can use scissors to cut grass" +
+ +1. At any point, if you are currently using rusty scissors, you can buy an old-timey push lawnmower for $25. You can do this once, assuming you have enough money. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can buy push lawnmower" +
+ +1. Using the old-timey push lawnmower, you can spend the day cutting lawns and make $50. You can do this as much as you want. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can use push lawnmower to cut grass" +
+ +1. At any point, if you are currently using the old-timey push lawnmower, you can buy a fancy battery-powered lawnmower for $250. You can do this once, assuming you have enough money. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can buy battery-powered lawnmower" +
+ +1. Using the the fancy battery-powered lawnmower, you can spend the day cutting lawns and make $100. You can do this as much as you want. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can use battery-powered lawnmower to cut grass" +
+ +1. At any point, if you are currently using the fancy battery-powered lawnmower, you can hire a team of starving students for $500. You can do this once, assuming you have enough money. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can hire a team" +
+ +1. Using the the team of starving students, you can spend the day cutting lawns and make $250. You can do this as much as you want. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: user can use a team to cut grass" +
+ +1. You win the game when you have a team of starving students and $1000. In this situation, send a message to the user telling them, they've won. + +
+ 🔴 Commit your work!
+ Your commit message should read something like:
+ "landscaper: win scenario" +
+ +## Technical Requirements +1. Your landscaper game *must* run on with no syntax errors +1. If there are errors you can't solve, comment them out and leave a comment above it explaining what is wrong + +## Hungry for More? + +1. Add the ability to reset the game at any point so that you can play again +1. Make it so that a user can have multiple tools, and money earned each day is increased appropriately (e.g. 2 scissors, and an old-timey push lawnmower means you earn $60/day ) +1. Once you've implemented multiple tools, make it so you can sell tools for half price + +#### Super duper hungry more?: Landscaper Inspiration + +1. Make your terminal game playable via the DOM! + +1. Some of our students went above and beyond doing exactly that! See below for some examples: + +
Student One + +![first screen](https://i.imgur.com/BABhJ5O.png) + +![buying tools](https://i.imgur.com/ocxAvt9.png) + +![end](https://i.imgur.com/HY2jU8g.png) +
+ +
Student Two + +![first screen](https://i.imgur.com/ekQLWtZ.png) + +![options](https://i.imgur.com/txAHwK0.png) + +![more options](https://i.imgur.com/o8Dc5tF.png) + +![buying tools](https://i.imgur.com/2olGG6o.png) + +![more options](https://i.imgur.com/YHLD4Sd.png) + +![end](https://i.imgur.com/N9f7BkA.png) +
+ + +
Student Three + +![](https://i.imgur.com/ClNabWU.jpg) + +![](https://i.imgur.com/6xPwych.jpg) + +![](https://i.imgur.com/gZpgduf.jpg) +
+ +--- + +*Copyright 2018, General Assembly Space. Licensed under [CC-BY-NC-SA, 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)* \ No newline at end of file diff --git a/python/lab_1.md b/python/lab_1.md new file mode 100644 index 0000000..db14917 --- /dev/null +++ b/python/lab_1.md @@ -0,0 +1,28 @@ + +# Hangman + +#### This lab is NOT a DELIVERABLE + +![Hangman](https://i.imgur.com/zRNsbyV.jpg) + +#### Prompt +> Build an program that runs in the terminal and allows a user to play hangman using a word randomly selected from a list of words you create. + +## Getting Started + +1. Create a file called `hangman.py`. This is where you'll write your hangman program. + +1. To run your program, type `python3 hangman.py`. + + +## Requirements +- The computer should randomly select a word from a list of words you create. +- The user should be prompted with the length of the word they are trying to guess. +- The user should have a limited number of guesses. If they don't guess the word correctly within the allotted number of guesses, the program should supply a lose statement. +- The program should prompt the user with how many guesses they have left after each guess they make. +- User should be able to see what letters they have guessed correctly and what letters they have guessed incorrectly. +- If the user guesses all of the letters in the word, they should be shown a win statement. + +## Hungry For More? +- When the user wins or loses, ask them if they'd like to play again. +- Consider the edge cases. What could a user do that could potentially break the program? diff --git a/python/lab_3.md b/python/lab_3.md new file mode 100644 index 0000000..2931fb4 --- /dev/null +++ b/python/lab_3.md @@ -0,0 +1,58 @@ +# Castle Battle! + +## Summary + +We're making a turn-based strategy game. Two sides take turns battling each other + +### Player + +- This is a two Player game (one human and one computer) +- Each Player has a Barracks (see below) +- Each Player starts with 10 hit points + +### Barracks + +- A Barracks can store Peons (see below) + +### Peon + +- A Peon has a name +- A Peon has a job, one of the following: + - nothing (this is the initial value upon creating a peon) + - repair + - attack + +--- + +## Flow of game: + +1. At the start of player's turn, ask what the user wants to do (one of the following) + - Create a peon + 1. If chosen, ask what the peon's name should be + 1. Add a peon with the correct name to the player's barracks. Set its job to 'nothing' + - Select a peon + 1. If chosen, ask which peon they want to select + 1. Once a peon is chosen, ask what action the peon should perform + - attack + - If chosen, set the peon's job to attack + - repair + - If chosen, set the peon's job to repair +1. Once this is complete, loop through the peons in the player's barracks + - If a peon's job is to repair, increase the user's hit points by one + - If a peon's job is to attack, decrease the computer's hit points by one +1. Once this is complete, start the computer's turn + - Choose a random number of hit points from 1-5 + - The computer either repairs itself for that number of hit points or damages you for that number of hit points +1. Evaluate the state of the game: + - If the computer has 0 or fewer hit points, you win + - If you have 0 or fewer hit points, the computer wins + - If you both have 0 or fewer hit points, it's a tie + - If you both have more than 0 hit points, start player's turn over again (step 1) + +## Hungry for more? + +1. Make it so that the computer doesn't randomly attack you/repair itself directly. Instead, it will act like a player and either create a peon or, if a peon already exists, select a random peon and tell it to either attack or repair +1. Make the 2nd player optionally be either the computer (random decisions) or another human +1. Repairs increase your hit points by a random number between 1-3 +1. Attacks decrease the enemy's hit points by a random number between 1-3 +1. Create additional combatants (CPU or human) that can attack other combatants/repair themselves \ No newline at end of file