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