수정 된 Boggle 가능 코드가있는 수정 된 Boggle Checker


19

배경

Boggle 은 플레이어가 4x4의 무작위 알파벳 보드에서 영어 단어를 찾아야하는 보드 게임입니다. 보드에서 순차적으로 인접한 셀을 선택하여 단어를 구성 할 수 있습니다. ( "인접한"은 가로, 세로 또는 대각선으로 인접한 것을 의미합니다.) 또한 같은 셀을 단어에서 두 번 이상 사용할 수 없습니다.

다음은 예제 보드입니다.

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

이 보드에서 BINGO, ORANGE그리고 WEARS올바른 단어가 있지만 SURGERUSSIA되지 않습니다 :

  • SURGE: 보드에가있는 인접 쌍이 없습니다 RG.
  • RUSSIA: S두 번 사용할 수 없습니다.

수정 된 BoggleBoggle 의 수정 된 버전으로 다음 규칙을 따릅니다.

  • 보드 크기는 nbyby n이며, n양의 정수일 수 있습니다.
  • 각 셀은 0에서 255 사이의 1 바이트를 포함 할 수 있습니다.
  • 셀은 두 번 이상 사용할 수 있지만번에 두 번 사용할 수는 없습니다 .

이외에, 상기 예 보드를 이용하여 BINGO, ORANGE및은 WEARS, LANGUAGE(이후 유효한 스트링된다 G회 사용할 수 있지만 회 연속된다)하지만 RUSSIA(인해 여전히없는 SS쌍).

다음은 코드 조각을 사용하는 다른 예입니다. 문자열은 from itertools import*\n다음 보드에서 찾을 수 있지만 수 있습니다 from itertoosl import*또는 from itertools import *:

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

시퀀스 o를 일치 시키려면 2가 필요 oo합니다.

도전

수정 된 BOGGLE 보드 주어진하는 기능 또는 프로그램을 작성 B(임의 크기) 및 문자열 s하면 판정 s에서 찾을 수있다 B.

제한 사항

코드 자체도 Modified Boggle 보드에 적합해야합니다 b. 즉, b제출시 보드 를 코드와 함께 보여 주어야 함수 / 프로그램이 제공 b되고 코드가 입력으로 true로 출력 될 수 있습니다.

채점

제출 점수는 b코드에 맞는 가장 작은 보드의 측면 길이입니다 . 타이는 일반적인 규칙, 즉 코드 길이 (바이트)로 구분됩니다. 가장 낮은 점수 (두 기준 모두)를 가진 제출이 승리합니다.

예를 들어, from itertools import*\n점수가 4 (위의 보드 사용)이고 코드 길이는 23 바이트입니다.

입력과 출력

입력의 경우 B및에 편리한 방법을 사용할 수 있습니다 s. 여기에는 문자 목록 및 문자 코드 목록, 2D 또는 평면화 또는 의미가있는 것이 포함됩니다. 또한 선택적으로 보드 크기를 입력의 일부로 취할 수 있습니다.

출력을 위해 다음 중 하나를 선택할 수 있습니다.

  • 언어 관습에 따른 진실하고 허위적인 가치
  • 각각 true 및 false에 대해 사전 정의 된 하나의 값.

제출시 입력 / 출력 방법을 지정하십시오.


나는의 xD를 이길 × 2에 들어갈 수있는 매우 작은 캐릭터 세트를 가지고 어떤 esolang 의심
HyperNeutrino

그리고 모든 단항 프로그램은 4 점을 얻지 만 4 개의 별개의 기호를 효율적으로 사용하는 언어에 대한 타이 규칙 때문에지는 것이 거의 보장됩니다.
Arnauld

@ Arnauld 나는 아마도 tinyBF를 생각하고 있었고 두 개의 인접한 기호가 필요할 때 그냥 그렇게 할 수 있습니다 +=+=. 문제는 ==출력 기능입니다.
HyperNeutrino

2
@ l4m2 그러한 언어로 해결하는 것은 언제나 환영하지만, 위의 Jo King의 경고에주의하십시오.
Bubbler

3
이것은 정말 제한적인 소스 입니까? 코드와 코드가 맞는 가장 작은 Boggle 보드를 모두 찾아야하는 두 가지 과제 (골프가 아닌 언어의 경우 더 많은 문제)라고 생각합니다.
Outgolfer Erik

답변:


10

파이썬 2, 3, 20972 바이트

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)+…

전체 코드는 다음의 결과입니다. 온라인으로 사용해보십시오!

Boggle 보드에 맞습니다 :

e x (
c % 1
' + )

이 프로그램을 디코딩하고 실행합니다 :

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)

다음과 같은 입력이 필요합니다. ['ILAW','BNGE','IUAO','ASRL'], 'LANGUAGE'


흠, 젤리에서 할 수있는 방법찾은 것 같아
Outgolfer Erik

5

CJam , 점수 2, 9351 바이트

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

온라인으로 사용해보십시오! 다음과 같은 입력이 필요합니다.

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

Boggle 보드에 맞습니다.

' )
~ )

문자열을 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}%:|~구성한 후이를 CJam 코드로 평가합니다.


