How to Write and Debug the First Function to Build a One-Click House in Minecraft

By Sarah Guthals, Stephen Foster, Lindsey Handley

Here, you learn how to write and debug the first function for a Minecraft mod that builds a house. This process is referred to as building a one-click house, because whenever you’re in Minecraft with one-click capability, you can have a house.

Start a new mod titled Simple_House.

image0.jpg

Design a simple house on paper

First, sketch out the house on paper. The principles of design apply, such as drawing at the house from multiple angles. You should figure out what functions are needed to build the house.

image1.jpg

In this mod, you should decide what functions you want to create as you design the code. This alternative design strategy requires fewer refactoring iterations (the number of times you have to refactor your code) because you already know the functions, and you don’t have to move code into functions after you write it.

The drawings you create in the design phase don’t have to be perfect. You just need to form an idea of what functions you need to write and how many blocks you need to place.

Write small bits of code and test them often. Before you even begin writing code, one strategy you can follow is to add all the functions you need in your mod. This image shows you how to do this, following the sketched-out design from above.

image2.jpg

Write the first function for your house

Start with the first wall, the function named wall_5x5. First, make a line. Here is the code for making a line of five bricks in one direction.

image3.jpg

Then test your code. You see a scene similar to this one.

image4.jpg

Sometimes, Minecraft worlds become so filled with trees that it’s difficult to find a place to run mods with large structures in them. If this happens to you, just switch to Creative mode in Minecraft and run your mods in the sky.

As long as you use material such as brick, your mods will appear in the clear, open sky around you. Though making structures in the sky becomes a problem whenever you want to use water or lava (because those materials will begin to fall), it also creates an amazing waterfall (or lavafall).

After you have one line of your house structure, you can easily extend it to five lines to make an entire wall. You can place a block and move the drone a lot of the time, as you did in to make the tower, or you can use loops.

A loop is a coding construct that you can use to repeat lines of code. You can use four types of loops in LearnToMod. Each one repeats the code that’s inside of it. If you haven’t done so already, go to the LearnToMod badges and complete all badges in the “Introduction to Loops” section to gain a basic understanding of loops.

The following image shows you all the different types of loops you can use. In this case, you see how to use the loop that repeats a certain number of times, because you know that you want it to repeat exactly five times.

image5.jpg

This loop repeats anything you put inside it; however many times you specify. Here, you see your wall code using this loop.

image6.jpg

Now test your mod. You see something like this scene.

image7.jpg

Debug the first function for your house

If you run into a bug in the code, never fear: You have debugging strategies. Debugging is an important skill to have, because rarely will you write code that is perfectly correct. You’ll have to debug when you use LearnToMod or any other coding system, so here are a few strategies.

Identify the bug

Suppose that your mod has a lot of complex code in it. Not only does the mod have multiple lines, but they also repeat five times. Before you can find the bug, you should simplify the code.

Reduce the number of times the loop repeats. You know that one line works, so try repeating two times.

image8.jpg

Test your mod, and you see this scene.

image9.jpg

It seems that the second line is starting one block too soon, so the backward code is probably the bug.

Change the code and test it out (Debugging approach 1)

The bug is that the second line is off by one block. “Off by one” bugs are common in programming.

One way to fix the problem is to edit the line and test it. You know that the backward block is most likely the culprit, so change the backward block by 1.

image10.jpg

When you test your mod, you see that it works! It makes two lines directly on top of each other.

image11.jpg

Use paper (Debugging approach 2)

Another way to debug is to trace the code. For each line of code, draw on paper what it does, such as drawing a red square when a brick block is placed. Then draw what you want to happen and look at the difference.

You can see below that what you have is moving backward five times, but what you need is to move backward four times.

image12.jpg

Complete the first function for your house

After you have debugged your code, you can change the loop back to iterating five times, and you see a scene like this.

image13.jpg