Imprimir o primeiro caractere das respostas anteriores

17

O vencedor aceito é isaacg, com sua resposta ASCII de 7 bits . No entanto, o desafio ainda não acabou - essa recompensa é concedida à resposta mais curta. Se, de alguma forma , você obtiver todos os primeiros caracteres de todas as outras respostas em 10 bytes, você ganhará a recompensa. Isso inclui todos os caracteres da resposta do GolfScript da segunda rodada (mais o adicionado pela própria resposta). Esta é a ÚNICA vez que eu deixarei você sair de ordem - se você tiver alguma objeção a isso, me informe nos comentários.

Eu gostaria de dar crédito à randomra, que me ajudou com minha antiga idéia e me deu essa nova.

Vencedores anteriores

  • Rodada 1: isaacg, com ASCII de 7 bits
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Você sabe, o código de golfe é muito legal. As pessoas aceitam um desafio, e ele lentamente se torna menor! Mas vamos fazer isso de outra maneira. Então, aqui está o meu desafio:

  • O código imprimirá o primeiro caractere de todas as respostas anteriores na ordem em que foram postadas (a primeira resposta não imprime nada)

  • O código começa em 100 bytes e diminui em 5 a cada vez.
  • Se duas postagens tiverem a mesma resposta (ou seja, ambas postadas alguns segundos depois da outra), a mais nova precisará adicionar o personagem do antigo e diminuir em 5 bytes (mesmo por alguns segundos).
  • Qualquer idioma pode ser usado.
  • Seu código não deve produzir erros.
  • Seu código deve usar todos os bytes necessários para a primeira etapa.
  • Seu código deve ser impresso em STDOUT.
  • Caracteres não imprimíveis estão OK, mas:
    • Eles não podem ser o primeiro personagem (para o propósito desta pergunta)
    • Você deve deixar todos saberem onde estão
  • Você pode postar várias respostas, mas:
    • Você deve esperar 2 respostas antes de postar outra (portanto, se você postou os 100 bytes, terá que esperar até 85 bytes.)
  • Você não pode:
    • use mais de 10 bytes de comentários
    • tem variáveis ​​que não são usadas por todo o programa
    • preencha o programa com espaço em branco
    • têm nomes de variáveis ​​com mais de 10 bytes (mas você pode ter várias variáveis ​​com menos de 10 bytes)
      (a primeira resposta do EMBLEM é a exceção a essas regras, porque foi postada antes dessas restrições.)
  • Sem brechas padrão. A menos que você queira tirar toda a diversão do desafio.
  • Quando não forem enviadas mais respostas por 3 semanas, a resposta que usa o menor número de bytes vence. (No caso de um empate, aquele que imprime a corda mais longa vence.)

Exemplo: a terceira resposta deve ser um código de 90 bytes com dois caracteres (o primeiro caractere do código de 100 bytes e o primeiro caractere do código de 95 bytes). A primeira resposta não produz nada (não há respostas anteriores para obter caracteres).

