এই চ্যালেঞ্জটি কমবেশি traditionalতিহ্যবাহী কোড-গল্ফের মতো আচরণ করবে । পার্থক্যটি হ'ল তাদের অক্ষর বা বাইটের সংখ্যা দ্বারা উত্তর স্কোর করার পরিবর্তে, ব্যবহারকারীরা মন্তব্যগুলিতে বিভিন্ন চরিত্রের ওজন নির্ধারণ করবেন এবং সর্বনিম্ন संचयी ওজন সহ প্রোগ্রামটি জিতবে।
চ্যালেঞ্জ
আপনার কাজ হ'ল একটি প্রোগ্রাম লিখুন যা একটি স্ট্রিং নেয় এবং একটি ডায়মন্ডের আকার মুদ্রণ করে যেখানে প্রথম অক্ষরটি কেন্দ্রের শুরু হয় এবং পরবর্তী অক্ষরগুলি ফাঁকা স্থানগুলি অর্থোগোনালগুলিতে স্থান করে দেয় যেখানে অক্ষরগুলি সেট করা থাকে। প্যাডিংয়ের জন্য স্পেস ( ) ব্যবহার করা হবে।
উদাহরণস্বরূপ ইনপুট CAT
উত্পাদন করা হবে
T
TAT
TACAT
TAT
T
এবং ()
উত্পাদন করতে হবে
)
)()
)
এবং desserts
উত্পাদন করতে হবে
s
sts
strts
strerts
streserts
stressserts
stressesserts
stressedesserts
stressed desserts
stressedesserts
stressesserts
stressserts
streserts
strerts
strts
sts
s
এবং 9
উত্পাদন করতে হবে 9
।
বিস্তারিত
কোডটিতে কেবল প্রিন্টযোগ্য এএসসিআইআই এবং নিউলাইনগুলি থাকতে পারে । (নীচে কেন দেখুন।)
ইনপুট / আউটপুট স্টিডিন / স্টাডাউটের মাধ্যমে হওয়া উচিত, বা যদি সম্ভব না হয় তবে অনুরূপ বিকল্প ব্যবহার করুন।
আপনি ধরে নিতে পারেন ইনপুট স্ট্রিংয়ে কেবল প্রিন্টযোগ্য এএসসিআইআই রয়েছে (স্থান সহ)।
ডায়মন্ড প্যাটার্নের কোনও অংশ না থাকা নেতৃস্থানীয় স্পেসগুলির কলামগুলিকে আউটপুটটিতে অনুমোদিত নয় । ট্রেলিং স্পেস স্পেসগুলির কোনও পরিমাণ এবং সংমিশ্রণ অনুমোদিত।
আউটপুটটিতে optionচ্ছিকভাবে একটি পিছনের নিউলাইন থাকতে পারে।
আপনি নিজের উত্তরটি যতটা চান সম্পাদনা করতে পারেন।
স্কোরিং
সমস্ত কোডটি কেবলমাত্র নিউলাইন এবং 95 টি মুদ্রণযোগ্য ASCII অক্ষর ব্যবহার করে লিখতে হবে:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
(দুর্ভাগ্যক্রমে ট্যাবগুলি অনুমোদিত নয় কারণ স্ট্যাক এক্সচেঞ্জ তাদের কোড ব্লকের ফাঁকা স্থান হিসাবে রেন্ডার করে))
এই 96 টি অক্ষরের প্রত্যেকটির সাথে এর সাথে যুক্ত ওজন মূল্য রয়েছে। ডিফল্টরূপে, সমস্ত ওজন 97 হয়।
একটি প্রোগ্রামের স্কোর হ'ল তার প্রতিটি চরিত্রের জন্য ওজনের মানগুলির যোগফল। উদাহরণস্বরূপ, প্রোগ্রামটি যদি হয় print(4)
এবং ওজন 4
70 হয়, তবে অন্য সব কিছুর জন্য অপরিবর্তিত থাকে তবে স্কোরটি হবে 749 = 97+97+97+97+97+97+70+97
।
এই প্রশ্নের ক্রিয়াকলাপটি প্রায় কোনও কিছুর কাছে স্থির হয়ে গেলে, সর্বনিম্ন স্কোরিং জমাটি জেতে। সম্ভবত টাইয়ের সম্ভাবনা কম ক্ষেত্রে জয় সবচেয়ে বেশি ভোট দেওয়া উত্তরের দিকে যায়।
ওজন পরিবর্তন করা হচ্ছে
প্রতিটি ব্যবহারকারী, তারা উত্তর দিয়েছে বা না দিয়েছে, 96 টি বর্ণের একটির ওজন 1 টি থেকে 96 টিতে অনন্য মানে পরিবর্তন করতে পারে this এটি করতে, ফর্মের এই প্রশ্নটিতে একটি মন্তব্য যুক্ত করুন #### W -> C ####
, যেখানে ডাব্লু একটি পূর্ণসংখ্যা 1 থেকে 96 এবং সি হ'ল চরিত্রটি (নিজের মতো করে কোনও উদ্ধৃতি নয়, ব্যাকটিকস নেই)। \n
নতুন লাইনের জন্য এবং \s
স্পেসের জন্য সি এর জায়গায় ব্যবহার করুন যেহেতু স্ট্যাক এক্সচেঞ্জ এককভাবে 3 টি স্প্রেস সংকুচিত করে। print(4)
উদাহরণটি মন্তব্য ছিল হবে #### 70 -> 4 ####
।
প্রতিটি ব্যবহারকারী কেবল এই জাতীয় মতামত জানাতে পারে এবং এটি কেবল তখনই বৈধ হবে যদি চরিত্র এবং ওজন মান উভয়ই পূর্বে করা মন্তব্যে ব্যবহার না করা হয়। সুতরাং অবশেষে, 96 টি #### W -> C ####
মন্তব্য থাকতে পারে , সমস্ত বিভিন্ন ব্যবহারকারীর কাছ থেকে, সমস্ত আলাদা আলাদা চরিত্রের জন্য নির্ধারিত বিভিন্ন ওজন সহ।
ব্যবহারকারীরা চাইলে তাদের নিজস্ব মন্তব্য মুছে ফেলতে পারে, তারা বা অন্য কেউ মন্তব্য না করা পর্যন্ত তাদের অক্ষরের ওজন পুনরায় সেট করে 97 97 তারা এগুলি সম্পাদনা করতে পারে। স্বতন্ত্র ব্যবহারকারী / ওজন / অক্ষর সম্পর্কে নিয়ম অনুসরণ না করে এমন মন্তব্যগুলি "গঠনমূলক নয়" হিসাবে মুছে ফেলা বা পতাকাঙ্কিত করা উচিত। নিয়ম এবং অন্যান্য বিষয় সম্পর্কে সাধারণ মন্তব্যগুলি ঠিক আছে তবে এটি সর্বনিম্ন রাখা উচিত।
এই স্ট্যাক স্নিপেট এই প্রশ্নের সরকারী লিডারবোর্ড। এটি প্রতিবার সঞ্চালনের সময় মন্তব্যগুলি থেকে ওজন সংগ্রহ করে এটি স্বয়ংক্রিয়ভাবে সমস্ত জমা দেওয়ার জন্য স্কোরগুলি গণনা করে। এটি বন্ধন পরিচালনা করে না। কোনও প্রোগ্রামের স্কোর যাচাই করতে আপনি এটি ব্যবহার করতে পারেন।
আপনার right-click -> Open link in new tab
লিঙ্কগুলির জন্য সম্ভবত প্রয়োজন হবে ।
function compute(){var e=computeScore($("#code").val());$("#score").val(e==-1?"Invalid characters":e)}function computeScore(e){var t=0;for(var n=0;n<e.length;n++){if(weights.hasOwnProperty(e[n])){t+=weights[e[n]]}else{return-1}}return t}function htmlDecode(e){var t=document.createElement("div");t.innerHTML=e;return t.childNodes.length===0?"":t.childNodes[0].nodeValue}function addLeaderboard(){validAnswers.sort(function(e,t){return e.score>t.score});var e=1;var t="";for(var n=0;n<validAnswers.length;n++){var r=validAnswers[n];t+="<tr><td>"+e+"</td><td><a href='"+r.link+"'>"+r.owner.display_name+"</a></td><td>"+r.score+"</td><td>"+r.length+"</td></tr>";if(n+1<validAnswers.length&&validAnswers[n+1].score>r.score){e++}}$("#leaderboard").append(t)}function addAnalytics(){var e="";for(var t in weights){if(weights.hasOwnProperty(t)&&weights[t]!=defaultWeight){e+=(t=="\n"?"\\n":t)+"="+weights[t]+" "}}$("#weights").val(e);var n="";for(var t in usedChars){if(usedChars.hasOwnProperty(t)&&usedChars[t]==false){n+=t=="\n"?"\\n":t}}$("#unusedc").val(n);var r="";for(var t in usedWeights){if(usedWeights.hasOwnProperty(t)&&usedWeights[t]==false){r+=t+" "}}$("#unusedw").val(r);var i="";if(invalidComments.length>0){for(var s=0;s<invalidComments.length;s++){var o=invalidComments[s];i+="<a href='#"+o.link+"'>"+o.owner.display_name+"</a> "}}else{i="none"}$("#comments").html(i);var u="";if(invalidAnswers.length>0){for(var s=0;s<invalidAnswers.length;s++){var a=invalidAnswers[s];u+="<a href='#"+a.link+"'>"+a.owner.display_name+"</a> "}}else{u="none"}$("#answers").html(u)}function checkAnswers(e){for(var t=0;t<e.items.length;t++){var n=e.items[t];var r=answerPattern.exec(n.body);if(r){var i=htmlDecode(r[1]);var s=computeScore(i);if(s==-1){invalidAnswers.push(n)}else{n.length=i.length;n.score=s;validAnswers.push(n)}}else{invalidAnswers.push(n)}}addLeaderboard();addAnalytics()}function checkComments(e){for(var t=0;t<e.items.length;t++){var n=e.items[t];var r=commentPattern.exec(htmlDecode(n.body));if(r){var i=n.owner.user_id;var s=parseInt(r[1]);var o=r[2]=="\\n"?"\n":r[2]=="\\s"?" ":r[2];if(userIDs.hasOwnProperty(i)||!usedWeights.hasOwnProperty(s)||usedWeights[s]||!usedChars.hasOwnProperty(o)||usedChars[o]){invalidComments.push(n)}else{userIDs[i]=true;usedWeights[s]=true;usedChars[o]=true;weights[o]=s}}}$.get(answersURL,checkAnswers)}function refresh(){$.get(commentsURL,checkComments)}questionID=45040;commentsURL="https://api.stackexchange.com/2.2/questions/"+questionID+"/comments?order=asc&sort=creation&site=codegolf&filter=!t)IWLXOkOvAuPe8m2xJrXOknWcw(ZqZ";answersURL="https://api.stackexchange.com/2.2/questions/"+questionID+"/answers?order=desc&sort=activity&site=codegolf&filter=!.FjsvG2LuND(frE*)WTvqQev1.lyu";commentPattern=/^#### (\d+) -> (\\(?:n|s)|[ -~]) ####$/;answerPattern=/<pre><code>((?:\n|.)*?)\n<\/code><\/pre>/;chars="\n !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";validAnswers=[];invalidAnswers=[];invalidComments=[];userIDs={};usedWeights={};usedChars={};weights={};defaultWeight=chars.length+1;for(var i=0;i<chars.length;i++){usedChars[chars[i]]=false;usedWeights[i+1]=false;weights[chars[i]]=defaultWeight}refresh()
*{font-family:Helvetica,Arial,sans-serif}table{border:3px solid green;border-collapse:collapse}button{font-size:100%}th{background-color:green;color:#fff;padding:6pt}td{border:1px solid green;padding:6pt}.large{font-size:140%}.title{font-weight:700;margin:6pt 0}textarea{font-family:"Courier New";white-space:nowrap;overflow:auto}input[readonly]{background-color:#dcdcdc}.analytics{font-size:90%;padding:4pt 0 0}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><div class='large title'>Leaderboard</div><table id='leaderboard'> <tr> <th>Place</th> <th>Submitter</th> <th>Score</th> <th>Program Length</th> </tr></table><br><div class='title'>Compute Score</div><textarea id='code' rows='5' cols='40' placeholder='paste code here...'></textarea><br><button type='button' onclick='compute()'>Compute</button> Score: <input type='text' id='score' readonly><br><br><div class='title'>Analytics</div><div class='analytics'>Assigned weights: <input type='text' id='weights' readonly></div><div class='analytics'>Unused characters: <input type='text' id='unusedc' readonly> (all weight 97)</div><div class='analytics'>Unused weights: <input type='text' id='unusedw' readonly></div><div class='analytics'>Invalid comments (duplicate user/char/weight): <span id='comments'></span></div><div class='analytics'>Invalid answers (illegal characters or no code block): <span id='answers'><span></div><br><button type='button' onclick='refresh'>Refresh</button>
এই লিডারবোর্ডটি কাজ করার জন্য, মন্তব্যগুলি অবশ্যই উপরে বর্ণিত সঠিক ফর্ম্যাটে থাকতে হবে এবং আপনার প্রোগ্রামের কোডটি অবশ্যই আপনার উত্তরের ( <pre><code>...</code></pre>
প্রথমগুলি) প্রথম বহু-লাইন কোড ব্লকে থাকা উচিত । সিনট্যাক্স হাইলাইটিং ব্যবহার করবেন না বা আপনার কোডটি সঠিকভাবে পড়বে না। স্নিপেটটি আপডেট হওয়ার আগে এক বা দুই মিনিট সময় নিতে পারে।
আমি স্নিপেটটি ভালভাবে পরীক্ষা করে দেখিনি তবে এই প্রতিযোগিতাটি চলতে থাকায় আমি এটির দিকে নজর রাখব। আপনি যদি কোন বাগ লক্ষ্য করেন তবে দয়া করে আমাকে বলুন। এখানে একটি নন-মিনিফাইড সংস্করণ রয়েছে:
মনে রাখবেন যে এই স্কোরিং সিস্টেমটি সম্পূর্ণ নতুন এবং পরীক্ষামূলক। আশা করি স্ট্যাক এক্সচেঞ্জ এতে কিছুটা মন্তব্য জড়িত মনে করবে না। : P: P
সম্পর্কিত চ্যালেঞ্জ: এই হীরাটি মুদ্রণ করুন