Vorwort
Als ich heute 900 Runden im Bogenschießen geschossen habe (10 endeten bei 6 Pfeilen pro Ende und 10 endeten bei 3 Pfeilen pro Ende, was insgesamt 90 Pfeilen und einer maximalen Punktzahl von 900 entspricht), habe ich an diese Herausforderung gedacht.
Beim Bogenschießen (vorausgesetzt, Sie schießen auf eine von FITA bereitgestellte Zielfläche [das Stück Papier, auf das Sie schießen]) können Sie für jeden Pfeil eine maximale Punktzahl von 10 angeben. Die Zielfläche enthält 10 oder 11 Ringe mit abnehmendem Durchmesser. ineinander verschachtelt. Vom inneren Ring nach außen werden diese von 10 Punkten bis zu einem Punkt gezählt (und im Fall von 11 Ringen gibt es einen sekundären innersten Ring, der als 'X' zählt, der mit 10 bewertet wird, in Fällen, in denen das Binden unterbrochen wird, jedoch als der höhere Wert). Beobachten:

Natürlich beziehe ich mich auf die FITA Metric-Wertung, wie in der obigen Abbildung gezeigt. Wenn Sie genau hinsehen, können Sie den innersten Ring beobachten, bei dem es sich um eine verblasste gepunktete Linie handelt, deren Punktzahl nicht markiert ist. Das ist das 'X', auf das ich mich bezog, aber Sie müssen nicht darauf achten, es sei denn, Sie konkurrieren um den Bonus.
Herausforderung
Erstellen Sie eine Funktion (oder ein vollständiges Programm, wenn die Sprache keine Funktionen unterstützt), die ein perfekt quadratisches Bild als Eingabe (oder ggf. einen Bilddateinamen) mit einer bestimmten Anzahl von Grün (HEX # 00FF00, RGB (0, 255, 0)) Punkte von einiger Größe und gibt die Punktzahl zurück. Das Bild enthält möglicherweise andere Daten als die grünen Punkte , aber das Grün hat immer den exakt gleichen Farbton.
Sie können sich vorstellen, dass das quadratische Bild die Zielfläche darstellt, wobei sich der äußerste Ring an 4 Punkten (oben in der Mitte, unten in der Mitte, rechts in der Mitte, links in der Mitte) berührt. Die dargestellte Zielfläche hat immer das gleiche Verhältnis, wobei alle Ringe eine Breite von genau 1/20 der Breite des eingegebenen Zielbilds haben. Bei einem Eingabebild mit den Eingabeabmessungen 400 x 400 Pixel können Sie beispielsweise davon ausgehen, dass jeder Ring eine innere Breite von 20 Pixel hat, wie im Folgenden dargestellt:

Klarstellungen
- Wenn Sie zwei Ringe berühren, wird der höhere der beiden Ringe gezählt
- Sie müssen nicht automatisch Misses oder den 'x'-Fall berücksichtigen, es sei denn, Sie versuchen, den Bonus zu erhalten
- Sie können davon ausgehen, dass sich keine grünen Kreise überlappen
- Sie können auch davon ausgehen, dass sich keine anderen Pixel dieses Grüntons im Bild befinden
- Das Bild ist entweder im PNG-, JPEG- oder PPM-Format (nach Wahl).
- Externe Bildbearbeitungsbibliotheken sind zulässig, wenn sie vor dem Absenden dieser Frage erstellt wurden
- Sie können davon ausgehen, dass alle grünen Kreise auf einem Ziel den gleichen Durchmesser haben
- Wenn Sie für den Bonus für überlappende Kreise schießen (hah), können Sie davon ausgehen, dass mindestens ein Kreis im Bild keine weitere Überlappung aufweist
- Standardlücken sind nicht zulässig
Testfälle
In den folgenden beiden Fällen sollten jeweils 52 Punkte erzielt werden (oder bei Boni 52 mit 1 "x" und 1 "verfehlt"):

Und dieser letzte Testfall sollte 25 Punkte bringen :

Bonus
- -25 Bytes, wenn Sie auch die Anzahl der Fehler (außerhalb eines der Ringe) zurückgeben
- -30 Bytes, wenn Sie auch die Menge der Xs zurückgeben (angenommen, dass das innerste x 3 / 100stel der Breite des Bildes und 10 dann 2 / 100stel der Breite des Bildes beträgt. Die Proportionen 1-9 bleiben unverändert)
- -35% Byteanzahl, wenn Sie überlappende Kreise berücksichtigen
Dies ist Codegolf, also gewinnt das kleinste Byte. Habe Spaß!