यह एक उत्तर-निर्भर चुनौती है! उत्तर का क्रम मायने रखता है, और आपका सटीक कार्य उस अंतिम उत्तर पर निर्भर करता है जो पोस्ट किया गया था। आप शायद सबसे पुराने जवाबों को क्रमबद्ध करना चाहते हैं ।
चलो एक साथ कुछ कोड! यहाँ 1920 यादृच्छिक (मुद्रण योग्य ASCII) वर्ण हैं। उन्हें बॉक्स में अभी भी अनसुलझी पहेली टुकड़ों का एक बड़ा ढेर समझें:
L-^=v^Ej2tW8OxNOIecSt4m}tji2O%YRJ;PJ!M|0*oO77$*Rs&2*<c"KI7e%FY^?I=];Y@`x)u)IBk%_a#<E6<yv5O*$kL):
KNGq)2Wa%b)j."(6U|{[UY@`lrCSJ`u0RHX!1z7f,v}n=GvRgkrEZ=YT:4H44bz]iC<](:+FF?Ay'vX~h5QMF)0vaXk1sk@p
Zj).{+l;PBKHABvEP%FnSw>u<_-4B^A>I8Kay&5]vXZJ{fCF]UVZ<!ZpOI$7\Y%`@:%H3wPsX-`/l]ZZ?Q/d`\M<T@'t]zip
{[ovg:6EpCT&'+vU4Heb^;}0AV|?<}M0rAH/^DL"RkT~%$[VUlM]-&We4(P=66},hL~;a`:$'yty.W[g2OWcL~b:Ryj0*eN<
;&-n[F1F=oh0k[NI!xS"]pA@Y;K}'=ekG5yda8J$+`N;:FIx:l,f_LT@sV[]HF@2*vl?|q"GL1j&%e(CyYPqY%3W|@`z}]bp
4_'1Nx{"G2&j6$UWt_#%`sTt2xC}s1P8J<gV24_RWge/aMuyVOjz=zS!1i2s@`Q#@^~@W/k@.YLbKxS:g9?J^p;7ju?B\yC5
x,ZApKS5G4}kx_iM)f4/|su>=[{XSV#{,j5Qn3U.v5LF;HXs%DYm4'+efmU;\}f6j$SFCRC`Gsd37:'3$q=bs;lvsW0Yj^:-
I[94@I|.IpR=}4KB4Z0G4>8PR29'L?n\gk,*4X[-%T`\FC)jj0jl_x<xL8E:G2-"3tT8&E}"sE+SH[7jR%@V)a{!m8K>.rAO
2[dq7GX9nrz8p4}^2mn@q|dF%<.Tl8)Dk?O.<UoE(a*k_=4+u!h$^bVd:$jS#EHFh@Z=y=ib^~/~lEJ^SQ3E_t#&^IOov7v8
~j#I#OHgxg{DZDyCsq-(GVq}HbiG,JV?eJ~5wJ;bSt@;3LI!2(6gIT92>}`_dw;YF@ccTIEz\Gu@2(}J2I1"S{R(2niIYPp9
8A3iiP[*!SH2*SN8'`V?w4Ufx2H*Az%{}FlUdH31TJ5{:ge^N91^;9Gj`Uqf'$_|8P"kHR1w.(ASwmN)U-~q"[XcWbqPnns=
d.ZoPJ}$Xc2lA>HN28`(d0y+UAr*sQ=?KE07=\FsVN(#?&hRabS%BVI#<`O$o#4x5ZFFLGDcA4t?&Eh~Z$oBWwNSNv`^;vO'
2&9egng~L#\QkfMG?S/n@%-VA[?f9K&3"V%P#Sv0!D<,GV:Z;3c&zFe^k&^0b7fAjvrbMc^Lq7k$h=YL<h7<0\NK>~Q=uUv)
4cI$.'b-RVS-=rom:=8QR=c>9am-^5F[XGv>E/>|]~\']3{r{kTc?ee1v=;I7]52#NE)~A;}!z>5?hi{5<9FtWH6{VO_Y-Jy
Mw>{l8n#mD,kl'8cG^.7sy=QqU-3~SKGs5(.Ta]:-Vfr'NS$o*q:w6e$&7spk3{CFT'l_hGY0-0Xui*5i^0^fO@6?2IdCn_C
lPKaJ6]0t!u>v8<d'Vby]8kEHh04p(YI)&7w82BrGB3PkI,s+%7ux5)gau`G!8F8hLa4[lfD55Xf3Hqy*-K,?;2'fxH3JWYE
Z.[N`:[K:CY@TzKX4TMXsm{Xbd:B3)Gy[mlwnC$>)z`:k=C\0ho/v{57#+2,*%]>p~vI2^C:2DebJR>.ESw^wd2N<~]O9sOQ
`_yvIw&Ryf%JgT@W(G1wfU3.4G3U}x1jKJzJY\S9n$2~P;F}*eT9UXcTNBTrTs>~0v_Oi.y8ofX6i5u$;'^"q][QhTb*gO[U
n'R0"v1r+9fv;5G7Bg=D:c*a=1@[}7}dYOO{Mz2&@6`jnNq.QcBDM9Dd=R.*=MqZ93#'{AJJFqx<{qb':B!H8ig1L%T\Vuc"
(h$i3`,scX'hqpbw"=nY`*Lu:h1wR{+-`\^3cQkIWfq)3?&p;~pvDW$o7\O|R6rB2{PX.s#G6A.s<OA_,TI_b*&lO@L3KrQv
जिस "मंजिल" पर हम हैरान हैं, वह शुरू में केवल एक 96x20 ग्रिड का स्थान (कोड बिंदु 0x20) है। प्रत्येक उत्तर टुकड़ों के आस-पास के ब्लॉक में घूम सकता है, और 10 पहेली टुकड़े (अक्षर) तक चुन सकता है और उन्हें एक नया प्रोग्राम बनाने के लिए पहेली में जोड़ सकता है। उस प्रोग्राम को आपके उत्तर की संख्या (क्रमिक रूप से क्रमांकित, 1 से शुरू) को प्रिंट करना होगा।
उत्तर देना
इस चुनौती के बारे में समझने वाली महत्वपूर्ण बात यह है कि एक समय में केवल एक ही व्यक्ति उत्तर दे सकता है और प्रत्येक उत्तर उसके पहले वाले पर निर्भर करता है ।
एक ही नंबर N के साथ दो उत्तर कभी नहीं होने चाहिए । यदि दो लोग एक साथ कुछ एन के लिए जवाब देने के लिए होते हैं , तो बाद में जवाब देने वाले (भले ही यह कुछ सेकंड का अंतर हो) उनके जवाब को विनम्रतापूर्वक हटा देना चाहिए।
इसे थोड़ा सुचारू रूप से चलाने के लिए, अपना उत्तर पोस्ट करते समय निम्न चरणों पर चलने का प्रयास करें:
- सुनिश्चित करें कि किसी ने स्वतंत्र रूप से पिछले उत्तर की शुद्धता की पुष्टि की है (और एक टिप्पणी छोड़ दी है)।
पिछले "पहेली मंजिल" और "टुकड़ों का बॉक्स" लें। आप पहेली के किसी भी आसन्न ब्लॉक को एक इकाई के रूप में स्वतंत्र रूप से पहेली तल पर घुमा सकते हैं (यदि वे क्षैतिज या लंबवत दिशा में स्पर्श करते हैं तो अक्षर आसन्न हैं)। आस-पास के ब्लॉकों को फिर से विभाजित नहीं किया जा सकता है। 5x4 ग्रिड पर उदाहरण:
Last answer: Valid: Invalid: |a bc| |d g | |a bc| | bc | |a bc| | d e | |fa bc| |d e | -or- |d e | -or- | e | | f g| | e | | f g| |f g | |df g | | h | |h | | h | | h | | h |
मान्य उदाहरण में,
a
एक कदम नीचे और दाईं ओर ले जाया गया था।df
ब्लॉक शीर्ष छोड़ दिया करने के लिए ले जाया गया था।bce
ब्लॉक 1. से नीचे ले जाया गया थाg
चाल दो ऊपर और एक बाईं ओर था।h
ब्लॉक बाईं ओर सभी तरह ले जाया गया था।
पहले अमान्य उदाहरणdf
में अलग किया गया है। दूसरे में,a
हटा दिया गया है। तीसरे में,df
घुमाया गया है।अगला, "टुकड़ों के बॉक्स" से कम से कम 1 और अधिकतम 10 वर्णों को हटा दें और "पहेली मंजिल" पर कई रिक्त स्थान चुनें, जिन्हें आप उन पात्रों द्वारा प्रतिस्थापित करेंगे। यह आपका प्रस्तुत कार्यक्रम है। कृपया अपने उत्तर में नई "पहेली मंजिल" और "टुकड़ों का बॉक्स" दोनों शामिल करें।
निम्नलिखित प्रारूप में अपना उत्तर पोस्ट करें:
# N. [Language], [number of blocks moved], [number of pieces added] [grid that is your program] ### Remaining pieces: [grid of remaining characters] [notes, explanation, observations, whatever]
N
आपके उत्तर की संख्या कहां है।यह चुनौती के लिए बिल्कुल महत्वपूर्ण है! मैंने बहीखाता पद्धति में मदद करने के लिए चुनौती के लिए एक डैशबोर्ड उपकरण प्रदान किया है, और यह उपरोक्त टेम्पलेट पर निर्भर करता है। (पोस्ट के नीचे देखें।)
- कृपया पहेली मंजिल के किनारों पर ऊर्ध्वाधर पट्टियों को शामिल करें, क्योंकि अन्यथा, स्टैक एक्सचेंज खाली लाइनों को प्रदर्शित नहीं करेगा। इन दो स्तंभों को कभी भी कोड का हिस्सा नहीं माना जाता है।
- एक अन्य उपयोगकर्ता को अब आपके सबमिशन की समीक्षा करनी चाहिए और एक टिप्पणी "सही सत्यापित" छोड़ दें यदि आपका उत्तर सभी नियमों का पालन करता है (नीचे देखें)। यदि ऐसा नहीं होता है, तो उन्हें किसी भी खामियों की ओर इशारा करते हुए एक टिप्पणी छोड़ देनी चाहिए। फिर आपको उन मुद्दों को ठीक करने के लिए 15 मिनट का समय मिला है । यदि आप नहीं करते हैं, तो आपका उत्तर अमान्य माना जाएगा, हटा दिया जाना चाहिए, और कोई अन्य व्यक्ति पिछले एक अनुवर्ती उत्तर को पोस्ट कर सकता है। (यदि ऐसा होता है, तो आप किसी भी समय एक नया उत्तर प्रस्तुत करने के लिए स्वतंत्र हैं।)
ये नियम सख्त लग सकते हैं, लेकिन चेन में कहीं भी अमान्य जवाब से बचने के लिए ये आवश्यक हैं।
नियम
- एक उपयोगकर्ता केवल 4 घंटे की अवधि में एक जवाब प्रस्तुत कर सकता है। (यह उपयोगकर्ताओं को लगातार सवाल देखने और यथासंभव उत्तर देने से रोकने के लिए है।)
- एक उपयोगकर्ता एक पंक्ति में दो जवाब प्रस्तुत नहीं कर सकता है। (उदा। जब से मैंने उत्तर प्रस्तुत किया है 1 मैं उत्तर 2 नहीं कर सकता, लेकिन मैं ऐसा कर सकता था 3.)
- किसी भी भाषा का एक से अधिक बार उपयोग नहीं किया जा सकता है! एक ही भाषा के विभिन्न संस्करण एक ही भाषा के रूप में गिने जाते हैं। यदि पारंपरिक रूप से उन्हें दो अलग-अलग नामों से बुलाया जाता है, तो भाषाएं अलग-अलग होती हैं। (यहां कुछ अस्पष्टताएं हो सकती हैं लेकिन इस प्रतियोगिता को बर्बाद न होने दें।)
- सत्यापित किए गए उत्तरों को संपादित न करें।
श्रृंखला में पहले एक गलती की खोज की जानी चाहिए (यानी अनुवर्ती उत्तर पोस्ट किए जाने के बाद), अपमानजनक उत्तर को हटा दिया जाना चाहिए। हालाँकि , इसके बाद से पोस्ट किए गए सभी उत्तरों को इसे प्रतिबिंबित करने के लिए नहीं बदला जाना चाहिए ।
आपके प्रोग्राम
N
को STDOUT या निकटतम विकल्प के लिए, आपके उत्तर की संख्या को प्रिंट करना होगा । यह एक पूर्ण कार्यक्रम होना चाहिए और एक REPL वातावरण नहीं होना चाहिए।- आप एक अनुगामी न्यूलाइन प्रिंट कर सकते हैं या नहीं।
चलो एम की संख्या हो ब्लॉक और आप अपने जवाब के लिए ले जाया गया (कितनी दूर कोई बात नहीं) पी आप इस पहेली को फर्श को जोड़ा गया वर्णों की संख्या, आपका जवाब का स्कोर किया जाएगा एम - - पी 10 + एन । 5x4 उदाहरण के रूप में, यदि आपके उत्तर ने पहेली तल को निम्नानुसार बदल दिया है
|a bc| |a ij | | d e | --> | d bc| | f g| | f eg| | h | | h k|
अपने स्कोर होगा 10 + एन - 2 - 3 = एन + 5 , क्योंकि दो ब्लॉकों चले गए थे (
h
औरbce
) और तीन पात्रों जोड़ा गया था (i
,j
औरk
)।विजेता वह उपयोगकर्ता होगा जो अपने उत्तरों में सबसे बड़ी संख्या में अंक जमा करता है। टाई के मामले में, नवीनतम उत्तर वाला उपयोगकर्ता जीत जाता है। मैं विजेता के नवीनतम उत्तर को स्वीकार करूंगा।
- सभी पात्रों का उपयोग किए जाने की संभावना नहीं होने पर, चुनौती समाप्त हो जाती है।
डैशबोर्ड
यहां थोड़ा डैशबोर्ड टूल है, जिसे इस प्रकार की चुनौती के लिए आवश्यक बहीखाता पद्धति के साथ मदद करनी चाहिए।
यह चुनौती की वर्तमान स्थिति को प्रदर्शित करता है - विशेष रूप से, यदि परस्पर विरोधी उत्तर हैं, यदि किसी उत्तर को सत्यापित करने की आवश्यकता है, या यदि अगला उत्तर पोस्ट किया जा सकता है।
यह उन सभी भाषाओं की एक सूची भी तैयार करता है जिनका उपयोग किया गया है, साथ ही साथ सभी उपयोगकर्ताओं के लीडरबोर्ड भी। कृपया ऊपर दिए गए उत्तर प्रारूप से चिपके रहें, ताकि डैशबोर्ड आपके उत्तर से संबंधित तार पढ़ सके। अन्यथा आप लीडरबोर्ड में शामिल नहीं हो सकते।
कृपया मुझे बताएं ( आदर्श रूप से चैट में ) यदि आप किसी कीड़े को पकड़ते हैं या कुछ विचार हैं कि उपकरण की उपयोगिता को कैसे बेहतर बनाया जा सकता है।
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentsUrl(e,t){return"http://api.stackexchange.com/2.2/answers/"+e+"/comments?page="+t+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){$.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){answers.push.apply(answers,e.items);if(e.has_more)getAnswers();else{page=1;getFinalComments()}}})}function getFinalComments(){answers=answers.filter(shouldHaveHeading);answers=answers.filter(shouldHaveScore);console.log(answers);$.ajax({url:commentsUrl(answers[0].answer_id,page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){comments.push.apply(comments,e.items);if(e.has_more)getAnswers();else process()}})}function shouldHaveHeading(e){var t=false;try{t|=/^(#|<h).*/.test(e.body_markdown);t|=["-","="].indexOf(e.body_markdown.split("\n")[1][0])>-1}catch(n){}return t}function shouldHaveScore(e){var t=false;try{t|=HEADER_REG.test(e.body_markdown.split("\n")[0])}catch(n){}return t}function findDuplicates(e){var t=false;var n={};e.forEach(function(e){var r=e.body_markdown.split("\n")[0].match(NUMBER_REG)[0];if(n[r])t=t||r;n[r]=true});return t}function hasBeenVerified(e,t){var n=false;t.forEach(function(t){n|=/correctness verified/i.test(t.body_markdown)&&e!=t.owner.user_id});return n}function userTimedOut(e){return NOW-e.creation_date*1e3<MSEC_PER_ANSWER}function getAuthorName(e){return e.owner.display_name}function getAnswerScore(e,t,n){e=parseInt(e);t=parseInt(t);n=parseInt(n);return 10+e-t-n}function process(){$("#last-user").append(answers[0].owner.display_name);var e=answers.slice(1).filter(userTimedOut).map(getAuthorName).join(", ");if(e)$("#timed-out-users").append(e);else $("#timed-out-notice").hide();var t=answers[0].body_markdown.split("\n")[0].match(NUMBER_REG)[0];var n=findDuplicates(answers);if(n){var r=$("#status-conflict-template").html();$("#challenge-status").append(r.replace("{{NUMBER}}",n));$("#challenge-status").addClass("conflict")}else if(!hasBeenVerified(answers[0].owner.user_id,comments)){var r=$("#status-verification-template").html();$("#challenge-status").append(r.replace("{{NUMBER}}",t));$("#challenge-status").addClass("verification")}else{var r=$("#status-next-template").html();$("#challenge-status").append(r.replace("{{NUMBER}}",t).replace("{{NEXT}}",parseInt(t)+1));$("#challenge-status").addClass("next")}var i={};var s={};var o=[];answers.forEach(function(e){var t=e.body_markdown.split("\n")[0];var n=$("#answer-template").html();var r=t.match(HEADER_REG)||[0,-1,"",0,0];var u=r[1];var a=r[2];var f=r[3];var l=r[4];var c=getAnswerScore(u,f,l);var h=getAuthorName(e);n=n.replace("{{NAME}}",h).replace("{{NUMBER}}",u).replace("{{LANGUAGE}}",a).replace("{{MOVED}}",f).replace("{{ADDED}}",l).replace("{{SCORE}}",c).replace("{{LINK}}",e.share_link);n=$(n);$("#answers").append(n);i[h]=(i[h]||0)+c;s[h]=(s[h]||0)+1;o.push({lang:a,link:e.share_link})});var u=[];for(var a in i)if(i.hasOwnProperty(a)){u.push({name:a,numAnswers:s[a],score:i[a]})}u.sort(function(e,t){return t.score-e.score});var f=1;u.forEach(function(e){var t=$("#user-template").html();t=t.replace("{{NAME}}",e.name).replace("{{NUMBER}}",f++).replace("{{COUNT}}",e.numAnswers).replace("{{SCORE}}",e.score);t=$(t);$("#users").append(t)});o.sort(function(e,t){return e.lang.localeCompare(t.lang)});o.forEach(function(e){var t=$("#lang-template").html();t=t.replace("{{LANGUAGE}}",e.lang).replace("{{LINK}}",e.link);t=$(t);$("#lang-list").append(t)})}var QUESTION_ID=44966;var ANSWER_FILTER="!*cCFgu5yS6BFQP8Z)xIZ.qGoikO4jB.Ahv_g-";var COMMENT_FILTER="!)Q2B_A497Z2O1kEH(Of5MUPK";var HOURS_PER_ANSWER=4;var MSEC_PER_ANSWER=HOURS_PER_ANSWER*60*60*1e3;var NOW=Date.now();var answers=[],comments=[],page=1;getAnswers();var NUMBER_REG=/\d+/;var HEADER_REG=/(\d+)[.]\s*([^,]*[^,\s])\s*,[^,\d]*(\d+)[^,\d]*,[^,\d]*(\d+)/
body { text-align: left !important} #challenge-status { font-weight: bold; padding: 10px; width: 800px; } #blocked-users { padding: 10px; width: 800px; } .conflict { background: #994343; color: white; } .verification { background: #FFDB12; } .next { background: #75FF6E; } #last-user, #timed-out-users { font-weight: bold; } #answer-list { padding: 10px; width: 350px; float: left; } #leaderboard { padding: 10px; width: 280px; float: left; } #languages { padding: 10px; width: 130px; float: left; } table thead { font-weight: bold; } table td { padding: 5px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="challenge-status"> </div> <div id="blocked-users"> User <span id="last-user"></span> has posted the last answer, and may not post the next one. <div id="timed-out-notice"><span id="timed-out-users"></span> have answered within the last four hours and may not answer again yet. (If a user appears in this list twice, they must have answered twice within four hours!)</div> </div> <div id="answer-list"> <h2>List of Answers (newest first)</h2> <table class="answer-list"> <thead> <tr><td>No.</td><td>Author</td><td>Language</td><td>M</td><td>P</td><td>Score</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <div id="leaderboard"> <h2>Leaderboard</h2> <table class="leaderboard"> <thead> <tr><td>No.</td><td>User</td><td>Answers</td><td>Score</td></tr> </thead> <tbody id="users"> </tbody> </table> </div> <div id="languages"> <h2>Languages</h2> <table class="languages"> <tbody id="lang-list"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{NUMBER}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{MOVED}}</td><td>{{ADDED}}</td><td>{{SCORE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="user-template"> <tr><td>{{NUMBER}}</td><td>{{NAME}}</td><td>{{COUNT}}</td><td>{{SCORE}}</td></tr> </tbody> </table> <table style="display: none"> <tbody id="lang-template"> <tr><td><a href="{{LINK}}">{{LANGUAGE}}</a></td></tr> </tbody> </table> <div id="status-conflict-template" style="display: none"> There is more than one answer with number {{NUMBER}}!<br> Please resolve this conflict before posting any further answer. </div> <div id="status-verification-template" style="display: none"> Answer {{NUMBER}} has not been verified!<br> Please review the answer and post a comment reading "Correctness verified." on the answer if it is valid. Note that this has to be done by a different user than the author of the answer! </div> <div id="status-next-template" style="display: none"> Answer {{NUMBER}} has been verified!<br> You may now post answer {{NEXT}}. </div>
उपयोगी स्क्रिप्ट
आपकी सुविधा के लिए यहां दो सीजेएम स्क्रिप्ट हैं। आप उन्हें ऑनलाइन दुभाषिया में चला सकते हैं ।
- पहेली मंजिल से पहला और आखिरी कॉलम हटाने के लिए (वास्तविक कोड प्राप्त करने के लिए), इसे STDIN में पेस्ट करें, और चलाएं
qN/1f>Wf<N*
। - अपने कोड को 96x20 के आयत से बाहर निकालने के लिए और उसके चारों ओर ऊर्ध्वाधर सलाखों के कॉलम को जोड़कर,
qN/La20*+20<{96S*+96<'|\+'|+}%N*
अपने कोड पर चलाएं । दो उत्तरों के बीच टुकड़ों के बॉक्स से कौन से वर्ण निकाले गए थे, यह जानने के लिए दोनों को STDIN (बीच में खाली लाइन के बिना) में पेस्ट करें, और चलाएं
qS-N/20/{:+}%94,\f{\33+c_@\f/:,~-_0<{N"Added character: "@;@N}{*}?}
यह भी दिखाएगा कि क्या वर्ण जोड़े गए (हालांकि कितने नहीं)।
यदि कोई इन्हें स्टैक स्निपेट्स के रूप में फिर से लागू करना चाहता है, तो मुझे उन्हें इस पोस्ट में शामिल करके खुशी होगी।