संशोधित बोगल-सक्षम कोड, संशोधित बोगल-सक्षम कोड के साथ


19

पृष्ठभूमि

बोगल एक बोर्ड गेम है जहां खिलाड़ियों को यादृच्छिक वर्णमाला के 4-बाय -4 बोर्ड पर अंग्रेजी शब्द ढूंढने होते हैं। बोर्ड पर क्रमिक रूप से आसन्न कोशिकाओं का चयन करके शब्दों का निर्माण किया जा सकता है। ("निकटवर्ती" का अर्थ है क्षैतिज, लंबवत या तिरछे आसन्न।) साथ ही, एक शब्द में एक से अधिक बार एक ही सेल का उपयोग नहीं किया जा सकता है।

निम्नलिखित एक उदाहरण बोर्ड है:

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

इस बोर्ड पर, BINGO, ORANGEऔर WEARSवैध शब्द हैं, लेकिन SURGEऔर RUSSIAनहीं कर रहे हैं:

  • SURGE: बोर्ड पर कोई आसन्न जोड़ी नहीं है RG
  • RUSSIA: Sदो बार इस्तेमाल नहीं किया जा सकता।

संशोधित बोगल निम्नलिखित नियमों के साथ बोगल का एक संशोधित संस्करण है:

  • बोर्ड का आकार n-by है n, जहां nकोई भी धनात्मक पूर्णांक हो सकता है।
  • प्रत्येक सेल में 0 और 255 समावेशी के बीच कोई भी एक बाइट हो सकती है।
  • एक सेल का उपयोग एक से अधिक बार किया जा सकता है, लेकिन एक पंक्ति में दो बार नहीं

ऊपर दिए गए उदाहरण बोर्ड का उपयोग करना 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से मेल खाने के लिए दो की आवश्यकता है oo

चुनौती

एक फ़ंक्शन या प्रोग्राम लिखें, जो एक संशोधित बोगल बोर्ड B(किसी भी आकार का) और एक स्ट्रिंग दिया जाता है s, यह निर्धारित करता है कि sक्या पाया जा सकता है B

प्रतिबंध

आपका कोड खुद भी एक संशोधित बोगल बोर्ड पर फिट होना चाहिए bयही है, आपको bअपने कोड के साथ अपने सबमिशन में बोर्ड दिखाना होगा , ताकि आपका फ़ंक्शन / प्रोग्राम आउटपुट सही हो जाए bऔर यह आपके इनपुट पर कोड हो।

स्कोरिंग

आपके सबमिशन का स्कोर सबसे छोटे बोर्ड की साइड लंबाई है bजहां आप अपना कोड फिट कर सकते हैं। सामान्य नियम, यानी बाइट्स में आपके कोड की लंबाई से संबंध टूट जाते हैं । सबसे कम स्कोर (दोनों मानदंडों के लिए) के साथ सबमिशन जीतता है।

उदाहरण के लिए, from itertools import*\n4 के स्कोर (ऊपर बोर्ड का उपयोग करके) और 23 बाइट्स की कोड लंबाई है।

इनपुट और आउटपुट

इनपुट के लिए, आप दोनों के लिए किसी भी सुविधाजनक तरीका ले जा सकते हैं Bऔर s। इसमें वर्णों की सूची और चार्ट की सूची, 2D या चपटा या जो कुछ भी समझ में आता है। इसके अलावा, आप वैकल्पिक रूप से इनपुट के एक भाग के रूप में बोर्ड का आकार ले सकते हैं।

आउटपुट के लिए, आप निम्न में से एक चुन सकते हैं:

  • आपकी भाषा के सम्मेलन के बाद सत्य और मिथ्या मूल्य, या
  • सही और गलत के लिए एक पूर्वनिर्धारित मूल्य क्रमशः।

कृपया अपनी प्रविष्टि में अपना इनपुट / आउटपुट विधि निर्दिष्ट करें।


मुझे संदेह है कि कुछ एसोलैंग के पास एक बहुत ही छोटा चारसेट है जो एक 2x2 पर फिट हो सकता है xD जीतेगा
HyperNeutrino

और कोई भी Unary प्रोग्राम 4 स्कोर करने जा रहा है, लेकिन 4 अलग-अलग प्रतीकों का उपयोग करके कुशलता से किसी भाषा के खिलाफ टाई नियम के कारण खोने की गारंटी है।
अरनौलद

@ अरनल्ड मैं सोच रहा था कि शायद छोटे बीएफएफ और जब आपको दो आसन्न प्रतीकों की ज़रूरत हो तो आप बस ऐसा ही +=+=कुछ करते हैं। समस्या है ==आउटपुट फंक्शन ...
हाइपरनेट्रिनो

2
@ l4m2 इस तरह की भाषा के साथ समाधान करना हमेशा स्वागत योग्य है, लेकिन जो राजा की चेतावनी से ऊपर है।
बब्बलर