어딘가에 내장이 존재하지 않는 한 (Mathematica를보고 있음) 점수 2는 가장 낮은 점수입니다. 따라서 이제는 동일한 크기의 더 짧은 버전을 만드는 것이 과제입니다.
엔지니어 토스트

@EngineerToast 모든 내장 기능이 아닙니다. 동일한 boggle 공간을 한 번에 두 번 이상 사용할 수 없으므로 1 바이트 내장이어야합니다.
mbomb007

@ mbomb007 이것이 정확히 의미하는 바이지만 명시 적으로 말하지 않았습니다. 설명은 단항식이나 같은 문자가 반복되는 언어를 배제합니다.
엔지니어 토스트

3

깨끗함 , 12 점 (175 바이트)

(이것은 거의 확실히 esolang과 아마도 일반 언어에 의해 아웃 고프 될 것입니다.)

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]]

이것은 $ :: Int [Char] {#String} -> Bool첫 번째 인수가 너비로 주어지면 두 번째 인수 (단어)가 세 번째 인수 (보드)에서 발견 될 수 있는지 여부를 확인 하는 함수 를 정의합니다 .

이것이 맞는 보드 (아래 참조)에서 *사용하지 않은 장소를 표시 하십시오 . 크기 가 12x12 = 144 인 보드에는 16 개가 있으며, 이는 128이 효과적으로 사용됨을 의미합니다 ( 175/128 ≈ 1.37효율 ). 11x11에 동일한 프로그램을 얻는 것이 가능할 수도 있지만, 이는 모두 수작업으로 이루어지며 매우 지루합니다. 내 상사는 아마 11x11에 그것을 얻으려고하면 행복하지 않을 것입니다.

* * & & * * * * * * * ;
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

온라인으로 사용해보십시오 (프로그램 자체를 입력으로 사용)!


2

자바, 득점 23, 538 507 바이트

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();};}}

온라인으로 사용해보십시오!

JDK 9로 컴파일되었지만 8과 함께 작동해야합니다.

수입품과 정적 필드 (실제로 필요한 것)로 무엇을 해야할지 몰랐으므로 전체 클래스를 가져 와서 람다를 이니셜 라이저에 붙이기로 결정했습니다. g그런 다음 람다 는 2D 배열과 문자열에 적용될 수 1있으며 문자열이 보드에 0있는지 아닌지 ( Byte, 3 자보다 짧음 Integer)를 반환 합니다 .

이웃 셀을 처리하는 하드 코딩 방법보다 짧은 (이 경우) 사람에게 크레딧을 제공 합니다 .

이 괴물을 만드는 과정의 어딘가에서 나는 람다와 함께 작동하도록 투자했습니다. 이것이 일어날 때까지 점점 악화되었습니다. 그것은 다른 답변에 가까워지지 않으며 아마도 Java의 최적 솔루션에 가깝지는 않지만 23x23 보드 (정확하지는 않지만 프로그램 자체보다 가깝습니다)에 깔끔하게 맞습니다. :

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,                            

물론, 그 시점에서 그것을 손으로 만들려고 노력할 필요는 없었습니다. 보너스로 여기에 코드를 보드에 압축하는 데 사용한 (순진한) 기능이 있습니다.

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]};
}

스네이크 구현이 작동하지 않는 나선형으로 입력 된 것을 매핑하여 가능한 경우 문자를 남겨 둡니다. 오히려 간단하므로 향상 될 수 있으며 뒤로 역방향으로 문자 검사를 추가하는 것을 잊었습니다 (업데이트 : 잘못된 결과를 생성했습니다) . 따라서 한두 문자를 깎을 수는 있지만 의심 스럽습니다. 22x22에서.

편집 : 필요하지 않은 장소에서 6 개의 공백을 제거했습니다. 배열 인덱스 검사를 try-catch로 대체하여 13 바이트를 절약했습니다. 보드 크기를로 이동하여 12 바이트를 줄 int였습니다.


1

젤리 , 2316 바이트, 3 점

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

온라인으로 사용해보십시오!

판:

1,v
D1J
§ịØ

참고 : 이것은 (사소한) 사소한 해결책입니다. 이 아이디어에 대한 Lynn의 신용 .

s에서 찾을 수 있으면 비어 있지 않은 목록을 반환하고 그렇지 않으면 비어있는 목록을 반환합니다 B. 추가 된 바닥 글은이를 명확히하는 데 도움이됩니다.


이것이 허용되는지 확실하지 않습니다. s찾을 수 없으면 0을 반환하고 찾을 수 있으면 양의 정수 를 반환하고 싶었습니다 . 그러나 규칙에는 "각각 true 및 false에 대해 사전 정의 된 하나의 값"이 표시됩니다. 아니면 젤리에서 거짓 / 참된 협약에 대해 비어 있거나 비어 있지 않은가?

기본적으로 값의 진실성을 정의하는 @Keelan Jelly의 "if-like"구문은 빈 목록을 허위로 간주하고 다른 목록은 진실로 간주합니다. 그것은 실제로 Python 3의 규칙 일뿐입니다 (Jelly가 구현 된 것이므로).
Outgolfer Erik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.