Wydrukuj pierwszy znak z poprzednich odpowiedzi


17

Zaakceptowanym zwycięzcą jest isaacg ze swoją 7-bitową odpowiedzią ASCII . Jednak wyzwanie jeszcze się nie skończyło - nagroda jest przyznawana za najkrótszą odpowiedź. Jeśli w jakiś sposób zdobędziesz wszystkie pierwsze znaki wszystkich pozostałych odpowiedzi do 10 bajtów, wygrasz nagrodę. Obejmuje to wszystkie znaki z odpowiedzi GolfScript z rundy 2 (plus jeden dodany przez tę odpowiedź). To JEDEN czas pozwolę ci odejść z porządku - jeśli masz coś przeciwko temu, daj mi znać w komentarzach.

Chciałbym wyrazić uznanie dla randomry, która pomogła mi przy moim starym pomyśle i dała mi ten nowy.

Poprzedni zwycięzcy

  • Runda 1: isaacg z 7-bitowym ASCII
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Wiesz, golf-code jest naprawdę fajny. Ludzie podejmują wyzwanie, które powoli się zmniejsza! Ale zróbmy to w inny sposób. Oto moje wyzwanie:

  • Kod wydrukuje pierwszy znak wszystkich poprzednich odpowiedzi w kolejności, w jakiej zostały opublikowane (pierwsza odpowiedź nic nie drukuje)

  • Kod zaczyna się od 100 bajtów i zmniejsza za każdym razem o 5.
  • Jeśli dwa posty mają tę samą odpowiedź (tj. Oba opublikowały się w ciągu kilku sekund od siebie), nowszy musi dodać znak starego i zmniejszyć o 5 bajtów (nawet o kilka sekund).
  • Można użyć dowolnego języka.
  • Twój kod nie może powodować żadnych błędów.
  • Twój kod musi używać wszystkich bajtów wymaganych dla pierwszego kroku.
  • Twój kod musi zostać wydrukowany do STDOUT.
  • Znaki niedrukowalne są OK, ale:
    • Nie mogą być pierwszą postacią (ze względu na cel tego pytania)
    • Musisz poinformować wszystkich, gdzie oni są
  • Możesz opublikować wiele odpowiedzi, ale:
    • Musisz poczekać 2 odpowiedzi przed wysłaniem kolejnej (więc jeśli wysłałeś 100 bajtów, musisz poczekać do 85 bajtów).
  • Nie możesz:
    • użyj więcej niż 10 bajtów komentarzy
    • mają zmienne, które nie są używane dla całego programu
    • wypełnij program spacją
    • mają nazwy zmiennych dłuższe niż 10 bajtów (ale możesz mieć wiele zmiennych mniejszych niż 10 bajtów)
      (pierwsza odpowiedź EMBLEMU stanowi wyjątek od tych reguł, ponieważ została opublikowana przed tymi ograniczeniami).
  • Brak standardowych luk. Chyba że chcesz oderwać całą zabawę od wyzwania.
  • Jeśli przez 3 tygodnie nie zostaną przesłane żadne odpowiedzi, wygrywa odpowiedź wykorzystująca najmniej bajtów. (W przypadku remisu wygrywa ten, kto wydrukuje dłuższy łańcuch).

Przykład: Trzecia odpowiedź musi składać się z kodu o długości 90 bajtów i dwóch znaków (pierwszy znak kodu 100-bajtowego, a następnie pierwszy znak kodu 95-bajtowego). Pierwsza odpowiedź nic nie wyświetla (brak poprzednich odpowiedzi, z których można uzyskać znaki).


„Niepotrzebne białe znaki” to złe sformułowanie. Białe znaki Pythona do wyrażeń końcowych nie są konieczne, ponieważ można używać średników.
EMBLEMAT

