Code-Bowling
Zostałeś zatrudniony przez Brunswick Bowling, aby stworzyć prosty program do wyświetlania tekstu Code Bowling
na swoich monitorach. Ta firma jest warta ładny grosz i czujesz można oszukać je wręcz odrobiną gotówki.
Opis stanowiska wyraźnie stwierdza, że płacą na zasadzie punktacji, a ty jesteś całkiem pewny, że możesz manipulować ich systemem punktacji na swoją korzyść i uzyskać najwyższą możliwą kontrolę płac od tych facetów. Aby to zrobić, musisz zapakować jak najwięcej kodu do swojego programu / funkcji, nawet jeśli ich system oceniania został zaprojektowany tak, aby ci to uniemożliwić.
Wyciągnij skarbonki, kodujemy!
Wyzwanie
Wyzwaniem jest po prostu wydrukowanie tekstu Code Bowling
, dokładnie tak, jak jest tutaj napisany, z możliwie najwyższym wynikiem. (Patrz sekcja: System punktacji poniżej)
Dopuszczalne są wiodące i końcowe znaki nowej linii (łamanie linii).
Kod może być całym programem lub tylko funkcją wykonywalną.
Zasady
Obowiązkowe: w tym wyzwaniu wykorzystuje się Code-Bowling: Common Rules, Revision 1.0.0 ; Zobacz Meta po szczegóły.
Znak: Stosunek bajtów
W kręceniu kodu liczba znaków jest lepsza niż liczba bajtów. Oczywistym tego powodem jest to, że wielobajtowe znaki Unicode (np. 🁴) mogą być używane zamiast jednobajtowych znaków Unicode do puchnięcia liczby bajtów i sprawią, że kręgle będą bardziej dotyczyły tego, kto zmienia nazwy najbardziej zmiennych na znaki bajtowe o wysokim bajcie niż kto najbardziej strategicznie tworzy znaczący złożony kod.Nazwy zmiennych / funkcji / obiektów
Wszystkie nazwy zmiennych (lub wskaźniki obiektów, nazwy funkcji itp.) Powinny mieć długość 1 znaku. Jedynym dopuszczalnym czasem na użycie nazw zmiennych 2-znakowych jest użycie wszystkich możliwych zmiennych 1-znakowych. Jedynym dopuszczalnym czasem na użycie nazw zmiennych 3-znakowych jest użycie wszystkich możliwych zmiennych 2-znakowych. Itp.Nieużywany
kod Należy użyć całego kodu. Oznacza to, że program nie zawsze musi poprawnie wykonać zadania, jeśli jakikolwiek pojedynczy znak (lub inny zestaw znaków) zostanie / zostanie usunięty. Oczywiście podzbiór programu nie powinien być w stanie samodzielnie wykonać zadania bez reszty programu.Komentarze
Komentarze nie są dozwolone przy liczeniu znaków, chyba że w jakiś sposób zostaną wykorzystane przez twój program / funkcję.
System oceniania:
Wyzwanie Pangram:
Pangram to zdanie, które używa każdej litery przynajmniej raz. (Szybki brązowy lis przeskakuje nad leniwym psem).
To wyzwanie typu posiada systemy punktacji zaprojektowane gdzie to idealne pangram by osiągnąć teoretyczną maksymalną liczbę punktów (choć nie są wymagane , aby wykorzystać każdą postacią co najmniej raz.) Dodatkowo, przy użyciu dowolnego znaku więcej niż raz zacznie poniesienia kary. Wyzwanie to obejmuje nie tylko znaki alfabetyczne.
Metryka punktacji:
- Każda użyta postać zwiększa Twój wynik o 1.
- Wielokrotne użycie dowolnego znaku alfanumerycznego (az, AZ, 0-9) spowoduje odjęcie 3 punktów za powtórzenie (pierwsze użycie nie spowoduje odliczenia).
- Powtarzające się stosowanie podstawowej interpunkcji
([!?.-,":';])
- w tym nawiasów - spowoduje odjęcie 2 punktów za powtórzenie.- Wielokrotne użycie innych znaków ASCII
{`~@#$%^&*_+=|\/><}
- w tym nawiasów klamrowych - spowoduje odjęcie 4 punktów za powtórzenie.- Użycie spacji, tabulatorów i znaków nowej linii spowoduje odjęcie 1 punktu za użycie. Oznacza to, że nie liczą się one do sumy postaci.
- Postacie niewymienione powyżej (Postacie egzotyczne) spowodują odjęcie 1 punktu za użycie. Oznacza to, że nie liczą się one do sumy postaci.
Narzędzie punktacji:
Utworzono automatyczny widget oceniania, który można znaleźć tutaj .
To jest wariant gry w kręgle . Program z najwyższym wynikiem wygrywa! (Ponieważ istnieje maksymalny wynik tego 94
, kto pierwszy go osiągnie (jeśli można go osiągnąć), zostanie oznaczony jako zaakceptowana odpowiedź, chociaż inni mogą swobodnie odpowiadać dla zabawy)