Minecraft Assignment: Build a House

Your assignment:  program your robot turtle to build a house.

This assignment has two deadlines:  your program design is due January 31 and the final completed working program is due February 28.  There are specific requirements for each of these deadlines, described in detail on this page.

Program Design

Your plan or design for your program must be turned in, in the form of an email to Mr. James.  It must include three parts:

  1. A paragraph consisting of several sentences describing the house your program will build, including the dimensions of your house (height, width, depth)
  2. A list of each material, including the quantity, that your turtle will need in its inventory to build the house.
  3. Pseudocode describing the instructions and logic your program will use to build the house.  Pseudocode is taught in class and is a plain-English method of describing a program’s instructions.  Start it as you would an outline for a research paper, (“build north wall”, “build east wall”, etc.) and then fill in additional details specifying the steps your program will take to build each piece of your house.  Most important is that you have all of the important steps required to build the house, and in the order or sequence that will cause a turtle to successfully build your house.  On reading your pseudocode, it must be clear how your turtle is moving to build the walls (for example, row-by-row vs. column-by-column), and you must specify how many times each step or sequence of steps is to be repeated.  Every movement and turn of the turtle must be included in your pseudocode.  Here is a complete example of pseudocode for a program to build a wall, along with the matching program:

    In the above example pseudocode, indentation is used to denote the scope, or starting and ending points, of the repeat loop instructions and to group multiple instructions into a set that belongs together to achieve a specific goal.  Alternatively, you could use parentheses (), curly braces {}, or brackets [] to mark which instructions are to be repeated in each loop.  Remember the point of pseudocode is to communicate your design to a human:  it does not need to be working code for the computer.At the end of this example, where will your turtle be?  Way up in space at the top of your new wall.  Consider how you will need to move the turtle to position it to build the next wall of the house.

Use your school email account to send your design in an email to Mr. James.  Just write it out:  the description of your house, the materials list, and the pseudocode.  The pseudocode must have a bare minimum of three parts to it to describe how you will program your robot to build a plain wall, a wall with an object such as a door or window in it, and a roof.  Each of the these should list the specific movements and other actions (place/build) the turtle will need to complete.

To Exceed Expectations on this portion of the assignment you must have some additional features to your house beyond the minimum, for example stripes or a pitched roof.  You must also have detailed pseudocode including your repeat loops and what steps will repeat within them — it should probably be at least 20 – 30 lines long.

Completed Program

Your completed working program is due February 28.  You must submit the via email using your school email account to Mr. James:

  1. A picture of your completed house.  Take a picture in Minecraft by pressing the F2 key.  On the MacBooks, you must hold the Fn button in combination with the F2 key to activate it as a function key.  To open the picture, press T to open the chat prompt and click on the picture’s file name.  From there you can save it to a different location or copy/paste it into an email.  If you are having trouble finding the screenshot images, they are in the screenshots folder under /users/student/applications/minecraftedu/minecraft/screenshots which you can navigate to using Cmd-G from the Finder application.
  2. A list of the specific Minecraft materials, quantity for each material, and which slot each material must be placed into in the turtle’s inventory for your program to perform as designed.
  3. Your player name and the name of your completed program.  Simply state the name of your program as you have saved it within Minecraft.  Mr. James will log into Minecraft using your player profile to inspect and run the program.

Submissions on paper will not be accepted.

I have observed that many students struggle to compose an email for a class assignment.  Here is an example of a suitable submission.  If you use this as the basis for your email, please edit it to reflect your player name, program name, etc:

Resources:

Each student has their own building plot.  Visiting other students by invitation is OK, but you may not pick up, mine, or otherwise alter anything in another student’s plot.  Only turtles may build.

There is not a teleporter for every intersection of four building plots:  you may need to walk a “block” to your plot.

A supply depot has dispensers where you may obtain turtles, remotes, picks, and various materials for building your house.

Presentation and videos:

Building a wall in Minecraft

Direct links to YouTube videos for house building programs:

Plain Wall

Wall with a Door

Complete program includes discussion of running a program from another program, and a technique for switching inventory slots when you run out of blocks.  This has everything you need to write a program that meets expectations.

Yet another video, this one showing an alternate approach where the program builds the house as a 3d printer would:  layer by layer.  It initially builds the house all in one material and then removes openings for the door and window prior to placing them at the end.

Minimum requirements:
  1. Your house must be built in one run of your program.  The program must run from beginning to end without manual intervention or remote control of the turtle.
  2. Your house must have a minimum of four walls.
  3. Your house must have a minimum of one door and one window.  The window is made using glass blocks.
  4. Your house must have a roof.
  5. Your house must have a minimum total volume of 125 cubic blocks, including the walls and roof.  For example, either a 5x5x5 house or a 6x4x6 house would qualify.  Note, this is a change from the original requirement of at least 1,000 cubic blocks.
  6. The space within your four walls and roof must be fully enclosed.  No open or missing blocks.

If you are missing any of the above minimum requirements, expect your assignment to be graded as either I for Incomplete or P for Progressing.  All minimum requirements must be satisfied to achieve a M for Meets Expectations.

Working as a Group

The only provision for working as a group is that you may coordinate the design of your house such that it fits an overall theme, or can be built adjacent to others’ “houses” to form a larger structure.

Every student must write a program which satisfies the “build a house” requirements.

You may work with friends to make your houses look similar such that they form a consistent neighborhood.  Or you could coordinate efforts such that when your houses are built next to one another, the overall structure looks like a castle with individual houses being the “towers”.

Exceeding expectations:

To achieve an E grade for Exceeds Expectations, include one or more of the following, or make your assignment awesome in some other creative fashion:

Write your program to vary the materials such that they form a pattern on the walls of the house.  Stripes, checkerboard, spirals, etc.

Make a house with five walls in the form of a regular pentagon, or six walls in the form of a regular hexagon.

Make a pyramidal or peaked roof for your house.

Work together on a team project to build a larger structure.  Each student must write a program to build a portion of the larger structure, and each student’s program must still meet the spirit of the minimum requirements:  four walls, minimum size, a roof or floor, and at least two other features such as windows or doors.  The overall project must be a structure that clearly was designed as a whole and is not just multiple houses simply jammed together.  For example, you could build a tower where each student works on one level of the tower.

Tips:

Start small.  You will make mistakes and need to run your program over and over many times.  Work with the smallest house you can to start with.  It is easy to edit your “repeat” loops to build a larger house after everything is working.

Testing your program will leave some partially built houses on your lot.  Be sure to click the “rewind” or undo button on your turtle’s remote control after a test run, and it will reset everything including your turtle’s inventory.  Otherwise, if you have a mess to cleanup you can always write a program to get your turtle to clean things up.