Imprimer le premier caractère des réponses précédentes

17

Le gagnant accepté est isaacg, avec sa réponse ASCII 7 bits . Cependant, le défi n'est pas encore terminé - cette prime est attribuée à la réponse la plus courte. Si, d'une manière ou d'une autre , vous obtenez tous les premiers caractères de toutes les autres réponses en 10 octets, vous gagnerez la prime. Cela inclut tous les caractères de la réponse GolfScript du Round 2 (plus celui ajouté par cette réponse elle-même). C'est la seule fois où je vous laisserai hors service - si vous avez des objections à cela, faites-le moi savoir dans les commentaires.

Je voudrais rendre hommage à randomra, qui m'a aidé avec mon ancienne idée et m'a donné cette nouvelle.

Gagnants précédents

  • Ronde 1: isaacg, avec ASCII 7 bits
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Vous savez, le golf par code est vraiment cool. Les gens relèvent un défi, et il diminue lentement! Mais faisons cela d'une autre manière. Voici donc mon défi:

  • Le code imprime le premier caractère de toutes les réponses précédentes dans l'ordre où elles ont été publiées (la première réponse n'imprime rien)

  • Le code commence à 100 octets et diminue de 5 à chaque fois.
  • Si deux messages vont par la même réponse (c'est-à-dire qu'ils ont tous deux posté à quelques secondes l'un de l'autre), le plus récent doit ajouter le caractère de l'ancien et diminuer de 5 octets (même de quelques secondes).
  • N'importe quelle langue peut être utilisée.
  • Votre code ne doit produire aucune erreur.
  • Votre code doit utiliser tous les octets requis pour la première étape.
  • Votre code doit être imprimé sur STDOUT.
  • Les caractères non imprimables sont OK, mais:
    • Ils ne peuvent pas être le premier personnage (pour les besoins de cette question)
    • Vous devez faire savoir à tout le monde où ils se trouvent
  • Vous pouvez publier plusieurs réponses, mais:
    • Vous devez attendre 2 réponses avant d'en poster une autre (donc si vous avez posté les 100 octets, vous devez attendre 85 octets.)
  • Vous ne pouvez pas:
    • utiliser plus de 10 octets de commentaires
    • ont des variables qui ne sont pas utilisées pour l'ensemble du programme
    • remplir le programme avec des espaces
    • ont des noms de variables de plus de 10 octets (mais vous pouvez avoir plusieurs variables de moins de 10 octets)
      (la première réponse d'EMBLEM étant l'exception à ces règles, car elle a été publiée avant ces restrictions.)
  • Pas de failles standard. À moins que vous ne vouliez retirer tout le plaisir du défi.
  • Lorsque plus aucune réponse n'est soumise pendant 3 semaines, la réponse qui utilise le moins d'octets l'emporte. (En cas d'égalité, celui qui imprime la chaîne la plus longue l'emporte.)

Exemple: La troisième réponse doit être un code long de 90 octets produisant deux caractères (le premier caractère du code de 100 octets puis le premier caractère du code de 95 octets). La première réponse ne produit rien (aucune réponse précédente pour obtenir des caractères).

