2016-06-01 7 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 
    } 

しかし、私はそれを構築しようとすると、すべてが白になり、ビルドがクラッシュします。私はここで何か間違っていますか?あなたのfunc checkScore(player: Int)はタイプIntのある選手を受け入れる

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

(私はエラーメッセージを見ない!)

+0

'winningCombinations'とはどのようなタイプですか? 'winningCombinations [i] == player'と' value.contains(n) 'の行は一致しません。 – vadian

+0

方法を呼び出す前に、コンビネーションの内容を提示できますか? –

答えて

1

:私はこのような値を渡します。あなたは、配列winningCombinationsの要素もタイプのInt

ことを期待していることを意味し、if(winningCombinations[i] == player)しかし、値がwinningCombinationの要素であるなら、あなたは

for value in winningCombinations { 
var hits = 0 

      for n in checkedFields { 

       if value.contains(n){ 

を言う:あなたのコードで

あなたも言います、それは値がintであることを意味します。あなたはどのようにvalue.contains(n)と言うことができます。 Intは包含操作を実行できません。配列はできます。

+0

ありがとう@AkshanshThakur – Jamie

関連する問題