8
Być może możemy zacząć od 100 bajtów ponownie, ale zacznij od ppuppPq([#fwSmdP[jako ciąg początkowy i ponownie uruchamiając za każdym razem, gdy ciąg jest dłuższy niż dozwolona liczba bajtów. Nie mogę jednak wymyślić kryterium zwycięstwa.
Sanchises

1
@ Scimonster Szczerze myślisz, że istnieje 4-bitowy zestaw znaków, który zawiera wszystkie #(PS[dfmpquw? Wpadamy tutaj na granice gęstości informacji. Chyba że napiszesz 10-bajtowy program, który przetwarza wszystkie poprzednie odpowiedzi. Nie jestem pewien, czy warto na to czekać.
Sanchises

2
@sanchises Nie mówimy, że istnieje. Dajemy ludziom szansę zobaczenia, co mogą zrobić. Jeśli nikt nie może, uruchomimy go ponownie.
ASCIIThenANSI,

6
-1 Dlaczego to wyzwanie nie umarło z godnością po 15-bajtowym rozwiązaniu? Zmienianie go po udzieleniu dobrej, „zwycięskiej” odpowiedzi wydaje się nieuczciwe, abyś mógł nadal grać według różnych zasad.
Geobits,

Odpowiedzi:


34

7-bitowy ASCII, 15 bajtów

Zaktualizowano: Nie zdawałem sobie sprawy, że na końcu powinno dojść do wypełnienia.

Prawidłowa wersja, wyściełana na końcu:

hexdump (xxd):

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

Wydruki (nie jestem pewien, co jest poprawne):

�ï8��z{rP�

áï8¨¶7z{rP¶

Stara wersja, nieprawidłowo wyściełana z przodu:

pá×
T[G½=¹([

Językiem / formatem jest tutaj 7-bitowy ascii, gdzie każda grupa 7 bitów odpowiada znakowi ASCII. Służy do przesyłania danych SMS. Dekoder znajduje się tutaj.

Nie ma powszechnie akceptowanego orzeczenia, czy dozwolone są odpowiedzi na pytania o ustalonych wynikach, które nie są napisane w języku programowania. Zobacz ten meta post, aby uzyskać więcej informacji. (Przepraszam, wcześniej źle przeczytałem ten post.)


2
Gratulacje! Jesteś jedyną osobą, którą widziałem, aby kompresować ciąg dłuższy niż kod, który zawiera! : D
ASCIIThenANSI

@ASCIIThenANSI Kompresowanie łańcucha do krótszego programu jest łatwe. Program Python print('A'*100)drukuje ciąg 100 A. Kompresowanie skutecznie losowego ciągu nie jest łatwe.
Calvin's Hobbies

6
@ Calvin'sHobbies Byłoby łatwiej, gdybyśmy wszyscy zaczęli cały nasz kod od litery „p”. : D
ASCIIThenANSI

4
-1 Powinienem był przyjrzeć się temu wcześniej ... Wygląda na to, że jest nieprawidłowo zakodowany. Wygląda na to, że zaczynasz od odrobiny dopełnienia, ale z tego, co mogę powiedzieć po formacie (i ta odpowiedź już rozszerza definicję formatu, ponieważ spakowany 7-bitowy ASCII nie jest nigdzie używany), dane powinny być wyściełany na końcu, a nie na początku. I nawet przy wypełnieniu myślę, że reszta nie jest poprawnie zakodowana.
Runer112

1
Powinien to być „áï <SO><DC4>8¨¶7z {rP¶”.
LegionMammal978

25

Element, 80 bajtów

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

To jest język, który stworzyłem ponad trzy lata temu. Można znaleźć tłumacza, napisany w Perlu, tutaj . `Operator drukuje górny rzeczy na stosie (Listy). Druga interpunkcja robi rzeczy, takie jak konkatenacja, ale wyniki nigdy nie są drukowane.


1
Bardzo sprytny, proszę pana. Bardzo sprytny ...
ASCIIThenANSI,

10

Klip , 20 bajtów

[M"ppuppPq([#fwSmdP"

6
Myślę, że stoisz ostatni. Chyba że ktoś może skompresować ppuppPq([#fwSmdP[15 bajtów ORAZ wyprowadzić go.
Sanchises,

@sanchises Jeśli ktokolwiek to zrobi, przyznam nagrodę. Ponieważ byłoby tak dobrze.
ASCIIThenANSI,

3
@sanchises Gdyby istniał jakiś ezoteryczny język, który wypisał program ze wszystkimi wystąpieniami pzastąpionymi przez pp. Wtedy byłoby rozwiązanie pupPq([#fwSmdP[.
bcsb1001,

1
@ bcsb1001 Tak, ostatnio pomyślałem o czymś takim; ezoteryczny język, w którym każde polecenie jest zwycięskim rozwiązaniem wyzwania na tej stronie i wykorzystuje dane wyjściowe tego polecenia jako dane wejściowe dla następnego polecenia. Byłoby wspaniale, gdyby ktoś mógł coś w tym zaprogramować.
Sanchises

1
@sanchises Ale czy to złamałoby standardową zasadę luki, wychodząc do Internetu?
ASCIIThenANSI

5

Common Lisp, 65 bajtów

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))

Ostatnie 112 należy zmienić na 80 (jakoś).
LegionMammal978

12
Dzięki tej odpowiedzi zapoczątkowano epokę ciemności.
PhiNotPi


4

Python 3, 95 bajtów

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


4

Od edycji minęły 24 godziny! Zróbmy to! :RE

Java, runda 2, 100 bajtów

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}

1
Co powiesz na oznaczenie tej „rundy 2”?
Claudiu,

4

Runda 2: Rubinowy, 75 bajtów

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

Pomyślałem, że uczynię to trochę trudniejszym, rozpoczynając odpowiedź cytatem! >: D


3

Java, 100 bajtów

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

3

Mathematica, 75 bajtów

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


3

Skrypt F #, 40 bajtów

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

Ma swój własny typ pliku ( .fsx), więc jestem prawie pewien, że liczy się on jako język.


1
Zapomniałeś „w” od podstaw.
ASCIIThenANSI,

Myślę, że brakuje tu również „f” z 50-bajtowej odpowiedzi javascript.
user19057,

Naprawiono to również
LegionMammal978

3

Runda 2: /// , 65 bajtów

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

Pomyślałem, że jeszcze bardziej urozmaici to odwrotnym ukośnikiem :)


2

C #, 90 bajtów

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

2

Rubinowy, 70 bajtów

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}

You'd have to rearrange it to ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978



2

MATLAB, 30 bytes

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

Nicely shows how loose MATLAB goes about with data types.


2

Mathematica, 25 bytes

Print["ppuppPq([#fwSmd"];

1
I had a novel 25-byte CJam solution that encoded the string in a non-straightforward way. Unfortunately, it looks like it'll never see the light of day. :-/
Runer112

@Runer112 You and all your little rhymes / Still, I had this answer ~20 seconds before the 30-byte one chimed.
LegionMammal978

2

Round 2: Batch, 70 bytes

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

Your quote was futile. D:>

Edit: it just occurred to me that I was going by file size instead of character count, not sure how bytes are to be counted :P

Edit 2: Added a comment to fill bytes. If you check byte count on a windows machine, just pretend the "REM BATCHS" is just "REM" I guess. :P


I'm counting bytes with gedit; it says your answer is 63. No worries; you're close enough to fill in the gap with comments.
EMBLEM

1
Ah, alright cool, I'll just stick a comment in there.
bloo

3
@EMBLEM It's because the Windows newline is \r\n. There are 7 extra \rs there.
jimmy23013


2

Round 2, ><>, 45 bytes

4 chars of comments.

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

The string now contains both " and ', so ><> answers can't just surround it with either anymore (that's how I avoided any escapes).


2

Round 2, Golfscript, 35 bytes

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

No waste bytes. Starts with a quote again!


7-bit ASCII won't work here, it only creates 28 bytes and includes an extra NUL
LegionMammal978

Someone cleverer than I will have to do it.. maybe there's some language encoded in 6 bits which can be run to produce the proper output..
Claudiu

No, 6 bits would create 24 bytes, but we need 30.
LegionMammal978

@LegionMammal978: Right, 24 bytes, then 8 six-bit instructions to print them or do whatever
Claudiu

1
You're missing the apostrophe from 2 answers back
14mRh4X0r

1

Python 3, 85 bytes

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

1

Round 2, C#, 95 bytes

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}

How about marking this "Round 2"?
Claudiu

1

Round 2, F# script, 55 bytes

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

See my previous F# script anwer for why I think it is a valid language.


1

Round 2, R, 50 bytes

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

1

Round 2, Javascript, 60 bytes

var _p="p";alert(_p.repeat(2)+"uppPq([#fwSmdP[ppnvos\"R\\");

I think that your __ would fall under unnecessary variables. Try changing p to a two-letter name and make the string double-quoted to add a backslash for the printed quote. That should compensate for the 3 chars you lost from removing the __,.
LegionMammal978

1
They didn't say not to use them. They said to use at most ten bytes of them.
SuperJedi224

It meant that you can use necessary variables of up to 10 bytes, but you can't use unnecessary variables altogether.
LegionMammal978

@Rainbolt You're interpreting it as "You can't use more than 10 bytes of (comments), (unnecessary variables), (filling the program with whitespace), or (variable names) longer than 10 bytes", but because of the second reference, I see it as "You can't use (more than 10 bytes of comments), (unnecessary variables), (filling the program with whitespace), or (variable names longer than 10 bytes)".
LegionMammal978

I've fixed the ambiguity. In the question, var __ is disallowed (not being used in the rest of the program), but renaming p would be acceptable.
ASCIIThenANSI

1

Round 2: Javascript, 90 bytes

var p="p";alert(p+p+p+"u"+p+p+p.toUpperCase()+"q([#fwSmd"+p.toUpperCase()+"["+p+p+"n");//p

How about marking this "Round 2"?
Claudiu

The __, would fall under unnecessary variables.
LegionMammal978
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.