struct BasketballPlayer {
var name: String
var threePointShot: Int
var twoPointShot: Int
var score: Int {
get {
return 2*twoPointShot+3*threePointShot
}
}
}
class BasketballTeam {
var name: String
var players: [BasketballPlayer]
var score: Int {
get {
var sum = 0
for player in players {
sum += player.score
}
return sum
}
}
func addNewPlayer(newPlayer: BasketballPlayer) {
players.append(newPlayer)
}
init(name: String) {
self.name = name
players = []
}
subscript(index: Int) -> BasketballPlayer {
get {
return players[index]
}
set {
players[index] = newValue
}
}
}
var player1 = BasketballPlayer(name: "YaoMing", threePointShot: 1, twoPointShot: 15)
var player2 = BasketballPlayer(name: "McGrady", threePointShot: 9, twoPointShot: 12)
var player3 = BasketballPlayer(name: "Alston", threePointShot: 3, twoPointShot: 3)
var houstonRocket = BasketballTeam(name: "Houston Rocket")
houstonRocket.addNewPlayer(newPlayer: player1)
houstonRocket.addNewPlayer(newPlayer: player2)
houstonRocket.addNewPlayer(newPlayer: player3)
houstonRocket[0] = player3
houstonRocket[2] = player1
print("Total score of \(houstonRocket.name) is \(houstonRocket.score)")
print("Each player's score is:")
for i in 0...(houstonRocket.players.count-1) {
let name = houstonRocket[i].name
let score = houstonRocket[i].score
print("\(name) score is \(score)")
}