Gra w Siódemki przebiega w następujący sposób: ngracze siedzą w kręgu i zaczynają liczyć od 1, przechodząc w lewo (lub od gracza Ado gracza B).
Gdy liczba, pktóra zawiera 7OR, jest podzielna, 7zostanie osiągnięty, wówczas gracz, który wypowiedział numer p-1, po tym, jak następny gracz powie p, musi powiedzieć, p+1a kolejność mówienia zmienia się. Na przykład, jeśli gracz Bmówi 6, gracz Cmówi 7, Bmówi 8, a gracz Amówi 9.
Uwaga: dla tych, którzy chcą grać w prawdziwym życiu, jeśli dana osoba zapomni liczbę (lub w wersji, w której sevensnie podano, przypadkowo mówi a seven), zostaną wyeliminowani z kręgu, ale pomijamy ten szczegół w tym wyzwaniu.
Samo wyzwanie polega na wydrukowaniu liczb, które każdy gracz powinien wypowiadać w idealnej grze Sevens, aż do wkładu mdla ngraczy wejściowych .
Jako przykład, w którym pięć osób, A, B, C, D, i Esą do gry aż dotrą 30. Grają w ten sposób
A: 1 6 8 13 15 19 23 30
B: 2 7* 12 16 18 24
C: 3 11 17* 25
D: 4 10 21* 26 28*
E: 5 9 14* 20 22 27*29
gdzie sevenssą oznaczone *. Pamiętaj, że w 27i 28cofamy się dwukrotnie, a gra jest kontynuowana „normalnie” od Ddo E.
Należy pamiętać, że dane wyjściowe nie muszą być w powyższym formacie. Po prostu wydrukowałem to w ten sposób dla większej przejrzystości.
Zasady
Dane wejściowe to dwie liczby całkowite w dowolnej kolejności,
mreprezentujące ostatnią liczbę do powiedzenia,nreprezentującą liczbę graczy.Wyjściem może być kilka tablic lub kilka ciągów, po jednym dla każdego odtwarzacza. Jeśli używasz ciągów znaków, nie musisz używać separatorów (jeśli jednak możesz dodać trochę w testach kodu, będziemy wdzięczni za czytelność). Jeśli rzeczywiście możesz wydrukować je w kółko, jest to również do przyjęcia i byłoby też całkiem fajne.
Dane wyjściowe nie muszą określać, którzy gracze są tymi, którzy mówią (to całkiem oczywiste, że pierwszy gracz jest tym, który mówi
1), chociaż jeśli wynik nie zostanie posortowany z jakiegokolwiek powodu, należy wyjaśnić, który gracz mówi, który zestaw liczb . Pominięcie graczy, którzy nic nie mówią, jest również dozwolone, jeśli jasno określisz, którzy gracze mówią. Poniżej dodam kilka przykładów możliwych wyników.To jest kod golfowy, więc wygrywa najmniejsza liczba bajtów.
Jak zawsze, jeśli problem jest niejasny, daj mi znać. Powodzenia i dobrej gry w golfa!
Przykłady
>>> sevens_string(30, 5, " ")
'1 6 8 13 15 19 23 30'
'2 7 12 16 18 24'
'3 11 17 25'
'4 10 21 26 28'
'5 9 14 20 22 27 29'
>>> sevens_string(42, 5)
'16813151923303539'
'27121618243140'
'31117253241'
'410212628333742'
'591420222729343638'
>>> sevens_array(20, 3)
[1, 4, 7, 10, 13, 15, 19]
[2, 5, 9, 12, 16, 18]
[3, 6, 8, 11, 14, 17, 20]
>>> sevens_array(18, 10)
[1, 13, 15]
[2, 12, 16, 18]
[3, 11, 17]
[4, 10]
[5, 9]
[6, 8]
[7]
[]
[]
[14]

1 2 3 4 1 2 3 2 1 4 3 2 1 4 1). Nie twierdzę, że jest to lepsze lub gorsze pod względem wyzwania: po prostu byłoby bardziej przydatne w prawdziwym świecie.