ลองเขียนโค้ดในภาษาของคุณและทำให้มันไม่เป็นไปตามเกณฑ์ของเราในการเป็นภาษาโปรแกรมอีกต่อไป
ภาษาเป็นไปตามเกณฑ์ของเรา (เวอร์ชั่นง่ายสำหรับความท้าทายนี้) ในการเป็นภาษาโปรแกรมหาก:
- มันสามารถอ่านอินพุตของผู้ใช้ที่แสดงถึง tuples ของจำนวนเต็มบวกในบางวิธี
- สามารถส่งออกผลลัพธ์ที่แตกต่างกันอย่างน้อยสองรายการขึ้นอยู่กับอินพุต
- มันสามารถใช้จำนวนเต็มบวกสองจำนวนแล้วบวกเข้าไป (และผลลัพธ์อาจมีผลต่อเอาต์พุต)
- มันสามารถใช้จำนวนเต็มบวกและตัดสินใจว่ามันเป็นนายก (และผลที่สามารถส่งผลกระทบต่อการส่งออก)
- สำหรับวัตถุประสงค์ของการท้าทายนี้ชนิดของการส่งออกใด ๆ ที่ไม่ได้เป็นวิธีการส่งออกได้รับอนุญาตให้เป็นความท้าทายที่ปกติจะถูกละเว้น ดังนั้นไม่สำคัญว่าโปรแกรมจะสามารถเล่นเพลงหรือโพสต์ผ่าน HTTP ฯลฯ ได้หรือไม่
- อัปเดต:คุณยังสามารถเลือกวิธีการส่งออกหนึ่งหรือบางวิธีและละเว้นวิธีอื่น ๆ ได้ แต่คุณต้องใช้คำจำกัดความเดียวกันทุกที่ในเกณฑ์ต่อไปนี้ และหากโปรแกรมของคุณสามารถปิดใช้งานมากกว่าหนึ่งวิธีการส่งออก - ที่คุ้มค่า upvotes มากขึ้น
ตัวอย่างเช่นทำให้ไม่สามารถส่งออกหรือปิดใช้งานการวนซ้ำทั้งหมดดังนั้นจึงไม่สามารถทำการทดสอบแบบดั้งเดิมและทำให้แน่ใจว่าผู้ใช้ไม่สามารถเปิดใช้งานได้อีกครั้ง
คุณควรออกจากที่สำหรับใส่รหัสใหม่ โดยค่าเริ่มต้นจะอยู่ท้ายรหัสของคุณ หากเราพิจารณาวางซอร์สโค้ดในที่นั้นในคำตอบของคุณและเรียกใช้รหัสเต็มเป็นโปรแกรมที่สมบูรณ์เป็นล่ามของภาษาใหม่ภาษานั้นไม่ควรเป็นไปตามเกณฑ์
แต่ใส่รหัสจะต้องดำเนินการในลักษณะเช่นภาษาที่น่าพอใจเกณฑ์ไปนี้:
- รหัสที่แทรกจะต้องเป็นไวยากรณ์เหมือนกับบางสิ่งบางอย่าง (กล่าวคือบล็อกโค้ดในเกณฑ์ต่อไปนี้) ซึ่งโดยทั่วไปแล้วจะเป็นไปตามเกณฑ์จากมุมมองของผู้ที่ต้องการเขียนปากกาเน้นข้อความ ดังนั้นจึงไม่สามารถอยู่ในสตริงความคิดเห็น ฯลฯ
- รหัสที่แทรกจะต้องถูกดำเนินการจริงตามที่ควรจะเป็นไปตามเกณฑ์ ดังนั้นมันจึงไม่สามารถอยู่ในฟังก์ชั่นที่ไม่ได้ใช้งานหรือ
sizeof
ใน C คุณไม่สามารถดำเนินการได้เฉพาะส่วนที่ไม่สามารถใช้งานได้ในโค้ดและคุณไม่สามารถใส่มันหลังจากวนซ้ำไม่สิ้นสุดเป็นต้น - คุณไม่สามารถ จำกัด จำนวนโปรแกรมที่ถูกต้องทางไวยากรณ์ที่เป็นไปได้ที่สร้างขึ้นด้วยวิธีนี้ หากมีบางอย่างที่เหมือนขีดจำกัดความยาวในภาษาที่คุณใช้อยู่ก็ไม่ควรเป็นไปตามเกณฑ์แม้ว่าข้อ จำกัด นี้จะถูกลบออกไป
- คุณไม่สามารถแก้ไขหรือ "ใช้" เนื้อหาของอินพุต / เอาต์พุตได้ แต่คุณสามารถป้องกันไม่ให้เข้าถึงได้
- เกณฑ์เหล่านี้มักใช้กับภาษาที่ไม่มี I / O อย่างชัดเจน:
- รหัสของคุณควรเปลี่ยนเส้นทางการป้อนข้อมูลของผู้ใช้ (ที่มีข้อมูลความยาวตามอำเภอใจ) ไปยังรหัสที่แทรกหากบล็อกรหัสไม่สามารถรับข้อมูลผู้ใช้โดยตรง / ชัดเจนในภาษาที่คุณใช้
- รหัสของคุณควรพิมพ์ค่าที่ส่งคืนของรหัสที่แทรกหากบล็อกรหัสมักไม่สามารถส่งออกข้อมูลโดยตรง / อย่างชัดเจนในภาษาที่คุณใช้
- ในกรณีที่คุณพิมพ์ค่าที่ส่งคืนและพิมพ์ในภาษาที่คุณใช้ประเภทที่ส่งคืนควรจะมีค่าที่เป็นไปได้ 2 แบบที่แตกต่างกัน ตัวอย่างเช่นคุณไม่สามารถใช้ชนิด
struct {}
หรือstruct {private:int x;}
ใน C ++
นี่คือการประกวดความนิยม คำตอบที่ถูกต้องได้รับการโหวตสูงสุด(ดังนั้นไม่มีใครเห็นข้อผิดพลาดหรือข้อผิดพลาดทั้งหมดได้รับการแก้ไข) ชนะ
ชี้แจง
- คุณไม่ควรแก้ไขรหัสในรูปแบบข้อความ แต่สามารถเปลี่ยนไวยากรณ์ก่อนที่รหัสจะถูกตีความหรือรวบรวม
- คุณสามารถทำสิ่งอื่น ๆ ในขณะที่รหัสกำลังทำงานอยู่ แต่เหตุผลที่มันไม่เป็นไปตามเกณฑ์ที่ควรจะอยู่ในตัวแทรกรหัส อาจเกิดข้อผิดพลาดเนื่องจากการรบกวนของเธรดอื่น แต่ไม่เพียง แต่ถูกเธรดอื่นฆ่า
- รายละเอียดทั้งหมดโดยทั่วไปหมายถึงมันควรจะเป็นไปตามหลักไวยากรณ์ตามเกณฑ์ที่น่าพอใจหากบิวด์อินทั้งหมดไม่เปลี่ยนแปลงแต่ไม่ได้ทำจริง ไม่เป็นไรถ้าคุณพบวิธีแก้ปัญหาที่ไม่ใช่ทางไวยากรณ์เช่นการส่งพารามิเตอร์ไปยังการบล็อกโค้ดอย่างถูกต้อง แต่ทำให้ไม่สามารถใช้งานได้ในบางวิธี
- อีกครั้งรหัสที่แทรกจะต้องดำเนินการจริง รหัสหลังจากที่วง จำกัดหรือcrashingถือว่า "ไม่ดำเนินการจริง" จึงไม่ถูกต้อง คำตอบเหล่านั้นอาจน่าสนใจ แต่มีคำถามวนซ้ำไม่สิ้นสุดหรือคำถามหยุดทำงานในไซต์นี้และคุณอาจพบคำตอบที่เหมาะสมกว่า ถ้าไม่ใช่ให้ลองถามคำถามใหม่ ตัวอย่างของคำถามเหล่านั้นคือ:
ลีดเดอร์บอร์ด
var QUESTION_ID=61115/*,OVERRIDE_USER=8478*/;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,/*getComments()*/(more_answers?getAnswers():process())}})}/*function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}*/function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),score:s.score,language:a[1],lang:jQuery('<div>').html(a[1]).text(),link:s.share_link})}),e.sort(function(e,s){var r=e.score,a=s.score;return a-r});var s={},r=1,a=null,n=1;e.forEach(function(e){e.score!=a&&(n=r),a=e.score,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",e.n=n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.score).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text())/*,s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}*/});var t=e/*[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o])*/;t.sort(function(e,s){return (e.lang.toUpperCase()>s.lang.toUpperCase())-(e.lang.toUpperCase()<s.lang.toUpperCase())||(e.lang>s.lang)-(e.lang<s.lang)});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{PLACE}}",o.n).replace("{{LANGUAGE}}",o.language).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.score).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<(?:h\d|(?!.*<h\d>)p)>\s*((?:[^,;(\s]| +[^-,;(\s])+)(?=(?: *(?:[,;(]| -).*?)?\s*<\/(h\d|p)>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;float:left}table{width:250px}table thead{font-weight:700}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="https://cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Score</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Sorted by Language</h2> <table class="language-list"> <thead> <tr><td></td><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{PLACE}}</td><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>