Znamy już ostatecznych (oby ;)) zwycięzców konkursu na najkrótszy skrypt. Jak liczyliśmy oficjalne wyniki?
Krótka przemowa jury w osobie Szymona Piłkowskiego:
Liczy się rozmiar kodu razem z deklaracja funkcji (inaczej trzeba by
dodawać argumenty itp); bez deklaracji alfabetu (niektórzy przysyłali
tak, inni inaczej), ze spacjami dookoła ‘=’ przy deklaracji (dodałem
tym, którzy sobie usunęli), bez spacji pomiędzy function a (), () i {,
{ i kodem, kodem i } – usunąłem tym, którzy mieli.
Testowałem dla kilku rożnych alfabetów, w tym podany przykładowy,
jednoznakowy, zawierający znaki \”!% itp.
Nie testowałem dla bigintow, bo nie przeszłoby nic co używa bitwise, a
nie pisalismy o tym.
Screen z testów:
Po długich naradach (w klimacie wakacyjnym) zdecydowaliśmy wykluczyć rozwiązania oparte na zmiennych globalnych zdefiniowanych w funkcjach. Jednocześnie bardzo przepraszam za wprowadzenie w błąd w jednym z komentarzy – jak widać do trzech razy sztuka, jeśli chodzi o perfekcyjny regulamin. Wszystko jest robione dla funu, mam nadzieję, że zrozumiecie tę wtopę.
Przechodząc do wyników, wygrał Grzegorz Kućmierz (218). Gratulacje!
var alfabet = "abcdefghjpz679";
var convertToLetters = function(n,r,a,l){r='',++n;for(a=alfabet,l=a.length;r=a[--n%l]+r,n=n/l|0;);return r};
var convertToNumber = function(s,r,a,i){a=alfabet;for(i=0;s[i];)r=~~r*a.length-~a.indexOf(s[i++]);return~-r};
Drugie miejsce zajął Piotr Koszuliński (220)!
var alfabet = 'abcdefghjpz679';
var convertToLetters = function(n,a,l){a=alfabet,l=a.length;return(n<l?'':convertToLetters(n/l-1|0))+a[n%l]};
var convertToNumber = function(s){for(var d=alfabet,i=0,v=0;s[i];v=d.length*v+d.indexOf(s[i++])+1);return--v};
Trzecie natomiast Lech Wilczyński (221):
var alfabet="abcdefghjpz679";
var convertToLetters=function(n){var a=alfabet,l=a.length;return n<l?a[n]:convertToLetters(n/l-1|0)+a[n%l]};
var convertToNumber=function(c){var t=0,d=alfabet,x=-1;for(;c[t];x=++x*d.length+d.search(c[t++]));return x};
Jednocześnie w ramach wynagrodzenia tego zamieszania dotychczasowym zwycięzcom (Bartkowi Szopce oraz Gustaffowi Weldonowi) chciałbym również wręczyć wejściówki na konferencję onGameStart. Za bilety podziękowania niezmiennie należą się Michałowi Budzyńskiemu!