ASCIIThenANSI
la source
"Espaces inutiles" est une mauvaise formulation. L'espace blanc de Python pour terminer les instructions n'est pas nécessaire, car vous pouvez utiliser des points-virgules.
EMBLEM
8
Peut-être que nous pouvons recommencer à 100 octets, mais commencer par ppuppPq([#fwSmdP[comme chaîne de départ et redémarrer chaque fois que la chaîne est plus longue que le nombre d'octets autorisé. Je ne peux pas penser à un critère gagnant alors, cependant.
Sanchises
1
@Scimonster Vous pensez honnêtement qu'il existe un jeu de caractères 4 bits qui inclut tout #(PS[dfmpquw? Nous nous heurtons ici aux limites mêmes de la densité de l'information. Sauf si vous écrivez un programme de 10 octets qui traite toutes les réponses précédentes. Je ne sais pas si cela vaut la peine d'attendre.
Sanchises du
2
@sanchises Nous ne disons pas qu'il y en a un. Nous donnons aux gens une chance de voir ce qu'ils peuvent faire. Si personne ne le peut, nous le redémarrerons.
ASCIIThenANSI
6
-1 Pourquoi ce défi n'est-il pas mort avec dignité après la solution des 15 octets? Il semble fallacieux de le changer après qu'une bonne réponse "gagnante" ait été donnée juste pour que vous puissiez continuer à jouer selon des règles différentes.
Geobits

Réponses:

34

ASCII 7 bits, 15 octets

Mise à jour: je ne savais pas que le rembourrage devrait se produire à la fin.

Version correcte, rembourrée à la fin:

hexdump (xxd):

0000000: e1c3 af0e 1438 a8b6 8f37 7a7b 7250 b6    .....8...7z{rP.

Imprimés (je ne sais pas lequel est correct):

�ï8��z{rP�

áï8¨¶7z{rP¶

Ancienne version, mal rembourrée à l'avant:

pá×
T[G½=¹([

Le langage / format ici est un ascii 7 bits, où chaque groupe de 7 bits correspond à un caractère ASCII. Il est utilisé dans le transfert de données SMS. Un décodeur est localisé ici.

Il n'existe pas de décision largement acceptée sur la question de savoir si les réponses à des questions à sortie fixe qui ne sont pas écrites dans un langage de programmation sont autorisées. Voir ce meta post pour plus d'informations. (Je m'excuse, j'ai mal lu ce post plus tôt.)

isaacg
la source
2
Toutes nos félicitations! Vous êtes la seule personne que j'ai vue à compresser une chaîne plus longtemps que le code dans lequel elle est incluse! : D
ASCIIThenANSI
@ASCIIThenANSI La compression d'une chaîne en un programme plus court est facile. Le programme Python print('A'*100)imprime une chaîne de 100 A. La compression d'une chaîne effectivement aléatoire n'est pas facile.
Calvin's Hobbies
6
@ Calvin'sHobbies Ce serait plus facile si nous venions tous de commencer tout notre code avec la lettre «p». : D
ASCIIThenANSI
4
-1 J'aurais dû regarder ça plus tôt ... Cela semble être mal encodé. Il semble que vous commenciez par un peu de remplissage, mais d'après ce que je peux dire du format (et cette réponse étend déjà la définition d'un format, car l'ASCII 7 bits compressé n'est en fait utilisé nulle part), les données devraient être rembourré à la fin, pas au début. Et même avec le rembourrage, je pense que le reste n'est pas encodé correctement.
Runer112
1
Il doit être "áï <SO><DC4>8¨¶7z {rP¶".
LegionMammal978
25

Élément, 80 octets

programs do many fun things, like print the letters p`, p`, u`, and p` in a row.

C'est un langage que j'ai créé il y a plus de trois ans. Vous pouvez trouver un interprète, écrit en Perl, ici . L' `opérateur imprime l'élément supérieur de la pile (les lettres). L'autre ponctuation fait des choses, comme la concaténation, mais les résultats ne sont jamais imprimés.

PhiNotPi
la source
1
Très intelligent, monsieur. Très intelligent ...
ASCIIThenANSI
10

Clip , 20 octets

[M"ppuppPq([#fwSmdP"
bcsb1001
la source
6
Je pense que vous êtes le dernier debout. Sauf si quelqu'un peut compresser ppuppPq([#fwSmdP[en 15 octets ET le sortir.
Sanchises
@sanchises Si quelqu'un le fait, j'accorderais une prime. Parce que ce serait juste bon.
ASCIIThenANSI
3
@sanchises Si seulement il y avait un langage ésotérique qui produisait le programme avec toutes les occurrences de premplacé par pp. Une solution serait alors pupPq([#fwSmdP[.
bcsb1001
1
@ bcsb1001 Oui, j'ai pensé à quelque chose comme ça récemment; un langage ésotérique où chaque commande est une solution de défi gagnante sur ce site et utilise la sortie de cette commande comme entrée pour la prochaine commande. Ce serait génial si quelqu'un pouvait programmer quoi que ce soit là-dedans.
Sanchises
1
@sanchises Mais cela enfreindrait-il une règle d'échappatoire standard en allant sur Internet?
ASCIIThenANSI
5

Lisp commun, 65 octets

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))
Géobits
la source
Le dernier 112 devrait être changé en 80 (en quelque sorte).
LegionMammal978
12
Avec cette réponse, un âge de ténèbres a été inauguré.
PhiNotPi
5

Scratch, 45 octets

when green flag clicked
show
say[ppuppPq([#f]

Nombre d'octets selon la représentation textuelle . Voir méta .

Scimonster
la source
Bon travail. Je n'ai jamais pensé à utiliser Scratch.
ASCIIThenANSI
4

Python 3, 95 octets

pre='public class f{public static void main(String[] a){System.out.print("");}}'
print(pre[0])
isaacg
la source
4

Haskell, 35 octets

main = putStrLn "\&ppuppPq([#fwS\&"
user19057
la source
Que fait "\ &"?
Hjulle
4
@Hjulle Prenez deux personnages. (C'est un code d'échappement pour la chaîne vide.)
user19057
4

Cela fait 24 heures depuis le montage! Faisons cela! :RÉ

Java, Round 2, 100 octets

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}
EMBLÈME
la source
1
Que diriez-vous de marquer ce "Round 2"?
Claudiu
4

Round 2: Ruby, 75 octets

"ppuppPq([#fwSmdP[ppnvos".chars.each do|character|;print character;end#4444

J'ai pensé que je rendrais les choses un peu plus difficiles en commençant ma réponse par un devis! >: D

EMBLÈME
la source
3

Java, 100 octets

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl
EMBLÈME
la source
3

Mathematica, 75 octets

Print[StringJoin[First/@Characters/@{"publ","pre=","usin","p1 =","prog"}]];
LegionMammal978
la source
3

F #, 60 octets

[<EntryPoint>]let main arg=System.Console.Write "ppuppPq(";0
LegionMammal978
la source
3

Script F #, 40 octets

System.Console.Write "\u0070puppPq([#fw"

Il a son propre type de fichier ( .fsx), donc je suis presque sûr qu'il compte comme langue.

LegionMammal978
la source
1
Vous avez oublié le «w» de Scratch.
ASCIIThenANSI
Je pense qu'il manque également le «f» de la réponse javascript de 50 octets.
user19057
Correction de cela aussi
LegionMammal978
3

Tour 2: /// , 65 octets

\p/CodeGolfIsAwesome!/puppPq/CodeGolfIsAwesome!([#fwSmdP[ppnvos"R

Je pensais que je le pimenterais un peu plus avec une barre oblique inverse :)

rodolphito
la source
2

C #, 90 octets

using System;namespace IAmAwesome{class Program{static void Main(){Console.Write("pp");}}}
LegionMammal978
la source
2

Ruby, 70 octets

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}
EMBLÈME
la source
Vous devez le réorganiser ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978
2

C, 55 octets

#include<stdio.h>
int main(){return puts("ppuppPq([");}
user19057
la source
Il doit être remplacé par "ppuppPq([".
LegionMammal978
@ LegionMammal978 Merci, corrigé.
user19057
2

JavaScript, 50 octets

function foo() {console.log("ppuppPq([#");}
foo();
EMBLÈME
la source
Cela devrait êtreppupPq([#
ASCIIThenANSI
3
@ASCIIThenANSI Je ne pense pas.
Scimonster du
2

MATLAB, 30 octets

disp([112 112 'uppPq([#fwSm'])

Montre bien à quel point MATLAB est lâche avec les types de données.

Sanchises
la source
2

Mathematica, 25 octets

Print["ppuppPq([#fwSmd"];
LegionMammal978
la source
1
J'avais une nouvelle solution CJam de 25 octets qui encodait la chaîne de manière non simple. Malheureusement, il semble qu'il ne verra jamais le jour. : - /
Runer112
@ Runer112 Vous et toutes vos petites rimes / Pourtant, j'ai eu cette réponse ~ 20 secondes avant celle de 30 octets.
LegionMammal978
2

Round 2: Lot, 70 octets

REM BATCHS
GOTO B
:C
ECHO ppuppPq([#fwSmdP[ppnvos"
GOTO A
:B
GOTO C
:A

Votre citation était futile. D:>

Edit: je viens de penser que j'allais par la taille du fichier au lieu du nombre de caractères, je ne sais pas comment les octets doivent être comptés: P

Edit 2: Ajout d'un commentaire pour remplir les octets. Si vous vérifiez le nombre d'octets sur une machine Windows, faites comme si le "REM BATCHS" est juste "REM" je suppose. : P

bloo
la source
Je compte les octets avec gedit; il dit que votre réponse est 63. Pas de soucis; vous êtes assez proche pour combler le vide avec des commentaires.
EMBLEM
1
Ah, très bien, je vais juste coller un commentaire là-dedans.
bloo
3
@EMBLEM C'est parce que la nouvelle ligne de Windows l'est \r\n. Il y a 7 supplémentaires \r.
jimmy23013
2

Tour 2, Mathematica, 40 octets

Print@"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'"

Oui deuxième page!

LegionMammal978
la source
La sortie ne manque-t-elle pas un c?
plannapus
1
@plannapus C'était, corrigé
LegionMammal978
2

Round 2, > <> , 45 octets

4 caractères de commentaires.

'c(v\R"sovnpp[PdmSwf#[(qPppupp'01.uwyz
ol?!;

La chaîne contient maintenant les deux "et ', donc> <> les réponses ne peuvent plus simplement l'entourer de l'un ou de l'autre (c'est ainsi que j'ai évité les échappements).

bcsb1001
la source
2

Tour 2, Golfscript, 35 octets

"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'P"

Aucun octet de déchets. Commence à nouveau avec un devis!

Claudiu
la source
ASCII 7 bits ne fonctionnera pas ici, il ne crée que 28 octets et comprend un NUL supplémentaire
LegionMammal978
Quelqu'un plus intelligent que moi devra le faire .. peut-être qu'il y a un langage encodé en 6 bits qui peut être exécuté pour produire la sortie appropriée ..
Claudiu
Non, 6 bits créeraient 24 octets, mais nous en avons besoin de 30.
LegionMammal978
@ LegionMammal978: À droite, 24 octets, puis 8 instructions de six bits pour les imprimer ou faire quoi que ce soit
Claudiu
1
L'apostrophe de 2 réponses vous manque
14mRh4X0r
1

Python 3, 85 octets

p1 = 'publ'
p2 = 'pre'
p3 = 'usi'
def cprint():
  print(p1[0], p2[0], p3[0])
cprint()
ASCIIThenANSI
la source
1

Tour 2, C #, 95 octets

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}
LegionMammal978
la source
Que diriez-vous de marquer ce "Round 2"?
Claudiu
1

Round 2, script F #, 55 octets

(**)System.Console.Write(@"uppPq([#fwSmdP[ppnvos""R\v")

Voir ma réponse précédente au script F # pour savoir pourquoi je pense que c'est une langue valide.

LegionMammal978
la source
1

Tour 2, R, 50 octets

cat('ppuppPq([#fwSmdP[ppnvos\"R\\v(',file=stdout())
plannapus
la source
1

Round 2, Javascript, 60 octets

var _p = "p"; alert (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos \" R \\ ");
SuperJedi224
la source
Je pense que votre __tomberait sous des variables inutiles. Essayez de passer pà un nom à deux lettres et faites la chaîne entre guillemets pour ajouter une barre oblique inverse pour le devis imprimé. Cela devrait compenser les 3 caractères que vous avez perdus en supprimant le __,.
LegionMammal978
1
Ils n'ont pas dit de ne pas les utiliser. Ils ont dit d'en utiliser au plus dix octets.
SuperJedi224
Cela signifiait que vous pouvez utiliser les variables nécessaires jusqu'à 10 octets, mais vous ne pouvez pas utiliser complètement des variables inutiles .
LegionMammal978
@Rainbolt Vous l'interprétez comme "Vous ne pouvez pas utiliser plus de 10 octets de (commentaires), (variables inutiles), (remplir le programme avec des espaces), ou (noms de variables) plus de 10 octets", mais à cause de la deuxième référence, je le vois comme "Vous ne pouvez pas utiliser (plus de 10 octets de commentaires), (variables inutiles), (remplir le programme avec des espaces), ou (noms de variables de plus de 10 octets)".
LegionMammal978
J'ai corrigé l'ambiguïté. Dans la question, var __est interdit (non utilisé dans le reste du programme), mais un changement de nom pserait acceptable.
ASCIIThenANSI
1

Round 2: Javascript, 90 octets

var p = "p"; alert (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " n "); // p
SuperJedi224
la source
Que diriez-vous de marquer ce "Round 2"?
Claudiu
Ils __,relèveraient de variables inutiles .
LegionMammal978