2016-06-01 84 views
0

我做了這個方法:迅速返回布爾的方法

func checkScore(player: Int) -> Bool { 

     var checkedFields: [Int] = [] 
     var won: Bool = false 

     for var i = 0; i <= 9; i += 1 { 

      if(winningCombinations[i] == player) { 
       checkedFields.append(i) 
      } 

     } 

     for value in winningCombinations { 

      var hits = 0 

      for n in checkedFields { 

       if value.contains(n){ 
        hits += 1 
       } 

      } 

      if hits == 3 { 
       won = true 
      } 

     } 

     return won 
    } 

但是當我嘗試建立它的一切變成白色,構建崩潰。我在這裏做錯了什麼?我傳遞值是這樣的:

if self.checkScore(player) { 
       print("Won!") 
    } 

(我沒有看到錯誤消息!)

+0

什麼類型是「winningCombinations」? 「winningCombinations [i] == player'和'value.contains(n)'這兩行不匹配。 – vadian

+0

您可以在調用方法之前提供獲勝組合的內容嗎? –

回答

1

func checkScore(player: Int)接受的球員,這是Int類型。

在你的代碼也說:if(winningCombinations[i] == player),這意味着你希望在數組winningCombinations的元素也爲類型Int

但後來你說

for value in winningCombinations { 
var hits = 0 

      for n in checkedFields { 

       if value.contains(n){ 

如果值是winningCombination元素,這意味着價值是一個int ..你怎麼能說value.contains(n)。 Int不能執行包含操作。數組可以。

+0

Thankyou @AkshanshThakur – Jamie