Skip to content

Mouredev Kt code don't work correctly for duplicates and code block errors  #6189

@Nitsua13

Description

@Nitsua13
fun main() {
   println(playGames(arrayOf(Pair(Game.ROCK, Game.ROCK))))
   println(playGames(arrayOf(Pair(Game.ROCK, Game.SCISSORS))))
   println(playGames(arrayOf(Pair(Game.SCISSORS, Game.ROCK))))
   println(
           playGames(
                   arrayOf(
                           Pair(Game.ROCK, Game.ROCK),
                           Pair(Game.ROCK, Game.ROCK),
                           Pair(Game.ROCK, Game.ROCK),
                           Pair(Game.ROCK, Game.ROCK)
                   )
           )
   )
   println(
           playGames(
                   arrayOf(
                           Pair(Game.SPOCK, Game.ROCK),
                           Pair(Game.SCISSORS, Game.PAPER),
                           Pair(Game.ROCK, Game.ROCK),
                           Pair(Game.LIZARD, Game.SPOCK)
                   )
           )
   )
}

enum class Game {
   ROCK,
   PAPER,
   SCISSORS,
   LIZARD,
   SPOCK
}

fun playGames(games: Array<Pair<Game, Game>>): String {
   val rules: Map<Game, Array<Game>> =
           mapOf(
                   Game.ROCK to arrayOf(Game.SCISSORS, Game.LIZARD),
                   Game.PAPER to arrayOf(Game.ROCK, Game.SPOCK),
                   Game.SCISSORS to arrayOf(Game.PAPER, Game.LIZARD),
                   Game.LIZARD to arrayOf(Game.SPOCK, Game.PAPER),
                   Game.SPOCK to arrayOf(Game.ROCK, Game.SCISSORS)
           )

   var playerOne = 0
   var playerTwo = 0

   for (game in games) {
       if (game.first != game.second) {
           if (rules[game.first]?.contains(game.second) == true) {
               playerOne += 1
           } else {
               playerTwo += 1
           }
       }
   }

   return if (playerOne == playerTwo) "Tie"
   else if (playerOne > playerTwo) "Player 1" else "Player 2"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions