Wyzwanie
Utwórz klawiaturę GUI z jak najmniejszą liczbą znaków.
Przykład
Ponieważ było to zadanie na jednym z moich kursów, nie mogę pokazać kodu źródłowego. Oto zrzut ekranu mojej klawiatury.
W tym przykładzie moje klucze były typu JButton
i użyłem syntezatora Midi do wytworzenia dźwięku (z domyślnymi wartościami obwiedni ADSR).
Zasady
- Ci są dopuszczone do korzystania ze standardowych bibliotek zewnętrznych.
- Bądź kreatywny ze swoim dźwiękiem. Możesz użyć 8-bit, sitar itp.
- Dla uproszczenia możesz mieć pięć kluczy; czarno-biały, od C do E (pierwsze pięć klawiszy na mojej klawiaturze).
- Co najważniejsze ... pokaż swoją pracę!
UWAGA : W zależności od języka, z którym chcesz pracować, może to być dość duże zadanie.
To jest moje pierwsze pytanie dotyczące SE Code Golf. Jeśli coś jest niejasne, poproś o dalsze szczegóły.
EDYCJA : Terminem tego wyzwania będzie 9/22/12. Jeśli opublikujesz odpowiedź po tej dacie, przejrzę ją niezależnie (i być może dasz +1).
Odpowiedzi:
Mathematica
319 259255Edycja: klawisze teraz naciskają (jako przyciski) po kliknięciu.
Spowoduje to odtworzenie nut fortepianu {„C”, „C #”, „D”, „D #”, „E”}, gdzie „C” jest środkiem C.
z[n_]
gra nutę.Klawiaturę można rozszerzyć do 18 klawiszy, używając mniej niż dwa znaki:
źródło
w = {67, 300}
uzyskać twój wynik; jakiś pomysł, dlaczego różnica? Czy mogę również edytować ten kod, aby go skrócić, jeśli mogę?w = {67,300}
działa dobrze w wersji 9, więc jeśli chcesz to zmienić lub skrócić kod, przejdź od razu. Dostosowanie rozmiaru przycisku było trafione lub pominięte. Dziwne rzeczy wydarzyły się z powodów, których nie potrafię wyjaśnić. (Na przykład dodanie większej liczby przycisków wpływa na proporcje oryginalnych przycisków.)Strona internetowa (840/796 znaków)
>>> Zacznij grać (Internet Explorer nie jest obsługiwany z wielu powodów; Google Chrome i Opera działają najlepiej).
Prawdopodobnie mógłbym to trochę skrócić, ale to dobry początek. Niższy wynik to zamiana wszystkich wystąpień
na samą postać i usunięcie słowa kluczowegonew
, przy czym ta ostatnia zmiana łamie zgodność z Google Chrome.Zapisz ten kod jako plik tekstowy o nazwie kończącej się na .htm lub .html i otwórz go w Chrome lub Operze (Safari może również działać), lub po prostu otwórz stronę JSBin rozwiązania, aby rozpocząć odtwarzanie. Ponownie wykorzystałem nagłówek pliku WAV z mojego rozwiązania do problemu golfowego z kodem Twinkle Twinkle Little Star .
Ważną cechą jest to, że dźwięk z czasem maleje. Aby zaobserwować to zachowanie, spróbuj przytrzymać klawisz przez kilka sekund i słuchać, co się stanie.
Oto bardziej czytelna wersja kodu:
źródło
Groovy: 577 (703 z białymi spacjami)
Pierwsze 5 nut. Inne można łatwo dodać, jest to nieco dynamiczne.
Cholerna huśtawka. Prawdopodobnie przy swing swing byłoby lepiej.
Odtwarza przez JFugue.
Na github: https://github.com/wpiasecki/glissando/blob/master/src/br/glissando/Piano.groovy
Na groovy 2.0.2
źródło
R - 491 znaków
Trochę się spóźniłem, ale wczoraj widziałem ten post.
Działa na komputerze Mac, używa playRWave oraz pakietów
tuneR
isplancs
.Nie golfowany:
źródło