Modifiye Boggle Özellikli Kod ile Modifiye Boggle Checker


19

Arka fon

Boggle , oyuncuların 4'e 4'lük rastgele alfabe tahtalarında İngilizce kelimeler bulmaları gereken bir masa oyunudur. Kelimeler, tahta üzerinde sırayla bitişik hücreler seçilerek oluşturulabilir. ("bitişik" yatay, dikey veya çapraz olarak bitişik anlamına gelir.) Ayrıca, aynı hücre bir sözcükte birden çok kez kullanılamaz.

Aşağıdaki örnek bir tablodur:

I L A W
B N G E
I U A O
A S R L

Bu tahtada BINGO, ORANGEve WEARSgeçerli bir deyişle, ancak SURGEve RUSSIAdeğildir:

  • SURGE: Tahtada bitişik bir çift yok RG.
  • RUSSIA: Siki kez kullanılamaz.

Değiştirilmiş Boggle , aşağıdaki kurallara sahip, değiştirilmiş bir Boggle sürümüdür:

  • Kart boyutu n-by- olup n, burada nherhangi bir pozitif tamsayı olabilir.
  • Her hücre, 0 ile 255 arasında bir bayt içerebilir.
  • Bir hücre bir kereden fazla kullanılabilir, ancak arka arkaya iki kez kullanılamaz .

Ek olarak, yukarıdaki örnek tahtası kullanılarak BINGO, ORANGEve WEARS, LANGUAGE(çünkü geçerli bir dize haline gelir Giki kez kullanılmış, ancak iki kez üst üste edilir), ancak RUSSIA(nedeniyle hala değildir SSçifti).

Kod parçası kullanan başka bir örnek. Dize from itertools import*\nşu gemide bulunan, ancak olabilir from itertoosl import*ya from itertools import *:

f   i   ' ' s
r   t   m   l
e   o   o   p
\n  *   t   r

Diziyi oeşleştirmek için iki seçeneğe ihtiyacınız olduğunu unutmayın oo.

Meydan okuma

Değiştirilmiş Boggle kartı B(herhangi bir boyutta) ve bir dize verildiğinde s, bulunup sbulunamayacağını belirleyen bir işlev veya program yazın B.

Kısıtlamalar

Kodunuzun kendisi de bir Değiştirilmiş Boggle kartına sığmalıdır b. Yani, bgönderiminizde tahtayı kodunuzla birlikte göstermelisiniz , böylece işlev / program verilirse doğru bve kodunuzu girdi olarak verir.

puanlama

Gönderdiğiniz puan, bkodunuza uyabileceğiniz en küçük kartın yan uzunluğudur . Bağlar olağan kurallarına göre bozulur , yani kodunuzun bayt cinsinden uzunluğu. En düşük puana sahip sunum (her iki kriter için) kazanır.

Örneğin, from itertools import*\n4 (yukarıdaki kartı kullanarak) puanı ve 23 bayt kod uzunluğu vardır.

Giriş ve çıkış

Giriş için hem Bve için uygun herhangi bir yöntemi alabilirsiniz s. Bu, 2B veya düzleştirilmiş veya mantıklı olan karakter listelerini ve charcodes listesini içerir. Ayrıca, isteğe bağlı olarak kart boyutunu girişin bir parçası olarak alabilirsiniz.

Çıktı için aşağıdakilerden birini seçebilirsiniz:

  • Dilinizin kurallarına uygun olan gerçek ve yanlış değerler veya
  • Sırasıyla doğru ve yanlış için önceden tanımlanmış bir değer.

Lütfen gönderiminizde giriş / çıkış yönteminizi belirtin.


Ben 2x2 sığabilecek çok küçük bir karakter kümesine sahip bazı esolang şüpheli xD kazanacak
HyperNeutrino

Ve herhangi bir Unary programı 4 puan alacaktır , ancak 4 farklı sembol kullanarak etkili bir dile karşı bağ kuralı nedeniyle kaybedileceği neredeyse garanti edilmektedir.
Arnauld

