02. Japanese Roulette - Array and List Algorithms - More Exercises
Здравейте колеги!
Въпросът ми е, няма ли грешка в резултата на 2-рия нулев тест?
 
Условие: https://softuni.bg/trainings/resources/officedocument/12962/exercise-problem-descriptions-programming-fundamentals-exended-january-2017
| Input | Output | 
| 0 0 1 0 0 0 1,Right 2,Left 5,Left 
 | Game over! Player 1 is dead. | 
Не трябва ли да е Player 2 is dead?
Ако съм прав и има грешка, то има ли грешка и във останалите тестове, които не са нулеви?
А ако греша, ще се радвам ако ми помогнете с кода
Ето го най-успешният ми до сега (40/10):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JapaneseRoulette
{
    class Program
    {
        static void Main(string[] args)
        {
            var revolver = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
            var players = Console.ReadLine().Split(' ').ToList();
            string left = "Left";
            string right = "Right";
            var bullet = 0; ;
            var position = 2;
            var playerNumber = -1;
            foreach (var bulletHole in revolver)
                if (bulletHole > 0)
                    bullet = bulletHole;
            for (int i = 0; i < players.Count; i++)
            {
                var player = players[i].Split(',').ToArray();
                var spins = int.Parse(player[0]);
                var direction = player[1];
                if (direction == left)
                {
                    while (spins > 0)
                    {
                        position++;
                        spins--;
                        if (position > revolver.Count - 1)
                            position = 0;
                    }
                }
                else if (direction == right)
                {
                    while (spins > 0)
                    {
                        position--;
                        spins--;
                        if (position < 0)
                            position = revolver.Count - 1;
                    }
                }
                if (revolver[position] == bullet)
                {
                    playerNumber = i;
                    break;
                }
            }
            if (playerNumber < 0)
                Console.WriteLine("Everybody got lucky!");
            else
            {
                Console.WriteLine("Game over! Player {0} is dead.", playerNumber);
            }
        }
    }
}
посоките на въртене при японската се върти само в едната посока
Да, така е.. А в случая на първата задача - Rabbit Hole - защо:
case "left":
position = position - (jumps % obstacles.Count);
position = Math.Abs(position);
break;
https://imagebin.ca/v/3LHT9ZWqAfUj