Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Build a Simple iPhone App with Swift 2.0 Getting Started with iOS Development Swift Recap Part 2

Parthiban Mathivanan
Parthiban Mathivanan
1,442 Points

Cannot get Solution for this Code Challenge

Cannot get Solution for this Code Challenge

classes.swift
class Point {
    var x: Int
    var y: Int

    init(x: Int, y: Int){
        self.x = x
        self.y = y
    }
}


class Machine {
    var location: Point

    init() {
        self.location = Point(x: 0, y: 0)
    }

    func move(direction: String) {
        print("Do nothing! I'm a machine!")
    }
}

// Enter your code below
James Knight
James Knight
4,680 Points

whats is it the code challenge is asking for ?

4 Answers

Hey Guys,

Here is what I have tried but am stumped at this point. I think it wants to to initialize x and y but Im not sure how?

Please help

class Point { var x: Int var y: Int

init(x: Int, y: Int){
    self.x = x
    self.y = y
}

}

class Machine { var location: Point

func move(direction: String) {
    print("Do nothing! I'm a machine!")
}

}

// Enter your code below

class Robot: Machine {

override func move(direction: String) { switch direction { case "Up": y + 1 case "Down": y - 1 case "Left": x - 1 case "Right": x + 1 default: break } } }

Parthiban Mathivanan
Parthiban Mathivanan
1,442 Points

In the editor you've been provided with two classes - Point to represent a coordinate point and Machine. The machine has a move method that doesn't do anything because most machines are motionless.

Your task is to subclass Machine and create a new class named Robot. In the Robot class, override the move method and provide the following implementation. If you enter the string "Up" the y coordinate of the Robot's location increases by 1. "Down" decreases it by 1. If you enter "Left", the x coordinate of the location property decreases by 1 while "Right" increases it by 1.

Note: If you use a switch statement you can use the break statement in the default clause to exit the current iteration.

Bjorn Morrhaye
Bjorn Morrhaye
2,387 Points

You could try and post what you have, and from there see which part you didn't get.

I just pasted my attempt if your still up for giving a little guidance

Pavel Bogart
Pavel Bogart
1,713 Points

this one is my solution

class Robot: Machine {

    override func move(direction: String) {
        switch direction {
            case "Up":
            location.y += 1
            case "Down":
            location.y -= 1
            case "Left":
            location.x -= 1
            case "Right":
            location.x += 1
        default: break
        }
    }

}