Перейти к содержанию

🗒 Задача

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

  • поочередно выводи сообщение о ходе игрока и компьютера (отображать кто бросил, какие значения на кубиках);

  • бросок кости вынеси в отдельную функцию, в которой генерируется случайное число от 1 до 6;

  • в отдельные переменные сохрани результат работы функции для игрока и компьютера;

  • после сравнения результатов, выведи соответствующее сообщение в консоль. Например: "Победило человечество" , "Победила машина" или "Победила дружба".

❌ Ошибки

  • функции с неочевидным названием

  • создают 1 рандомное число вместо 2 в функции

✏️ Комментарии

Лучше использовать функции Котлин `isEmpty()` и их вариации
Предлагаю тут написать более короткую форму, сразу возвращая результат (без `return`)
Название параметра тоже должно быть релевантным. Чтобы было понятно что он хранит и для чего нужен. Иначе команде (и мне в частности) непонятно его предназначение)
Функции следует называть в инфинитиве. И более релевантно, чтобы сразу было понятно ее предназначение и функциональность

🧾 Решение

println("Ход игрока. Бросайте кости")

    val gamer = diceRoll()
    println("Ваше число: $gamer")
    println("Ход компьютера")

    val computer = diceRoll()
    println("Мое число: $computer")

    when {
        gamer > computer -> println("Победило человечество")
        gamer < computer -> println("Победила машина")
        else -> println("Победила дружба")
    }
}

fun diceRoll(): Int = (1..6).random()
fun main() {
    val playerScore = rollDice("Игрок")
    val computerScore = rollDice("Компьютер")

    when {
        playerScore > computerScore -> println("Победило человечество!")
        playerScore < computerScore -> println("Победила машина!")
        else -> println("Ничья! Попробуйте снова.")
    }
}

fun rollDice(playerName: String): Int {
    println("$playerName бросает кости...")
    val score = (1..6).random()
    println("$playerName выбросил $score")
    return score
}