noftaly

Player

Jun 23rd, 2018
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.64 KB | None | 0 0
  1. class Player {
  2.     private static let DEFAULT_NAME: String = "Player"
  3.     private static var s_lastId: Int = 0
  4.     private static func getNextId() -> Int {
  5.         s_lastId += 1
  6.         return s_lastId
  7.     }
  8.     private var _id:Int
  9.     private var _name:String
  10.     private var _score:Int = 0
  11.     private var _level:Int = 1
  12.    
  13.     var name:String {
  14.         get{
  15.             return _name
  16.         }
  17.         set {
  18.             if newValue.count > 0 {
  19.                 _name = newValue
  20.             }
  21.         }
  22.     }
  23.    
  24.     init(myName:String) {
  25.         if myName.count == 0 {
  26.             _name = Player.DEFAULT_NAME
  27.         } else {
  28.             _name = myName
  29.         }
  30.         _id = Player.getNextId()
  31.     }
  32.    
  33.     func getScore() -> Int {
  34.         return _score
  35.     }
  36.    
  37.     func getLevel() -> Int {
  38.         return _level
  39.     }
  40.    
  41.     func gameWon() {
  42.         changeScore(_score + 5)
  43.     }
  44.    
  45.     func gameLost() {
  46.         changeScore(_score - 2)
  47.     }
  48.    
  49.     func changeScore(_ newScore:Int) {
  50.         _score = newScore
  51.         updateLevel()
  52.     }
  53.    
  54.     private func updateLevel() {
  55.         if _score < 10 {
  56.             _level = 1
  57.         } else if _score < 20 {
  58.             _level = 2
  59.         } else {
  60.             _level = 3
  61.         }
  62.     }
  63. }
  64.  
  65. let player1 = Player(myName: "Brigitte")
  66. let player2 = Player(myName: "Francis")
  67.  
  68. player1.gameWon()
  69. player1.gameWon()
  70. player1.gameLost()
  71. player1.changeScore(15)
  72.  
  73. let player3 = Player(myName: "Yves")
  74. print("Player3 : \(player3.name)") // lecture de la variable (dans name > get{})
  75. player3.name = "Jackie" // écriture de la variable (dans name > set{})
Advertisement
Add Comment
Please, Sign In to add comment