3
क्या यह वास्तव में प्रतिबंधित-स्रोत है ? मुझे लगता है कि यह केवल दो-गुना चुनौती है (गैर-गोल्फिंग भाषाओं के लिए अधिक), जहां आपको कोड और सबसे छोटा संभव बोगल बोर्ड ढूंढना होगा जिसमें कोड फिट होता है।
द एग्रीग्राफर

जवाबों:


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

पूर्ण कोड का आउटपुट है: इसे ऑनलाइन आज़माएं!

बोगल बोर्ड पर फिट बैठता है:

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'


हम्म, ऐसा लगता है कि मुझे जेली में ऐसा करने का एक तरीका मिल गया है
आउटगोल्फ को एरिक करें

5

सीजाम , स्कोर 2, 9351 बाइट्स

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

इसे ऑनलाइन आज़माएं! इनपुट की उम्मीद है:

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

और बोगल बोर्ड पर फिट बैठता है:

' )
~ )

स्ट्रिंग का निर्माण करता है, 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 कोड के रूप में करता है।


जब तक कोई अंतर्निहित मौजूद नहीं होता है (मैं आपको देख रहा हूं, गणितज्ञ), 2 का स्कोर सबसे कम है जो आप प्राप्त कर सकते हैं। तो अब चुनौती एक ही आकार के छोटे संस्करण बनाने की है।
इंजीनियर टोस्ट

@EngineerToast किसी भी बिल्ट-इन में नहीं। इसमें 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जो यह जांचता है कि दूसरे तर्क (शब्द) को तीसरे तर्क में पाया जा सकता है (बोर्ड) ने पहले तर्क को चौड़ाई के रूप में दिया।

जिस बोर्ड में यह फिट बैठता है (नीचे देखें), *अप्रयुक्त स्थानों को चिह्नित करता है। उनमें से 16 हैं, आकार 12 × 12 = 144 के बोर्ड पर, जिसका अर्थ है कि प्रभावी रूप से 128 का उपयोग किया जाता है ( 175/128 efficiency 1.37 की दक्षता )। 11 × 11 पर एक ही कार्यक्रम प्राप्त करना संभव हो सकता है, लेकिन यह सब हाथ से किया जाता है और बहुत थकाऊ होता है; मेरे बॉस शायद खुश नहीं होते अगर मैं इसे 11 × 11 पर लाने की कोशिश करता।

* * & & * * * * * * * ;
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को फिर एक 2 डी सरणी और एक स्ट्रिंग पर लागू किया जा सकता है, और 1यदि बोर्ड में स्ट्रिंग है और 0यदि नहीं (तो Byte, 3 अक्षर से कम Integer)।

करने के लिए क्रेडिट इस एक के लिए पुरुष (मेरे मामले में) पता पड़ोसी कोशिकाओं के लिए रास्ता हार्डकोड की तुलना में कम।

कहीं न कहीं इस एकात्मता को बनाने की प्रगति में मैंने इसे लंबोदर के साथ काम करने के लिए निवेशित कर दिया, यह तब तक उत्तरोत्तर बदतर और बदतर होता गया। यह अन्य उत्तरों के करीब भी नहीं पहुंचता है और यह शायद जावा में इष्टतम समाधान के करीब भी नहीं है, लेकिन हे, यह 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 स्थान हटा दिए गए हैं, जिनकी उन्हें आवश्यकता नहीं थी। एक कोशिश के साथ सरणी सूचकांकों पर एक चेक की जगह से 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
§ịØ

नोट: यह (कुछ हद तक) तुच्छ समाधान है। को ऋण लिन के लिए विचार

रिटर्न एक गैर खाली सूची अगर sमें पाया जा सकता Bहै, और एक खाली सूची नहीं तो। जोड़ा पाद स्पष्ट करने में मदद करता है।


मुझे यकीन नहीं था अगर यह अनुमति दी गई थी। मैं 0 लौटना चाहता था अगर sनहीं मिल सका, या एक सकारात्मक पूर्णांक अगर यह पाया जा सकता है। लेकिन नियम कहते हैं "क्रमशः सत्य और असत्य के लिए एक पूर्वनिर्धारित मूल्य"। या जेली में झूठे / सच्चे सम्मेलन के लिए खाली / गैर-खाली हैं?

@ कीलन जेली की "इफ-लाइक" कंस्ट्रक्शन, जो, डिफ़ॉल्ट रूप से, एक मूल्य की सत्यता को परिभाषित करती है, एक खाली सूची को मिथ्या और किसी अन्य सूची को सत्य मान लेगी। यह वास्तव में सिर्फ पायथन 3 का सम्मेलन है (क्योंकि जेली को लागू किया गया है)।
द एग्री द आउटग्रॉफ़र
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.