Uwaga: to wyzwanie zostało zakończone. Zgłoszenia są nadal mile widziane, ale nie można wygrać.
To jest wątek gliniarzy. Wątek rabusiów idzie tutaj .
Napisz kod, który wyświetli liczbę całkowitą 1
. Jeśli dodasz, usuniesz lub podmienisz pojedynczy znak (swojego wyboru), kod powinien wypisać liczbę całkowitą 2
. Zmień jeszcze jeden znak (taki sam lub inny), a kod powinien zostać wyświetlony 3
. Kontynuuj tak, jak to możliwe, ale maksymalnie do 10. Domyślne formaty wyjściowe, takie jak ans = 1
są akceptowane. Możesz zignorować dane wyjściowe dla STDERR (lub odpowiednika).
Musisz ujawnić język, liczbę bajtów kodu początkowego, liczbę liczb całkowitych, dla których on działa, a także opcjonalną liczbę znaków kodu początkowego. Uwaga: Nie musisz ujawniać żadnych postaci, ale pamiętaj, że ujawnienie postaci może utrudnić złodziejom, ponieważ muszą używać tej samej postaci w tej samej pozycji. Możesz wybrać znak, którego używasz do oznaczania nieujawnionych znaków (na przykład podkreślenie), ale pamiętaj, aby to określić.
Policjanci mogą dostarczyć niezrackowany kod po tygodniu i nazwać zgłoszenie „BEZPIECZNY”. Zwycięskie zgłoszenie będzie najkrótszym niezakończonym zgłoszeniem, które daje liczbę 10. Jeśli żadne niezrakowane zgłoszenia nie będą w stanie wydrukować 10, wygra najkrótszy kod, który daje 9, i tak dalej. Pamiętaj, że złodzieje nie muszą wprowadzać takich samych zmian jak ty i nie muszą odtwarzać dokładnego kodu (chyba że ujawnisz wszystkie znaki). Muszą tylko reprodukować dane wyjściowe.
Zgłoszenia wysłane później niż 24 listopada są mile widziane, ale nie kwalifikują się do wygranej (ponieważ prawdopodobnie będzie mniej rabusiów).
Przykładowy post:
Poniższy post jest przesłaniem w języku MyLang
, ma długość 9 bajtów i działa z cyframi 1–8.
MyLang, 9 bajtów, 8 cyfr
To poddanie pracuje dla 1 - 8. znaki objawione są oznaczone znakiem podkreślenia: _
.
abc____i
Tabela liderów
Oświadczenie: Tabela liderów nie jest testowana, a niekontrolowane zgłoszenia mogą nie pojawić się na liście.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>table th,table td{padding: 5px;}th{text-align: left;}.score{text-align: right;}table a{display: block;}.main{float: left;margin-right: 30px;}.main h3,.main div{margin: 5px;}.message{font-style: italic;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=99546;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var byscore=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){jQuery(l[1]).empty();l[0].sort(o);for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]);if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function m(s){if('error_message' in s) jQuery('#api_error').text('API Error: '+s.error_message);}function g(p){jQuery.getJSON('//api.stackexchange.com/2.2/questions/' + QUESTION_ID + '/answers?page=' + p + '&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e', function(s){m(s);s.items.map(function(a){var he = jQuery('<div/>').html(a.body).children().first();he.find('strike').text('');var h = he.text();if (!/cracked/i.test(h) && (typeof a.comments == 'undefined' || a.comments.filter(function(b){var c = jQuery('<div/>').html(b.body);return /^cracked/i.test(c.text()) || c.find('a').filter(function(){return /cracked/i.test(jQuery(this).text())}).length > 0}).length == 0)){var m = /^\s*((?:[^,;(\s]|\s+[^-,;(\s])+).*(0.\d+)/.exec(h);var e = [[n++, m ? m[2]-0 : null], jQuery('<tr/>').append( jQuery('<td/>').append( jQuery('<a/>').text(m ? m[1] : h).attr('href', a.link)), jQuery('<td class="score"/>').text(m ? m[2] : '?'), jQuery('<td/>').append( jQuery('<a/>').text(a.owner.display_name).attr('href', a.owner.link)) )];if(/safe/i.test(h)) safe_list.push(e);else uncracked_list.push(e);}});if (s.items.length == 100) g(p + 1);else{var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']];for(var i=0;i<2;i++) u(s[i],byscore);jQuery('#uncracked_by_score').bind('click',function(){u(s[0],byscore);return false});jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false});}}).error(function(e){m(e.responseJSON);});}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"><div id="api_error"></div><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_score">score</a> <a href="#" id="uncracked_by_creation">creation</a></div></div><div class="main"><h3>Safe submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>
1
wydaje, CJam wydaje się złym wyborem języka dla tego wyzwania. Nie ma sposobu, aby temu zapobiec.
10
. Ta zasada obowiązuje, ponieważ wiele zgłoszeń można prawdopodobnie rozszerzyć do nieskończoności (teoretycznie), więc punktowanie na podstawie najwyższej osiągniętej liczby nie miałoby sensu.
cracked
w jakiejś formie. To właśnie robi obecnie przeprojektowany skrypt użytkownika .
1
, w jaki sposób można zapobiec złodziei od dodawania)
kilkakrotnie , aby wygenerować ciąg liczb? To samo dotyczyłoby kilku języków