Отдельная функция предпочтительнее для 2 строк повторяющегося кода в Swift? - PullRequest
0 голосов
/ 27 декабря 2018

Я разрабатываю небольшую игру и выбрал первоначальный способ распределения очков на основе количества секунд, прошедших между моментом, когда был задан вопрос, и нажата кнопка ввода.

Я понимаю, чтоЛучше всего создать функцию для вызова, когда строки будут повторяться, но мне кажется, что вызывать ее может быть несколько излишне, когда четыре раза повторяются только две строки.Используя приведенный ниже код, было бы «правильным» или предпочтительным для меня создать функцию для двух последних строк в каждом разделе?

//Assigns points to score based on elapsed time and updates score
func updateScore() {

    timer.invalidate()

    if timeToAnswer < 3 {
        questionScore = 10  //10 points for answering so quickly
        score = score + questionScore  //Updates score
        timeToAnswer = 0  //Resets var timeToAnswer
    }

    else if (timeToAnswer >= 3) && (timeToAnswer < 6) {
        questionScore = 7
        score = score + questionScore
        timeToAnswer = 0
    }

    else if (timeToAnswer >= 6) && (timeToAnswer < 11) {
        questionScore = 10 - timeToAnswer
        score = score + questionScore
        timeToAnswer = 0
    }

    else {
        questionScore = 1
        score = score + questionScore
        timeToAnswer = 0
    }
}

Большое спасибо всем, кто предлагает помощь или совет.

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете сделать это лучше.Вы также можете использовать оператор switch.В любом случае:

func updateScore() {

    timer.invalidate()

    if timeToAnswer < 3 {
        questionScore = 10
    }

    else if (timeToAnswer >= 3) && (timeToAnswer < 6) {
        questionScore = 7
    }

    else if (timeToAnswer >= 6) && (timeToAnswer < 11) {
        questionScore = 10 - timeToAnswer
    }

    else {
        questionScore = 1
    }

    score = score + questionScore  //Updates score
    timeToAnswer = 0  //Resets var timeToAnswer
}
...