@Arnauld düşündüm de belki tinyBF ve iki bitişik sembolleri gerektiğinde sadece bir yapmak +=+=veya böyle bir şey. Sorun ==çıkış fonksiyonudur ...
HyperNeutrino

2
@ l4m2 Böyle bir dil ile çözme her zaman hoş karşılanır, ancak Jo King'in yukarıdaki uyarılara dikkat edin.
Bubbler

3
Bu gerçekten kısıtlı bir kaynak mı? Hem kod hem de kodun sığabileceği mümkün olan en küçük Boggle panosunu bulmanız gereken sadece iki katlı bir meydan okuma (golf dışı diller için daha fazla).
Outgolfer Erik

Yanıtlar:


10

Python 2, skor 3, 20972 bayt

exec'cecxc%c'%(1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)+…

Tam kod çıktısıdır: Çevrimiçi deneyin!

Boggle tahtasına uyar:

e x (
c % 1
' + )

Bu programın kodunu çözer ve yürütür:

cecxc=any
c,cec=input()
cxec=len(c)
cexec=lambda    cxc,cexc,c,cec:cexc<=''or   cxc[cec][c]==cexc[0]>0<cecxc(cexec(cxc,cexc[1:],cxcxc,cxcec)for cxcxc   in(c-(c>0),c,c+(+1+c<cxec))for  cxcec   in(cec-(cec>0),cec,cec+(+1+cec<cxec))if(cxcxc,cxcec)!=(c,cec))
cxc=range(cxec)
print   cecxc(cexec(c,cec,cexc,cxec)for cexc    in  cxc for cxec    in  cxc)

Hangi gibi girdi alır: ['ILAW','BNGE','IUAO','ASRL'], 'LANGUAGE'



5

CJam , skor 2, 9351 bayt

'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~)))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))~'))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))~'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))~'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))~

Çevrimiçi deneyin! Gibi girdi bekliyor:

["ILWA" "BNGE" "IUAO" "ASRL"]
LANGUAGE

ve Boggle tahtasına uyar:

' )
~ )

Dize oluşturur l~:Q,:K;{\:Y;\:X;:C,!_{;QY=X=C0==_{;[X(XX)]K,&[Y(YY)]K,&m*[XY]a-C1>:D;{~DF}%:|}&}|}:F;l:R;K,2m*{~RF}%:|~sonra CJam kodu olarak değerlendirerek.


Bir yerde yerleşik bir yer yoksa (size bakıyorum, Mathematica), 2 puan alabileceğiniz en düşük değerdir. Yani şimdi zorluk aynı boyutta daha kısa bir versiyon yapmaktır.
Mühendis Tost

@EngineerToast Sadece herhangi bir yerleşik değil. Bu, 1 baytlık bir yerleşik olmalıdır, çünkü aynı boggle alanını arka arkaya bir kereden fazla kullanamazsınız.
mbomb007

@ mbomb007 Bu tam olarak kastettiğim ama açık bir şekilde söylemedim. Açıklama, Unary gibi dilleri veya aynı karakterin tekrarladığı diğer dilleri dışlar.
Mühendis Tost

3

Temiz , skor 12 (175 bayt)

(Bu neredeyse kesinlikle bir esolang ve muhtemelen normal diller tarafından geride bırakılacaktır.)

import StdEnv;>[]_ _ _ _=True;>[c:s]i j n a=i<n&&j<n&&i>=0&&j>=0&&a.[i,j]==c&&or[>s k l n a\\k<-[i-1..i+1],l<-[j-1..j+1]|i<>k||j<>l];$n c a=or[>c i j n a\\i<-[0..n],j<-[0..n]]