ASCIIThenANSI
fonte
"Espaço em branco desnecessário" é uma expressão ruim. O espaço em branco do Python para finalizar as instruções é desnecessário, porque você pode usar ponto e vírgula.
EMBLEM
8
Talvez possamos começar com 100 bytes novamente, mas comece com ppuppPq([#fwSmdP[a string inicial e reinicie sempre que a string for maior que o permitido pelo número de bytes. Mas não consigo pensar em um critério de vitória.
Sanchises
11
@ Scimonster Você honestamente acha que existe um conjunto de caracteres de 4 bits que inclui tudo #(PS[dfmpquw? Estamos nos debruçando nos próprios limites da densidade de informações aqui. A menos que você escreva um programa de 10 bytes que processe todas as respostas anteriores. Não tenho certeza se vale a pena esperar.
Sanchises 07/04
2
@sanchises Não estamos dizendo que existe um. Estamos dando às pessoas a chance de ver o que podem fazer. Se ninguém puder, nós o reiniciaremos.
ASCIIThenANSI
6
-1 Por que esse desafio simplesmente não morreu com dignidade após a solução de 15 bytes? Parece enganoso alterá-lo após uma resposta boa e "vencedora" ter sido dada apenas para que você possa continuar jogando de acordo com regras diferentes.
Geobits

Respostas:

34

ASCII de 7 bits, 15 bytes

Atualizado: eu não sabia que o preenchimento deveria ocorrer no final.

Versão correta, preenchida no final:

hexdump (xxd):

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

Impressões (não tenho certeza do que está correto):

�ï8��z{rP�

áï8¨¶7z{rP¶

Versão antiga, incorretamente acolchoada na frente:

pá×
T[G½=¹([

O idioma / formato aqui é ascii de 7 bits, onde cada grupo de 7 bits corresponde a um caractere ASCII. É usado na transferência de dados SMS. Um decodificador está localizado aqui.

Não existe uma regra amplamente aceita sobre se são permitidas respostas a perguntas de saída fixa que não são escritas em uma linguagem de programação. Consulte esta meta postagem para obter mais informações. (Peço desculpas, eu li mal essa postagem anteriormente.)

isaacg
fonte
2
Parabéns! Você é a única pessoa que vi compactar uma string por mais tempo que o código em que está incluída! : D
ASCIIThenANSI
@ASCIIThenANSI É fácil compactar uma string em um programa mais curto. O programa Python print('A'*100)imprime uma sequência de 100 A's. Comprimir uma sequência efetivamente aleatória não é fácil.
Hobbies de Calvin
6
@ Calvin'sHobbies Isso seria mais fácil se todos tivéssemos iniciado todo o nosso código com a letra 'p'. : D
ASCIIThenANSI
4
-1 Eu deveria ter examinado isso mais cedo ... Parece estar codificado incorretamente. Parece que você começa com um pouco de preenchimento, mas pelo que posso dizer do formato (e essa resposta já está ampliando a definição de um formato, já que o ASCII de 7 bits compactado não é realmente usado em nenhum lugar), os dados devem ser preenchido no final, não no começo. E mesmo com o preenchimento, acho que o restante não está codificado corretamente.
precisa saber é o seguinte
11
Deve ser "á <SO><DC4>8¨7z {rP r".
precisa saber é o seguinte
25

Elemento, 80 bytes

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

Essa é uma linguagem que eu criei há mais de três anos. Você pode encontrar um intérprete, escrito em Perl, aqui . O `operador imprime a parte superior da pilha (as letras). A outra pontuação faz coisas, como concatenação, mas os resultados nunca são impressos.

PhiNotPi
fonte
11
Muito esperto, senhor. Muito inteligente ...
ASCIIThenANSI
10

Clipe , 20 bytes

[M"ppuppPq([#fwSmdP"
bcsb1001
fonte
6
Eu acho que você é o último em pé. A menos que alguém possa comprimir ppuppPq([#fwSmdP[em 15 bytes E produzi-lo.
Sanchises
@sanchises Se alguém o fizer, eu daria uma recompensa. Porque seria tão bom assim.
ASCIIThenANSI
3
@sanchises Se ao menos houvesse alguma linguagem esotérica que produzisse o programa com todas as ocorrências de psubstituídas por pp. Então uma solução seria pupPq([#fwSmdP[.
precisa saber é o seguinte
11
@ bcsb1001 Sim, pensei em algo assim recentemente; uma linguagem esotérica em que cada comando é uma solução de desafio vencedora neste site e usa a saída desse comando como entrada para o próximo comando. Seria incrível se alguém pudesse programar alguma coisa nisso.
Sanchises
11
@sanchises Mas isso quebraria uma regra de brecha padrão saindo para a internet?
ASCIIThenANSI
5

Lisp comum, 65 bytes

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))
Geobits
fonte
Os últimos 112 devem ser alterados para 80 (de alguma forma).
LegionMammal978:
12
Com esta resposta, uma era de escuridão foi inaugurou.
PhiNotPi
5

Zero, 45 bytes

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

Contagem de bytes conforme a representação do texto . Veja meta .

Scimonster
fonte
Bom trabalho. Eu nunca pensei em usar o Scratch.
ASCIIThenANSI
4

Python 3, 95 bytes

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

Haskell, 35 bytes

main = putStrLn "\&ppuppPq([#fwS\&"
user19057
fonte
O que faz?
Hjulle
4
@Hjulle Ocupe dois caracteres. (É um código de escape para a cadeia vazia.)
user19057
4

Faz 24 horas desde a edição! Vamos fazer isso! : D

Java, Rodada 2, 100 bytes

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}
EMBLEMA
fonte
11
Que tal marcar esta "Rodada 2"?
Claudiu
4

Rodada 2: Ruby, 75 bytes

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

Eu pensei que seria um pouco mais desafiador, iniciando minha resposta com uma citação! >: D

EMBLEMA
fonte
3

Java, 100 bytes

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl
EMBLEMA
fonte
3

Mathematica, 75 bytes

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

F #, 60 bytes

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

Script F #, 40 bytes

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

Ele tem seu próprio tipo de arquivo (.fsx ), por isso tenho certeza de que conta como idioma.

LegionMammal978
fonte
11
Você esqueceu o 'w' do Scratch.
ASCIIThenANSI
Eu acho que isso também está faltando o 'f' da resposta javascript de 50 bytes.
user19057
Corrigido que também
LegionMammal978 07/04
3

Rodada 2: /// , 65 bytes

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

Pensei que eu iria apimentar um pouco mais com uma barra invertida :)

rodolphito
fonte
2

C #, 90 bytes

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

Ruby, 70 bytes

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}
EMBLEMA
fonte
Você teria que reorganizá-lo ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978
2

C, 55 bytes

#include<stdio.h>
int main(){return puts("ppuppPq([");}
user19057
fonte
Deve ser alterado para "ppuppPq([".
LegionMammal978
@ LegionMammal978 Obrigado, corrigido.
User19057
2

JavaScript, 50 bytes

function foo() {console.log("ppuppPq([#");}
foo();
EMBLEMA
fonte
Deve serppupPq([#
ASCIIThenANSI
3
@ASCIIThenANSI Acho que não.
Scimonster
2

MATLAB, 30 bytes

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

Bem mostra o quão flexível o MATLAB se sai com os tipos de dados.

Sanchises
fonte
2

Mathematica, 25 bytes

Print["ppuppPq([#fwSmd"];
LegionMammal978
fonte
11
Eu tinha uma nova solução CJam de 25 bytes que codificava a string de maneira não direta. Infelizmente, parece que nunca verá a luz do dia. : - /
Runer112
@ Runer112 Você e todas as suas pequenas rimas / Ainda assim, eu tive essa resposta ~ 20 segundos antes de a de 30 bytes tocar.
LegionMammal978
2

Rodada 2: lote, 70 bytes

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

Sua cotação foi inútil. D:>

Edit: me ocorreu que eu estava analisando o tamanho do arquivo em vez da contagem de caracteres, sem saber como os bytes devem ser contados: P

Editar 2: Adicionado um comentário para preencher bytes. Se você verificar a contagem de bytes em uma máquina Windows, basta fingir que "REM BATCHS" é apenas "REM", eu acho. : P

bloo
fonte
Estou contando bytes com o gedit; diz que sua resposta é 63. Não se preocupe; você está perto o suficiente para preencher a lacuna com comentários.
EMBLEMA
11
Ah, tudo bem legal, vou colocar um comentário lá.
bloo
3
@EMBLEM É porque a nova linha do Windows é \r\n. Existem 7 \rs extras lá.
jimmy23013
2

Rodada 2, Mathematica, 40 bytes

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

Yay segunda página!

LegionMammal978
fonte
A saída não está faltando um c?
plannapus
11
@plannapus Foi, fixa
LegionMammal978
2

2 ª rodada, > <> , 45 bytes

4 caracteres de comentários.

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

A string agora contém as duas "e ', portanto, as respostas não podem mais envolvê-la (é assim que evitei escapar).

bcsb1001
fonte
2

Rodada 2, Golfscript, 35 bytes

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

Sem desperdício de bytes. Começa com uma citação novamente!

Claudiu
fonte
7-bit ASCII não vai funcionar aqui, ele só cria 28 bytes e inclui um NUL adicional
LegionMammal978
Alguém mais esperto do que eu vou ter que fazer isso .. talvez haja alguma linguagem codificada em 6 bits que possa ser executada para produzir a saída adequada ..
Claudiu
Não, 6 bits criariam 24 bytes, mas precisamos de 30.
LegionMammal978
@ LegionMammal978: Certo, 24 bytes e 8 instruções de seis bits para imprimi-los ou fazer o que
Claudiu
11
Está faltando o apóstrofo das 2 respostas anteriores
14mRh4X0r 10/04/2015
1

Python 3, 85 bytes

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

Rodada 2, C #, 95 bytes

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}
LegionMammal978
fonte
Que tal marcar esta "Rodada 2"?
Claudiu
1

Rodada 2, script F #, 55 bytes

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

Veja minha resposta anterior do script F # para saber por que acho que é uma linguagem válida.

LegionMammal978
fonte
1

Rodada 2, R, 50 bytes

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

Rodada 2, Javascript, 60 bytes

var _p = "p"; alert (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos \" R \\ ");
SuperJedi224
fonte
Eu acho que o seu __cairia sob variáveis ​​desnecessárias. Tente mudar ppara um nome de duas letras e faça com que a string entre aspas duplas para adicionar uma barra invertida à cotação impressa. Isso deve compensar os 3 caracteres que você perdeu ao remover o __,.
LegionMammal978
11
Eles não disseram para não usá-los. Eles disseram usar no máximo dez bytes deles.
precisa saber é o seguinte
Isso significava que você pode usar variáveis necessárias de até 10 bytes, mas não pode usar variáveis desnecessárias por completo.
precisa saber é o seguinte
@Rainbolt Você está interpretando como "Você não pode usar mais de 10 bytes de (comentários), (variáveis ​​desnecessárias), (preenchendo o programa com espaço em branco) ou (nomes de variáveis) com mais de 10 bytes", mas por causa de a segunda referência, eu vejo como "Você não pode usar (mais de 10 bytes de comentários), (variáveis ​​desnecessárias), (preenchendo o programa com espaço em branco) ou (nomes de variáveis ​​com mais de 10 bytes)".
precisa saber é o seguinte
Eu consertei a ambiguidade. Na pergunta, var __não é permitido (não sendo usado no restante do programa), mas a renomeação pseria aceitável.
ASCIIThenANSI
1

Rodada 2: Javascript, 90 bytes

var p = "p"; alerta (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " n "); // p
SuperJedi224
fonte
Que tal marcar esta "Rodada 2"?
Claudiu
O __,cairia sob variáveis ​​desnecessárias .
precisa saber é o seguinte