W świetle Australian Open 2014 w Melbourne i zwycięstwa Stanisława Wawrinki przeciwko Novakowi Djokovicowi proponuję następujące wyzwanie golfa!
Wawrinka i Djokovic znów są na tym tle na podstawie tego CGC. Twoim zadaniem jest wziąć ciąg składający się z 1 i 2 i ustalić wyniki tenisowe na podstawie systemu punktacji tenisowej. „1” oznacza, że Wawrinka zdobył punkt, natomiast „2” oznacza, że Djokovic zdobył punkt.
Na przykład: 1211222122111122111
wygeneruje dwuliniowy wynik:
Wawrinka 1 - 40
Djokovic 1 - 30
Im dłuższy ciąg, tym większa liczba punktów w grze.
Zasady:
- Najkrótszy kod wygrywa, czysty i prosty.
- Wyniki, gdy są wyświetlane, muszą być wyrównane do prawej, a także do kolumny; na przykład
Przykładowe wyrównanie wyniku:
Wawrinka 7 5 3 - 0 Djokovic 6 7 4 - 15
Jeśli gra jest w toku, wynik musi być wyświetlany po ustalonych wynikach. Wyniki w grze muszą być zgodne z ustalonymi wynikami z separatorem spacja-myślnik-spacja. Jeśli tak się stanie, to musi zostać wyświetlony wynik 0-0.
Wawrinka 0 - 0 Djokovic 0 - 15
Gra będzie przebiegać w kolejności od 0, 15, 30, 40 i punktu gry. Jeśli gra osiągnie 40-40, deklaruje się dwójkę, a wynik musi wyświetlać dwójkę w rzędzie graczy, który zdobędzie punkt:
Wawrinka 7 5 3 - 40 Djokovic 6 7 4 - 40 Deuce
Jeśli dojdzie do dwójki, następny punkt będzie zaletą dla gracza, który zdobędzie punkt:
Wawrinka 7 5 3 - Ad Djokovic 6 7 4 - 40
Punkt później, jeśli zostanie zaliczony przez uprzywilejowanego gracza, wygrywa grę, w przeciwnym razie gra wraca do dwójki.
Jeśli między punktami przewagi padnie więcej niż jeden dwójka, liczba dwójki zostanie wskazana przez liczbę w nawiasach:
Wawrinka 7 5 3 - 40 Djokovic 6 7 4 - 40 Deuce (2)
Zestaw wygrywa się, jeśli gracz osiągnie 6 lub więcej gier z marginesem dwóch gier na prowadzeniu, np. 7-5, 6-4 ... 9-7 (w przypadku piątego seta ostatniej nocy)
Kolejne zestawy muszą być oddzielone spacją.
W Australian Open dochodzi do przerw w remisie, dlatego jeśli zostanie osiągnięty zestaw 6-6, pierwszy gracz uzyskuje siedem remisów z przewagą dwóch punktów. Wyświetlanie przerw w remisie pokazano w nawiasach kwadratowych w następujący sposób:
Wawrinka 7 6 [6] Djokovic 6 6 [4]
Mówi się, że zwycięzca remisu wygrał poprzedni set 7-6.
Jeśli piąty set osiągnie 6-6, gra jest kontynuowana bez rozstrzygnięcia remisu, aż do osiągnięcia marginesu dwóch gier z jednym graczem, który jest zwycięzcą tego seta. W piątym secie nie ma żadnych remisów.
Jeśli gracz wygrał trzy sety, wyświetli się trzecia linia z napisem
Wawrinka wins
lub wDjokovic wins
zależności od tego, kto wygrał, a kod zostanie zakończony.Wawrinka 2 6 6 3 9 Djokovic 6 4 2 6 7 Wawrinka wins
Jeśli ciąg znaków zakończy się tak, że ostatni punkt wygrał grę, set lub mecz, wynik gry nie jest wyświetlany ...
Wawrinka 7 5 3 Djokovic 6 7 4
Jeśli ciąg wykracza poza wygrany mecz, reszta ciągu jest ignorowana, wynik jest wyświetlany, a zwycięzca deklarowany.
Odpowiedzi:
Perl - 424 bajty
Dodano nowe
linie,abypoprawić czytelność wpoziomie.Według oceny Australian Open to kompletne rozwiązanie :
Przypadki testowe
Wszystkie wyniki pośrednie dla ostatniego przypadku testowego można zobaczyć tutaj: http://codepad.org/FzDIcf0W
źródło
ECMAScript 6 - 635 znaków
Z komentarzami:
Testowanie
Wyjścia testowe
źródło
JavaScript - 743 bajty
Bez kompilatora zamknięcia:
źródło