     func execute(board: GameBoard) throws {
         //nop
     }
-    
+
 }
 
 

    }


    private static func createPandemicMap() -> WeightedGraph<City,NoWeight> {

        let graph = WeightedGraph<City,NoWeight>()

        let algiersIndex = graph.addVertex(City.algiers)
        let atlantaIndex = graph.addVertex(City.atlanta)

//

import Foundation
private enum OpenOrBlocked {
    case Open
    case Blocked
}


extension OpenOrBlocked : Comparable {

}

extension OpenOrBlocked : Summable {

}


private func +(lhs:OpenOrBlocked, rhs:OpenOrBlocked) -> OpenOrBlocked {
    if lhs == .Blocked || rhs == .Blocked {
        return .Blocked
    }
    return .Open
}
private func <(lhs:OpenOrBlocked, rhs:OpenOrBlocked) -> Bool {
    if lhs == .Open {
        return rhs == .Blocked
    }

    return false
}



public class GameBoard {


    private var positions:[Pandemic.Character:Int]

    private let graph:WeightedGraph<City,OpenOrBlocked>


    init(withCharacters characters:[Pandemic.Character], inCity city:City) {
