Strona gナづウwna - poczytaj o JavaScript, jQuery, CSS i HTML5

Wpisy z kategorii Tech

Konkurs JavaScript na najkrótszy skrypt

Szymon Piłkowski wpadł na pomysł, by zrealizować konkurs na najkrótszy skrypt będący rozwiązaniem problemu, nad którym ostatnio pracował. Idea bardzo szybko przypadła mi do gustu i momentalnie uzyskała ostateczną formę.

O co chodzi?

Przypuśćmy, że pracujemy nad skryptem, który indeksuje odpowiedzi do pytań używając liter, np.:

Jak masz na imię?

  1. Adam
  2. Adrian
  3. Bartosz
  4. Dariusz

Weźmy jednak pod uwagę, że pracujemy ze skończonym alfabetem, np. abcd, wtedy pytanie z sześcioma odpowiedziami będzie wyglądać tak:

a. Adam
b. Adrian
c. Bartosz
d. Dariusz
aa. Hieronim
ab. Łukasz

Czternaście odpowiedzi?

a. Adam
b. Adrian
c. Bartosz
d. Dariusz
aa. Hieronim
ab. Łukasz
ac. Marian
ad. Paweł
ba. Piotr
bb. Prometeusz
bc. Protazy
bd. Robert
ca. Władysław
cb. Zbigniew

Potem analogicznie np. przy większych liczbach aaa, aab, aac, aad, aba, abb, abc, abd etc. Mądrym głowom na pewno przypomina się pewien dział matematyki.

To, co chcemy uzyskać, to dwie funkcje.

Pierwsza zwróci odpowiedni układ liter dla n-tej odpowiedzi. W powyższym przypadku, dla szóstej odpowiedzi (licząc od zera) będzie to: ac.
Druga zachowa się dokładnie odwrotnie, na podstawie układu liter, np. cd, zwróci nam, że chodzi o 15. odpowiedź.

Uznajemy, że kod startowy wygląda tak, jak poniżej. Wielokropek oznacza, że możecie dokonywać tam modyfikacji.

var alfabet = "abcdefghjpz679";
var convertToLetters = function(...){...};
var convertToNumber = function(...){...};

Zabroniona jest jakakolwiek modyfikacja skryptu startowego, choćby usunięcie średników!

Input/output

convertToLetters(6); // "g"
convertToNumber("a"); // 0
convertToNumber("ab"); // 15

Kod ma działać dla dowolnego alfabetu bez powtórzeń, składającego się ze znaków ASCII. Co za tym idzie, rozważyć powinniście też jednoznakowy alfabet. Zabronione jest używanie zewnętrznych bibliotek, liczy się tylko czysty JavaScript (ECMA 3/5). Wygrywa osoba, która przedstawi działające rozwiązanie, posiadające jak najmniej znaków. Liczymy je dla każdej funkcji oddzielnie i sumujemy. Pod uwagę bierzemy oczywiście białe znaki jak spacja czy nowy wiersz!

Zakładamy, że wszystko ma działać dla n >= 0 (funkcja convertToLetters). Zabronione są używanie predefiniowanych zmiennych globalnych (natomiast możecie je deklarować w funkcjach) i zmiana natywnych prototypów.

Rozwiązania będziemy testować w środowisku node.js v0.4.7 (i tu docelowo skrypt ma działać) bez dodatkowych modułów.

Rozwiązania i terminy

Konkurs trwa do końca lipca. Rozwiązania należy wysyłać używając prostego formularza. W przypadku kilku zwycięzców zadecyduje termin oddania pracy.

Nagrody

Wyróżnimy trzy skrypty! Każda osoba z podium dostanie wejściówkę na konferencję onGameStart, która odbędzie się w Warszawie, 22-23 września (podziękowania tutaj dla Michała Budzyńskiego). Ponadto, dla wszystkich wyróżnionych mamy naklejki tej konferencji, a także smycze Mozilli.

Od nas natomiast, zwycięzca może wybrać dla siebie nagrodę główną pomiędzy licencją Personal License na IDE WebStorm i książką Christiana JohansenaTest-Driven JavaScript Development. To, co zostanie, automatycznie przechodzi w ręce osoby na drugim miejscu.

Let’s get ready to rumble!

Zmiany na JS News – stwórzmy społeczność na FB!

Za JSNews.pl:

Stało się to, co musiało się stać – JS News ewoluowało – założyliśmy grupę na Facebooku.

Dlaczego?

Zauważyliśmy, że coraz przyjemniej pisze się nam na tematy otwartych technologii sieciowych w kuluarach, w zamkniętych grupach znajomych. Pomyśleliśmy jednak, że dobrze by było je poszerzyć.

Zauważyliśmy też, że blog zaczyna być zbyt ciężką formą dla informowania o tym, co się dzieje w rozpędzonym do granic świecie Internetu, a tym bardziej do prowokowania swobodnych dyskusji.

Czego się spodziewać?

Najciekawszych doniesień ze świata Open Web – takie, o których chce się gadać albo przynajmniej warto wiedzieć. Będzie się tam także pojawiać wiele linków i postów dotyczących zaawansowanych zagadnień programowania.

Naszym celem jest nie tyle informowanie i edukowanie, co stworzenie miejsca, w którym będzie się nam dobrze dyskutować na rozwijające nas tematy. Zamiast wrzucać takie posty na swoich prywatnych tablicach i debatować w małych kręgach znajomych, będziemy je publikować właśnie tam. Ot i wszystko.

Co dalej z JSNews.pl?

Na tę chwilę nie zmienia się nic. Z dużym prawdopodobieństwem można jednak założyć, że to właśnie na Facebooku wykazywać będziemy się większą aktywnością i jeśli nasz nowy projekt się powiedzie, to niniejszą stronę z pewnością czeka duża transformacja.

Zapraszamy na JS News on Facebook!

Głosowy debugger JS

Parę miesięcy temu podczas rozmowy z Szymonem Piłkowskim powstał pomysł napisania głosowego debuggera dla JavaScriptu. Cały czas zainspirowany tą szaloną ideą skończyłem dzisiaj działający prototyp, który możecie wypróbować. Projekt działa pod najnowszym Chrome i Firefoxem. Całość można również znaleźć na GitHubie.

Blogi front-endowe

Falsy Values z mojej perspektywy

Rozwiązanie konkursu

Wolontariusze na Falsy Values

Falsy Values – mała niespodzianka dla Czytelników Ferrante.pl

Wygraj wejściówkę na Falsy Values

Falsy Values – już za dwa tygodnie!

Pages: newer posts 1 2 3 ... 6 7 8 9 10 ... 20 21 22 older posts