code-prettify swift

by Slava Slava

HTML

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?lang=swift"></script>
<pre class="prettyprint lang-swift">

protocol PlayerType {
    var health: Int { get set }
    var speed: Int { get set }
    var move: String { get set }
}

class HumanPlayer: PlayerType {
    var health: Int = 100
    var speed: Int = 6
    var move: String = "walk"
}

class BirdPlayer: PlayerType {
    var health: Int = 70
    var speed: Int = 15
    var move: String = "fly"
}

class LionPlayer: PlayerType {
    var health: Int = 30
    var speed: Int = 40
    var move: String = "run"
}

class Player {
    var state: PlayerType = HumanPlayer()
    var aim = "Castle"
    
    func move() {
        print("\(state.move) to \(aim) with speed \(state.speed) per km")
    }
    
    func drinkMagicPotion(magic: String) {
        switch magic {
        case "bird":
            state = BirdPlayer()
        case "animal":
            state = LionPlayer()
        default:
            state = HumanPlayer()
        }
    }
}

</pre>