Więcej Codington Crescent

Sep 20 2020

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

  1. Każdy gracz ma swój własny program, który będzie dodawać / zmieniać postacie. Nazywa się to ich działającym programem .
W ten sposób jedynym aspektem związanym z łańcuchem odpowiedzi są zasady. Każdy używa własnego programu do biegania. Nikt w ogóle nie udostępnia programu
  1. 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 .

  2. Uruchomione programy mogą zmieniać języki między turami.

  3. 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.

  4. 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łą).

  5. Gra jest kontynuowana do momentu, gdy uruchomiony program osiągnie docelowy wynik.

  6. 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:

  1. Zakręty mogą nie doprowadzić do celu końcowego
  2. 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:

  1. 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).

  2. 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

3 SunnyMoon Sep 20 2020 at 22:05

05AB1E , skręć 3

$XY~sDOsg/*+

Wypróbuj online!

(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!)

2 Noname Sep 20 2020 at 08:20

Io , 20 bajtów

Zwraca średnią + 1.

method(~,~average+1)

Wypróbuj online!

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
2 pxeger Sep 20 2020 at 18:42

Python 3 , 23 bajty, obrót 2

lambda l:sum(l)/~len(l)

Wypróbuj online!

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 )
1 pppery Oct 05 2020 at 00:31

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.

Wypróbuj online!

Poprzednia odpowiedź

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)