Więcej Codington Crescent
Kto ma ochotę na drugą próbę?
Jeśli kiedykolwiek słuchałeś programu radiowego „Przepraszam, nie mam pojęcia”, to prawdopodobnie słyszałeś o grze „Mornington Crescent”. Dla tych, którzy tego nie zrobili, jest to gra, w której gracze nazywają losowe stacje w sieci londyńskiego metra. Pierwsza osoba, która nazwie „Mornington Crescent”, wygrywa. 1
Podobnie jak ostatnio , przedstawiam wam kolejną grę w Codington Crescent .
Wyzwanie
Zwycięzcą tego wyzwania jest pierwsza osoba, która opublikuje działający program, który mając listę dodatnich liczb całkowitych o zmiennej wielkości, zwraca średnią (średnią arytmetyczną) z tej listy. Lista nie będzie pusta i zawsze będzie zawierać przynajmniej jedną pozycję. Dane wejściowe i wyjściowe można podawać w dowolnym rozsądnym i wygodnym formacie
Przypadki testowe
[150, 541, 168, 225, 65, 191, 964, 283, 825, 5, 802, 426, 45, 326, 22, 619, 281] => 349.29411764705884
[874, 33, 423, 36, 1000, 255, 345, 902, 700, 141, 916, 959, 222, 246, 96] => 476.53333333333336
[567, 868, 680, 121, 574, 391, 233, 39, 764, 499, 455, 684, 742, 117, 376] => 474.0
[177, 372, 778, 709, 474, 796, 840, 742] => 611.0
[181, 751, 940, 782, 727, 756, 541, 762, 677, 751, 719] => 689.7272727272727
[47, 804, 782, 231, 170] => 406.8
[315, 972] => 643.5
[679, 727] => 703.0
[859, 229, 363, 468, 103, 104, 570, 772, 83, 693, 898, 672, 306, 733, 189, 717, 231] => 470.0
[228, 839] => 533.5
[395, 622, 760, 820, 70, 814, 797, 202, 277, 663, 93, 218, 564, 735] => 502.14285714285717
[724, 631, 932, 333, 605, 880, 670, 468, 703, 744, 680, 28] => 616.5
[950, 733, 305, 178, 995] => 632.2
[762, 506, 553, 284, 499, 694, 665, 998, 576, 504, 123, 658, 943, 385, 354, 732] => 577.25
[151, 919, 514, 721, 426, 333, 808, 514] => 548.25
[995] => 995.0
[891, 243, 42, 968, 458, 372, 301, 269, 559, 394, 980, 372, 804, 429, 738] => 521.3333333333334
[147, 473, 632] => 417.3333333333333
[105, 483, 225, 541, 684, 456, 328] => 403.14285714285717
[311, 1, 770, 417, 910, 185, 375, 631, 226, 266, 609] => 427.3636363636364
Generator przypadków testowych
Zasady
- Każdy gracz ma swój własny program, który będzie dodawać / zmieniać postacie. Nazywa się to ich działającym programem .
Każda odpowiedź ( kolej ) musi być zgodna z ograniczeniami źródłowymi określonymi w poprzednich odpowiedziach. Nazywa się to regułami . Każdy wariant trwa 5 tur . Reguły mają postać ograniczeń dotyczących źródła .
Uruchomione programy mogą zmieniać języki między turami.
Odpowiadający (gracze) mogą dodawać, zmieniać lub usuwać (ale tylko jedną z opcji) dowolną liczbę postaci z uruchomionego programu na turę. Alternatywnie, mogą wybrać opcję „ pasowania ” ( bardziej naukowo , farkle ), nie dodając nowych zasad i nadal licząc jako turę. Może to być jedyny wybór, jeśli reguły są ze sobą sprzeczne. Liczba tur jest nadal zwiększana i ma zostać opublikowana. Wskazówka dla profesjonalistów: Prawdopodobnie możesz chcieć oznaczyć to wiki społeczności, ponieważ nie dodaje wiele.
Pod koniec każdej tury gracz deklaruje nową zasadę, która będzie obowiązywać przez następne 5 tur. Reguły muszą być obiektywne, a program weryfikacji TIO jest wysoce zalecany. Ponadto reguły muszą mieć możliwość zastosowania do każdego języka (np.
Programs must not error using Python 3.4.2Nie jest prawidłową regułą).Gra jest kontynuowana do momentu, gdy uruchomiony program osiągnie docelowy wynik.
Jeśli tura nie została podjęta przez tydzień, nastąpi ukryta farkle . Zawsze możesz wykonać turę po ukrytym farkle, ponieważ liczy się to jako tura (myśl o niej jako o turze użytkownika Społeczności).
Zasady startu
Aby rozpocząć grę, pierwsze 5 tur musi przestrzegać następujących zasad:
- Zakręty mogą nie doprowadzić do celu końcowego
- Minimalna długość programu to 10 bajtów
Stałe zasady
Ostatnim razem zauważono, że następujące zasady lepiej sprawdzają się jako zasada stała, a nie 5-turowa:
Uruchomione programy muszą być nieredukowalne. Nieredukowalny w tym przypadku oznacza, że program nie generuje wyniku całego programu, jeśli znaki z całego programu zostaną usunięte. To znaczy. Nie istnieje program, który ma domyślne dane wyjściowe, które można by skonstruować, usuwając znaki z oryginalnego programu).
Program nie może wygrać w ciągu 5 tur od pierwszego pojawienia się
Przykładowe zasady
To są tylko przykłady tego, co możesz dodać jako reguły do wyzwania. Nie mają zastosowania, chyba że ktoś zdecyduje się z nich skorzystać.
- Pierwszym i ostatnim znakiem uruchomionego programu musi być spacja
- Uruchomione programy muszą mieć parzystą liczbę bajtów
- Uruchomione programy nie mogą mieć więcej niż 30 bajtów
Zasady łączenia dodatkowych odpowiedzi
- Nie możesz odpowiedzieć dwa razy z rzędu. Ktoś inny musi odpowiedzieć, zanim wybierzesz się ponownie.
- Języki muszą być w Try It Online, aby były prawidłowe.
Porada od specjalistów: sortuj według najstarszych, aby uzyskać bardziej spójny przepływ odpowiedzi
1 Oryginalna gra w Mornington Crescent tak naprawdę nie ma reguł ... To raczej działanie, które wygląda na skomplikowaną grę.
Szablon odpowiedzi
# [Language], turn number [your turn]
<code>
[Try it online link]
[prev answer link]
## Rules
- Rule (n turns left)
- Rule (n turns left)
- Rule (n turns left)
Odpowiedzi
05AB1E , skręć 3
$XY~sDOsg/*+
(Jak mogę utworzyć link do poprzedniej odpowiedzi?)
Chłopcze, czy ja kocham Code Golf!
Wyjaśnienie
$ # Push 1 and input
X # Push 1
Y # Push 2
~ # Converts 1 and 2 to 3
s # Swap to get implicit input
D # Duplicate
O # Sum the list
s # Swap top 2 values and gets the preserved list.
g # Push the length of the list.
/ # Push the quotient of sum and length
* # Multiply with 3
+ # Add with one
Aktualne zasady
- Zakręty mogą nie osiągnąć celu końcowego - Drukuje potrójną średnią plus jeden ( 2 zakręty w lewo! )
- Minimalna długość programu to 10 bajtów (3 obroty w lewo) - Długość programu to 12 bajtów ( 2 obroty w lewo! )
- Programy muszą zawierać znak ~ - znak powinien przesuwać bitowe OR 1 i 2 ( 3 obroty w lewo! )
- Programy muszą mieć średnią wartość bajtów mniejszą lub równą 80 - Średnia wartość bajtów programu wynosi 79,25 (4 obroty w lewo!)
Nowa zasada
Werble
Program musi zawierać 5-10 znaków innych niż alfanumeryczne (5 zakrętów w lewo!)
Io , 20 bajtów
Zwraca średnią + 1.
method(~,~average+1)
Zasady
pierwsze 5 tur musi przestrzegać następujących zasad:
- Zakręty mogą nie doprowadzić do celu końcowego
- Minimalna długość programu to 10 bajtów
dotyczy to wszystkich uruchomionych programów:
Uruchomione programy muszą być nieredukowalne. Nieredukowalny w tym przypadku oznacza, że program nie generuje wyniku całego programu, jeśli znaki z całego programu zostaną usunięte. To znaczy. Nie istnieje program, który ma domyślne dane wyjściowe, które można by skonstruować, usuwając znaki z oryginalnego programu).
Program nie może wygrać w ciągu 5 tur od pierwszego pojawienia się
Nowa zasada:
- Programy muszą zawierać
~znak
Python 3 , 23 bajty, obrót 2
lambda l:sum(l)/~len(l)
Wprowadź jako listę wartości zmiennoprzecinkowych; wyjścia jako liczba zmiennoprzecinkowa.
Zasady
Stałe zasady:
Uruchomione programy muszą być nieredukowalne. Nieredukowalny w tym przypadku oznacza, że program nie generuje wyniku całego programu, jeśli znaki z całego programu zostaną usunięte. To znaczy. Nie istnieje program, który ma domyślne dane wyjściowe, które można by skonstruować, usuwając znaki z oryginalnego programu).
Program nie może wygrać w ciągu 5 tur od pierwszego pojawienia się
Aktualne zasady:
- Zakręty mogą nie doprowadzić do celu końcowego (3 tury w lewo)
- Minimalna długość programu to 10 bajtów (3 obroty w lewo)
- Programy muszą zawierać
~postać (4 tury w lewo)
Moja nowa zasada:
- Programy muszą mieć średnią wartość bajtów mniejszą lub równą 80. ( weryfikator )
Befunge-98 (PyFunge) , 13 bajtów, 5
(skręt 4 był ukrytym farkle)
"PDPF"4(~FP@
Ta odpowiedź jest daleka od zwycięstwa, ale uwzględniam kilka postaci, których prawdopodobnie będzie potrzebował przeciętny program w tym języku, i utrzymuję wyzwanie przy życiu.
Zasady:
- Programy mogą nie osiągnąć celu końcowego (ostatnia tura)
- Minimalna długość programu to 10 bajtów (ostatnia tura)
- Programy muszą zawierać znak ~ (1 obrót w lewo)
- Programy muszą mieć średnią wartość bajtów mniejszą lub równą 80. (2 obroty w lewo)
- Program musi zawierać 5-10 znaków niealfanumerycznych (3 obroty w lewo!)
- Programy nie mogą zawierać 2 kolejnych małych liter (5 obrotów w lewo)