我已经制作了这个方法:
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 :(得分: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){
如果value是winsCombination中的元素,则表示value为int ..你怎么能说value.contains(n)。 Int无法执行包含操作。数组可以。