Git Product home page Git Product logo

random-menu's Introduction

Random Menu Generator

At a Glance

  • Create a program that runs from the Terminal that will create a random menu based on several items that you determine
  • Individual, stage 1 project
  • Due before class, August 7th

Learning Goals

  • Reinforce creating, using, and manipulating strings
  • Reinforce creating and using arrays

Introduction

Create a random menu generator in a file named random-menu.rb that can be run from the Terminal using the command $ ruby random-menu.rb

Your generator should pull one item from each array you made in the baseline requirements to create a "menu item".

When the program runs, it should create and show a list of ten numbered menu items.

1. hot pan-fried dumplings
2. soft steamed clams
3. ...
...
10. creamy taco cake

Before We Start: Review Workflow

Before we get started writing code, let's take one minute to review where to write the code.

Take a minute to think about the following questions:

  1. How many files will we be writing in today?
  2. What are the names of those files?
  3. What are the file extensions of those files?
  4. What is the name of the ideal directory that these files live in? Why?
  5. Does that directory already exist on my machine? Where should it exist, relative to my home (~) directory?
  6. What does the path look like to this directory?

Also take the time to reflect:

In Terminal, what commands do I run to:

  1. check what directory I am in?
  2. create a new directory relative to where I am?
  3. change directory?
  4. list the files in this directory?
  5. create a new file in this directory?

Once you are in a good project directory, you can open the directory in the text editor Atom with the command atom .. Opening this directory in Atom will give you the ability to easily access all files and folders in this directory in one Atom window.

Baseline

In the file random-menu.rb, in your code, create three arrays of ten items each. These three arrays/lists will be a different type of food or descriptor for that food.

For example, the first array can contain adjectives, the second can be cooking styles, and the third can be foods.

By selecting a random item from each of the three arrays, it can create a full description of a randomized food. It could create a few items like:

  • hot pan-fried dumplings
  • soft steamed clams
  • ... etc.

Test & Verify

Before you submit your work, it's important to test your program and ensure it's working properly. Later we will teach you nifty ways to automate this testing, but for now we'll do things the old fashioned way.

Make sure you run your program and ensure it's working. While running it, "test" the code with different inputs. Does the actual output match the expected output?

Ask the question "does the actual output match the expected output?" for each of the following points:

  • The menu items are selected randomly.
  • There are 10 menu items.
  • Each item should pull one word from each of the 3 arrays.
  • The items are numbers 1-10 (not starting at zero).
  • Run the program a few times and ensure that the last word in the arrays are used. Also ensure that the first word in the arrays are used at least occasionally.

Optional Enhancements

  • Expand your solution to ensure that no descriptive term in a menu item is ever repeated. So if the first menu item is hot pan-fried dumplings, the the phrases hot, pan-friend and dumpling cannot individually be used in any other menu items.
  • Expand your solution to allow the user to determine how many items they'd like to see via user input. Note: You will need to ensure that this user-chosen number of items is not larger than the number of items you have in your arrays.
  • Instead of using hardcoded or predefined arrays, make your program accept user input. This user input will be utilized to generate the menu items. You'll need to prompt for and store a varying number of entries for each food-type array.

random-menu's People

Contributors

cheezitman avatar kariabancroft avatar hamled avatar tildeee avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.