hexlet-codebattle/battle_asserts

задачки

sgmdlt opened this issue · 1 comments

заливал через форму на сайте, но скопирую сюда

Count your score in a game of rock-paper-scissors. You are given two arrays: your moves and your opponent’s moves. You get 1 point for a win, -1 for a loss, and 0 for a draw. Let me remind you that according to the rules:

  • rock beats scissors.
  • scissors beat paper
  • paper beats rock

Посчитайте свой счет в игре камень-ножницы-бумага. Вам даны два массива: ваши ходы и ходы противника. За победу вы получаете 1 очко, за поражение -1 и 0 за ничью. Напомню, что по правилам:

  • камень бьет ножницы
  • ножницы бьют бумагу
  • бумага бьет камень

2 = solution([‘r’, ‘p’, ‘s’], [‘s’, ‘p’, ‘p’])

explanation:

    ‘r’ beats ‘s’, score + 1
    ‘p’ ties ‘p’, score + 0
    ‘s’ beats ‘p’, score + 1 total score = 2

-3 = solution([‘p’, ‘p’, ‘p’], [‘s’, ‘s’, ‘s’])```

на питоне

 def solution(yr_rounds, op_rounds):
             rules = {
             'r': {'s': 1, 'p': -1, 'r': 0},
             's': {'p': 1, 'r': -1, 's': 0},
             'p': {'r': 1, 's': -1, 'p': 0},
             }

            return sum(rules[yr_choice][op_choice] for yr_choice, op_choice in zip(yr_rounds, op_rounds))