Bu $ :: Int [Char] {#String} -> Bool, ikinci argümanın (kelime), birinci argümanın genişliği olarak verilen üçüncü argümanda (tahta) bulunup bulunmadığını kontrol eden bir işlevi tanımlar .

Bunun uygun olduğu tahtada (aşağıya bakınız), *kullanılmayan yerleri işaretler. 128 etkin bir şekilde kullanılmaktadır (bir deyişle, boyut 12 x 12 = 144 bir gemide, bu 16 vardır verimliliği arasında 175/128 ≈ 1.37 ). Aynı programı 11 × 11'de almak mümkün olabilir, ancak bunların hepsi elle yapılır ve çok sıkıcıdır; 11 × 11'e ulaşmaya çalışırsam patronum muhtemelen mutlu olmazdı.

* * & & * * * * * * * ;
s [ n < j * * u r T > v
  > r & i > * e =   [ n
l k o & 0 = n   ; _ ] E
  & a . = ] a j i > [ d
a n & c [ j . + ] s c t
\ k < - i , - . 1 | : S
\ * 1 l . + 1 = i j |  
[ i \ . , ] o a < > k t
0 - < \ a   r >   l ] r
. j , * n j [ i c $ ; o
. n ] ] * *     n i m p

Çevrimiçi deneyin (programın kendisi girdi olarak)!


2

Java, skor 23, 538507 bayt

NSFW

import java.util.function.*;import java.util.stream.*;class B{static BiFunction<char[][],String,BiFunction<Integer,Integer,Byte>>f;{f=(b,s)->(i,j)->{try{if(b[i][j]!=s.charAt(0))return 0;}catch(Exception e){return 0;}if(s.length()<2)return 1;byte t=0;for(int k=9;k-->1;){t|=f.apply(b,s.substring(1)).apply(i+~k%3+1,j+~(k/3)%3+1);}return t;};BiFunction<char[][],String,Byte>g=(b,s)->{int l=b.length;return (byte)IntStream.range(0,l*l).map(i->f.apply(b,s).apply(i%l,i/l)).reduce((x,y)->x+y-x*y).getAsInt();};}}

Çevrimiçi deneyin!

JDK 9 ile derlenmiştir, ancak 8 ile çalışmalıdır.

Ithalat ve statik alan (aslında gerekli) ile ne yapacağımı bilmiyordum, bu yüzden sadece tüm sınıfı almak ve lambdas bir başlatıcı sopa. Daha gsonra lambda bir 2D diziye ve bir dizeye uygulanabilir ve dize 1tahtada ise ve 0değilse (a Byte, 3 karakterden kısa Integer) döner .

Kredi bu adres komşu hücrelere yol tek kodlamak daha kısa (benim durumumda) bir için adam.

Bu canavarlığı yapma sürecinde bir yerde lambdas ile çalışmasını sağlamak için yatırım yaptım, bu gerçekleşene kadar giderek kötüleşti. Diğer cevaplara bile yaklaşmıyor ve muhtemelen Java'daki en iyi çözüme bile yakın değil, ama hey, 23x23 tahtaya oldukça düzgün bir şekilde uyuyor (bu en uygun değil, belki de programın kendisinden daha yakın). :

