Dans ce défi, nous allons créer ensemble une recherche par mot contenant de nombreux programmes dans différentes langues.
Nous avons commencé avec une grille de blancs de 60 sur 25 ( ·
), dont certains sont remplacés par les caractères d'un programme Ruby.
Pour répondre, choisissez une langue qui n'a pas encore été utilisée. En utilisant la langue de votre choix, écrivez un programme qui lit un caractère, un jeton, une ligne ou toutes les entrées de la console, puis imprimez-le . Ensuite, insérez votre programme dans la recherche de mots.
Par exemple, supposons que vous choisissiez Python 3 pour votre réponse et écriviez le programme print(input())
. Maintenant, vous devez insérer ce programme dans la grille.
Si la grille avant votre réponse ressemble à ceci:
···a·24··········
··z····t·········
Ensuite, vous pouvez simplement mettre votre programme dans la deuxième ligne, en chevauchant le programme existant t
:
···a·24··········
··zprint(input())
Notez que vous pouvez placer votre programme dans n’importe quelle direction: en avant, en arrière, en haut, en bas ou en diagonale, à condition qu’il soit en ligne droite.
Mais que se passe-t-il si la grille existante ressemble à ceci:
···a·24··········
··z····q·········
Il n'y a aucun moyen de faire cela print(input())
ici sans changer les caractères existants, ce qui est interdit. Au lieu de cela, vous pouvez changer le programme:
print(
input())
Ce programme de deux lignes convient parfaitement:
···a·24·print(···
··z····q input())
Ici, vous remplacez un blanc ( ·
) par un espace (
). Cependant, un espace est comme n'importe quel autre personnage et ne peut pas être remplacé dans les programmes futurs.
Tout comme un one-line, un programme multiligne peut être placé dans n'importe quelle direction. Par exemple, dans une grille plus grande, vous pouvez procéder comme suit en faisant pivoter le programme de 135 ° dans le sens des aiguilles d'une montre.
··········
········ ·
·······i·p
······n·r·
·····p·i··
····u·n···
···t·t····
··(·(·····
·)········
)·········
Notation
Votre score pour chaque réponse est trente divisé par le nombre de caractères ajoutés. Ne comptez pas les caractères qui existaient déjà dans la grille, même si vous les utilisez vous-même.
Votre score total est la somme des scores de toutes vos réponses, multiplié par le nombre de réponses. Le score le plus élevé gagne.
Règles
- Chaque réponse doit être écrite dans une langue différente. Les langues qui diffèrent uniquement par le numéro de version (par exemple, Python 2 et Python 3) sont considérées comme identiques.
- Chaque réponse doit être construite à partir de la dernière réponse valide. C'est-à-dire, prenez la grille de la réponse la plus récente et insérez-y votre programme.
- Pour insérer votre programme, remplacez au moins un des espaces (
·
) par les caractères de votre choix. Vous pouvez utiliser des caractères existants de la grille dans votre réponse, mais vous ne pouvez en changer ou en déplacer aucun.
- Vous ne pouvez pas insérer plus de 500 caractères au total dans toutes vos réponses.
- Tous les caractères que vous insérez doivent faire partie de votre programme.
- Votre programme peut ne comporter que des caractères ASCII et des nouvelles lignes imprimables, mais il peut ne pas y avoir deux nouvelles lignes consécutives consécutives.
- Les nouvelles lignes ne comptent pas dans votre score.
- Un programme complet, pas seulement une fonction ou un extrait, est requis.
- Le même utilisateur ne peut pas écrire deux réponses consécutives.
- Si la réponse de quelqu'un enfreint une règle, laissez un commentaire. Si l'erreur n'est pas corrigée dans les 30 minutes, vous devez la supprimer.
Extrait de langue utilisé
Il s'agit d'un extrait de pile, créé par ETHproductions, FryAmTheEggman et Mauris, qui assure le suivi des partitions des utilisateurs et des langues utilisées. Il a été copié à l'origine du modèle exceptionnel de Martin Büttner .
Classement original:
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 commentUrl(e,r){return"http://api.stackexchange.com/2.2/answers/"+r.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 r=+e.share_link.match(/\d+/);answer_ids.push(r),answers_hash[r]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}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=[],r={},x={};answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var n=a.match(SCORE_REG);if(n){var t=getAuthorName(s);e.push({user:getAuthorName(s),size:+n[2],language:n[1],link:s.share_link}),r[t]=r[t]||0,r[t]+=30/+n[2],x[t]=x[t]||0,x[t]++}});Object.keys(r).forEach(function(e){r[e]*=x[e]});var s=Object.keys(r).sort(function(e,s){return r[s]-r[e]});e.sort(function(e,r){var s=e.size,a=r.size;return s-a});var a={},t=null;e.forEach(function(e){t=e.size;var r=e.language;/<a/.test(r)&&(r=jQuery(r).text()),a[r]=a[r]||{lang:e.language,user:e.user,size:e.size,link:e.link}});for(var c=0,o=1;c<s.length;c++){var i=jQuery("#author-template").html();r[s[c]]!==r[s[c-1]]&&(o=c+1);i=i.replace("{{PLACE}}",o+'.').replace("{{NAME}}",s[c]).replace("{{SCORE}}",r[s[c]].toFixed(2)),jQuery("#authors").append(jQuery(i))}var u=[];for(var m in a)a.hasOwnProperty(m)&&u.push(a[m]);u.sort(function(e,r){var s=e.lang.replace(/<.*?>/g,"").toLowerCase(),a=r.lang.replace(/<.*?>/g,"").toLowerCase();return s>a?1:a>s?-1:0});for(var l=0;l<u.length;++l){var h=jQuery("#language-template").html(),m=u[l];h=h.replace("{{LANGUAGE}}",m.lang).replace("{{NAME}}",m.user).replace("{{SIZE}}",m.size).replace("{{LINK}}",m.link),h=jQuery(h),jQuery("#languages").append(h)}}var QUESTION_ID=57327,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=16294,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#author-list,#language-list{padding:10px;width:290px;float:left}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="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="author-list"> <h2>Leaderboard</h2> <table class="author-list"> <thead> <tr><td></td><td>Author</td><td>Score</td></tr></thead> <tbody id="authors"> </tbody> </table> </div><div id="language-list"> <h2>Languages</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="author-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{SCORE}}</td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Nouvelle version (expérimentale) utilisant une formule modifiée:
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 commentUrl(e,r){return"http://api.stackexchange.com/2.2/answers/"+r.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 r=+e.share_link.match(/\d+/);answer_ids.push(r),answers_hash[r]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}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=[],r={},x={};answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var n=a.match(SCORE_REG);if(n){var t=getAuthorName(s);e.push({user:getAuthorName(s),size:+n[2],language:n[1],link:s.share_link}),r[t]=r[t]||0,r[t]+=30/+n[2]+20,x[t]=x[t]||0,x[t]++}});var s=Object.keys(r).sort(function(e,s){return r[s]-r[e]});e.sort(function(e,r){var s=e.size,a=r.size;return s-a});var a={},t=null;e.forEach(function(e){t=e.size;var r=e.language;/<a/.test(r)&&(r=jQuery(r).text()),a[r]=a[r]||{lang:e.language,user:e.user,size:e.size,link:e.link}});for(var c=0,o=1;c<s.length;c++){var i=jQuery("#author-template").html();r[s[c]]!==r[s[c-1]]&&(o=c+1);i=i.replace("{{PLACE}}",o+'.').replace("{{NAME}}",s[c]).replace("{{SCORE}}",r[s[c]].toFixed(2)),jQuery("#authors").append(jQuery(i))}var u=[];for(var m in a)a.hasOwnProperty(m)&&u.push(a[m]);u.sort(function(e,r){var s=e.lang.replace(/<.*?>/g,"").toLowerCase(),a=r.lang.replace(/<.*?>/g,"").toLowerCase();return s>a?1:a>s?-1:0});for(var l=0;l<u.length;++l){var h=jQuery("#language-template").html(),m=u[l];h=h.replace("{{LANGUAGE}}",m.lang).replace("{{NAME}}",m.user).replace("{{SIZE}}",m.size).replace("{{LINK}}",m.link),h=jQuery(h),jQuery("#languages").append(h)}}var QUESTION_ID=57327,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=16294,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#author-list,#language-list{padding:10px;width:290px;float:left}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="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="author-list"> <h2>Leaderboard</h2> <table class="author-list"> <thead> <tr><td></td><td>Author</td><td>Score</td></tr></thead> <tbody id="authors"> </tbody> </table> </div><div id="language-list"> <h2>Languages</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="author-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{SCORE}}</td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Pour vous assurer que votre soumission est reconnue par l'extrait de code, veuillez utiliser le modèle d'en-tête suivant:
# Language, X characters added
Réponses:
Java, 124 caractères ajoutés
Bien qu'il y ait encore de la place!
La grille est maintenant
Faites un ninja modifier et inverser le code dans la grille, puisque OP indique que le code peut être inversé. Puis ajouté dans la réponse suivante
la source
Oreillons, 23 caractères ajoutés
Désolé encore d'avoir manqué l'unique exigence de la question.
voici ma nouvelle soumission:
Ceci définit la variable t sur un espace, puis lit au plus 50 caractères de l'entrée standard avec un délai d'attente de 20 secondes et écrit une nouvelle ligne, la variable, puis une autre nouvelle ligne. (De nombreux terminaux d'oreillons deviennent un peu salissants si vous ne le faites pas ...)
La grille est maintenant:
cette soumission de dieu R a rendu cela un peu plus difficile à écrire ... :-)
la source
Beatnik , 29 personnages ajoutés
Explication à venir :)
La nouvelle grille
la source
C, 27 caractères ajoutés
Quelqu'un a mentionné C et j'ai vu que c'était encore possible.
Nouvelle grille:
la source
??? , 1 personnage ajouté
La grille est maintenant:
la source
Urne , 3 personnages ajoutés
La nouvelle grille:
la source
Ruby, 9 personnages ajoutés
La grille est maintenant:
la source
LISP, 3 caractères ajoutés
La nouvelle grille:
la source
Perl, 6 caractères ajoutés
La grille est maintenant:
la source
Quipu , 3 caractères ajoutés
Le programme de chat dans Quipu est composé de quatre caractères:
J'ai tourné ce 90 ° et réutilisé un des slash du programme de rail .
La nouvelle grille:
la source
Marbelous , 7 personnages ajoutés
(Si j'ai bien compris comment Marbelous fonctionne ...)
la source
00\n]]
auriez également fait.Pyth, 1 personnage ajouté
La grille est maintenant:
la source
w__t_
Je vois ce que vous avez fait là-basPowerShell, 14 caractères ajoutés
Je serai gentil et donnerai aux gens beaucoup plus d'espace pour respirer. :)
La grille est maintenant
la source
ALGOL 68, 7 caractères ajoutés
La nouvelle grille:
la source
LOLCODE , 31 caractères ajoutés
Juste à la droite du milieu, tourné de 90 o . Buter bien contre
-
,et
d
là. Entre cela, les fichiers Batch et PowerShell, je suis assez sûr que je ne gagnerai pas en fonction des points. :-)La grille est maintenant:
(J'ai également corrigé la quatrième ligne en partant du bas)
la source
Prolog (SWI), 14 caractères ajoutés
Lit un seul caractère et le sort. Sur Ideone, cela fonctionne mais avec une sortie vers stderr. Avec
swipl
Ubuntu, il effectue les opérations suivantes:où
X
est le caractère entré et?-
est une invite. Vous pouvez sortir de l'invite avec Ctrl-D.Nouvelle grille (le code se lit de haut en bas et de droite à gauche près du coin supérieur droit):
la source
oOo CODE , 1 caractère ajouté
Nouvelle grille:
la source
Labyrinthe , 1 personnage ajouté
Lit et écrit un personnage.
La grille est maintenant
la source
Rayon, 11 caractères ajoutés
Un H supplémentaire a été ajouté pour l'empêcher de se comporter comme un programme pour chats. Les
q
eti
sont ignorés. J'aurais probablement pu faire plus grand avec ça, mais cela ressemblait un peu à tricher.La grille est maintenant
la source
ferNANDo , 31 caractères ajoutés
La nouvelle grille:
la source
Schéma, 8 caractères ajoutés
La nouvelle grille:
la source
Bash, 6 caractères ajoutés
La grille est maintenant:
la source
itflabtijtslwi , 5 caractères ajoutés
C'est la langue /// mais avec la saisie de l'utilisateur lorsqu'il est entouré de
GG
. C'est "nommé" ce qui les sépare. Par conséquent, cela fait écho au premier caractère de STDIN. (Comme il ne lit que 1 caractère, le nom de 2 caractères signifie qu'il s'arrêtera toujours après le remplacement de Oa par ce que vous tapez)Ajouté en haut à gauche verticalement de (en travers, en bas) = (0,1) à (0,9)
La nouvelle grille:
la source
GOa
! +1PHP, 24 caractères ajoutés
La grille est maintenant:
la source
var_dump($argv);
. Vous pouvez utiliser à laprint_r($args)
place et économiser 1 octet.Retina , 1 personnage ajouté
C'est essentiellement
cat
.G
active le mode grep, c’est-à-dire que le programme imprime chaque ligne du programme qui correspond à la regex donnée. Mais l'expression régulière étant vide, chaque ligne est une correspondance et toute l'entrée est imprimée dans STDOUT.la source
RunR , 8 caractères ajoutés
Un dernier pour le moment
Ajouté près du milieu, en bas et à gauche. La nouvelle grille est
la source
Mathematica, 19 caractères ajoutés
Nouvelle grille:
la source
Haskell, 16 caractères ajoutés
Copie stdin sur stdout. Le code commence à la ligne 15, caractère 39.
la source
Ook! , 19 caractères ajoutés
Placé sur la 24ème ligne.
la source
Octave / Matlab, 23 caractères ajoutés
Pouvons-nous faire entrer C? :RÉ
La grille est maintenant:
la source