Я изучаю Swift и пытался самостоятельно запрограммировать игру «Буллсай» от Райана Вендерлиха перед просмотром видео.
Мне нужно было давать пользовательские очки в зависимости от того, насколько близко к целевому числу онбыло.Я попытался вычислить разницу и затем проверить диапазон и дать пользователю баллы. Это то, что я сделал с If-else (Не удалось сделать это с переключателем):
private func calculateUserScore() -> Int {
let diff = abs(randomNumber - Int(bullsEyeSlider.value))
if diff == 0 {
return PointsAward.bullseye.rawValue
} else if diff < 10 {
return PointsAward.almostBullseye.rawValue
} else if diff < 30 {
return PointsAward.close.rawValue
}
return 0 // User is not getting points.
}
Есть лиспособ сделать это более элегантно или с Switch-Case?Я не мог просто сделать diff == 0
, например, в случае с переключателем, поскольку xCode выдает мне сообщение об ошибке.