duce((x,y)->x+y-x*y).ge
e l=b.length;return (bt
rt3+1,j+~(k/3)%3+1);}yA
.n%te t=0;for(int k=rts
)iky0;}catchExcepti9e)I
){~b (b,s)->(i,j)-o;tIn
l>+;n=ring,iFunct>nkunt
/-i1rftass B{stai{ -rt(
i)( u{Slport jatote-nS)
,synt;,cmutil.vinr)> t;
l,lref];i.porfac<y{1tr}
%bpur>[*;amitu. I{r;}e;
i(pt)>].*vaj nuBnie);a}
y=ae)e[m.noitctitft{Bm}
lg.r0traerts.liFe(uti.}
p>))(yhc<noitcnugbr|Fr 
pe12tB,regetnI,re[n=ua 
at(<Arahc.s=!]j[]i fng 
.yg)(htgnel.s(fi};0.ce 
)Bnirtsbus.s,b(ylppat( 
s,gnirtS,][][rahc<noi0 
,b(ylppa.f>-i(pm.)l*l,                            

Tabii ki, o noktada bunu elle yapmaya çalışmanın bir anlamı yoktu. Bir bonus olarak, kodu tahtaya sıkıştırmak için kullandığım (naif) fonksiyon:

static char[][] toBoggleBoard(String s, int n) {

    char[][] board = new char[n][n];
    int i = n / 2;
    int j = i;
    int[] d = {1, 0};

    s = s + s.charAt(s.length() - 1); //the last char gets eaten don't ask me why PS editing loop condition does make it work but causes a StringIndexOutOfBoundsException
    board[i][j] = s.charAt(0);
    s = s.substring(1);
    while (s.length() > 0)
    {
        int[] ra = add(d, right(d));
        int[] r = right(d);
        int[] l = left(d);

        if (board[i + d[0]][j + d[1]] > 0)
        {
            if (board[i + d[0]][j + d[1]] == s.charAt(0))
            {
                i += d[0];
                j += d[1];
                s = s.substring(1);
            }
            else
            {
                i += l[0];
                j += l[1];
                board[i][j] = s.charAt(0);
                s = s.substring(1);
            }
        }
        else if (board[i + ra[0]][j + ra[1]] == s.charAt(0))
        {
            i += ra[0];
            j += ra[1];
            s = s.substring(1);
        }
        else if (board[i + r[0]][j + r[1]] > 0)
        {
            i += d[0];
            j += d[1];
            board[i][j] = s.charAt(0);
            s = s.substring(1);
        }
        else
        {
            int[] rb = sub(r, d);
            d = r;
            if (board[i + rb[0]][j + rb[1]] > 0)
            {
                continue;
            }
            else
            {
                i += d[0];
                j += d[1];
                board[i][j] = s.charAt(0);
                s = s.substring(1);
            }   
        }
    }

    for (int k = 0; k < board.length; ++k)
    {
        for (int l = 0; l < board.length; ++l)
        {
            if (board[k][l] == 0)
            {
                board[k][l] = ' ';
            }
        }
    }

    return board;
}

static int[] left(int[] d) {
    return new int[]{-d[1], d[0]};
}

static int[] right(int[] d) {
    return new int[]{d[1], -d[0]};
}

static int[] add(int[] x, int[] y) {
    return new int[]{x[0] + y[0], x[1] + y[1]};
}

static int[] sub(int[] x, int[] y) {
    return new int[]{x[0] - y[0], x[1] - y[1]};
}

Yılan uygulamasının çalışmadığı bir spirale girdisini eşleştirir ve mümkünse karakterleri dışarıda tutar. Oldukça basit, bu yüzden muhtemelen geliştirilebilir ve geriye doğru yönde karakterler eklemeyi unuttum (güncelleme: ekledim yanlış sonuçlar üretti) , bu yüzden muhtemelen bir veya iki karakteri tıraş edebilirim ama 22x22.

Düzenleme: Olması gerekmeyen yerlerde 6 boşluk kaldırıldı. Dizi dizinleri üzerindeki bir denetimi bir catch ile değiştirerek 13 bayt kaydedildi. Tahta boyutunu bir int.


1

Jelly , 2316 bayt, skor 3

1111111111111111111111111111111,11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,111111111111111111111111111111111111111111111111,11111111111111111111,11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111111111,11111111111111111111111111111111111111111111111,111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111,1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111D§ịØJv

Çevrimiçi deneyin!

Yazı tahtası:

1,v
D1J
§ịØ

Not: Bu (biraz) önemsiz bir çözümdür. Fikir için Lynn'e teşekkür ederiz .

İade durumunda boş olmayan bir liste sbulunabilir Bve boş liste değilse. Eklenen altbilgi bunu netleştirmeye yardımcı olur.


Buna izin verilip verilmediğinden emin değildim. sBulunamadığı takdirde 0 ya da bulunabildiği takdirde pozitif bir tam sayı döndürmek istedim . Ancak kurallar, "sırasıyla doğru ve yanlış için önceden tanımlanmış bir değer" olduğunu belirtir. Yoksa Jelly'deki yanlış / doğru toplantı için boş / boş değil mi?

@Keelan Jelly'nin, varsayılan olarak, bir değerin gerçekliğini tanımlayan "benzeri" yapısı, boş bir listenin sahte olduğunu ve diğer listelerin gerçek olduğunu düşünecektir. Gerçekten sadece Python 3'ün sözleşmesi (Jelly'in uygulandığı budur).
Outgolfer Erik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.