Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести сообщения о попадании в мишень - C# (180810)
Формулировка задачи:
Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые
сообщения о попадании в мишень. Мишень задана на рисунке. Выстрел считается успешным,
если он попадает в закрашенную область.
Решение задачи: «Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести сообщения о попадании в мишень»
textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static Func<double, double, bool> IsHit(double r)
{
return (x, y) =>
{
return (y < 0.0) ? x < 0.0 && x >= -r && y <= x : x * x + y * y <= r * r;
};
}
static void Main()
{
Console.Write("Input R: ");
Func<double, double, bool> f = IsHit(Double.Parse(Console.ReadLine()));
for (int i = 0; i < 10; i++)
{
Console.Write("Input X and Y: ");
IEnumerable<double> xy = Console.ReadLine().Split().Select(Double.Parse);
Console.WriteLine(f(xy.First(), xy.Last()) ? "Hit!" : "Miss...");
}
}
}