사실이 아닌 가장 큰 번호를 찾으려면 아래 코드를 사용하려고 시도합니다. 그러나, 가장 큰 숫자 앞에 참 변수가 오는 경우, 그 숫자보다 더 작은 숫자를 줄 것을 원합니다. 어떻게 이것을 달성하기 위해 코드를 바꿀 수 있습니까? 제대로 일 1 UPDATE에 작은 동일한 경우다음 진실을 찾으려면 배열을 사용한 명령문을 사용하십시오.
var firstRow = [1: false, 2: false, 3: false, 4: false, 5: true, 6: false]
var smallest = Int.max
var largest = 0
var playerLoc = "3"
for (number, bool) in firstRow {
if playerLoc != "1" && playerLoc != "30"{
if bool == false && number < smallest {
smallest = number
var smallString = ("\(smallest)")
if smallString == playerLoc {
smallest = Int.max
}
else {
smallest = number
}
}
}
else {
smallest = Int.max
}
if playerLoc != "6" && playerLoc != "36" {
if bool == false && number > largest {
largest = number
}
}
else {
largest = 0
}
}
println(smallest)
println(largest)
그래서 예를 들어,이 코드는 4 가장 큰 동등한를 설정합니다 : 범위의 오류 배열 인덱스 아웃이 코드 줄을 사용 내가 얻을
var firstRow = [(1, false), (2, false), (3, false), (4, false), (5, false), (6, false)]
그러나 놀이터에서 사용하면 정상적으로 작동합니다.
나는이 코드로 문제를 좁혔다.
if two.contains(player.position) || two.contains(opponent.position) || two.contains(block3.position) {
firstRow[2].1 = true
} else {
firstRow[2].1 = false
}
사전은 정렬되지 않은 콜렉션입니까? firstRow의 항목이 반드시 순서대로 반복되지는 않습니다. –
나는 그것을 몰랐다. 대신에 무엇을 권하고 싶습니까? – Nas5296
튜플 배열 :'var a = Array <(Int, Bool)>()' –