„Witaj, świecie!” (Wątek gliniarzy)

16

To jest wątek gliniarzy. Wątek rabusiów jest tutaj .

Wyzwanie polega na napisaniu programu lub funkcji, która przy określonych danych wejściowych wypisuje dokładny ciąg Hello, World! i nową linię. Wielkie litery, odstępy i interpunkcja muszą być dokładne.

Dane wejściowe można pobierać za pomocą standardowego wejścia, pliku lub argumentów wiersza polecenia / funkcji. Dane wyjściowe można podać za pomocą wartości zwracanej, zapisu do pliku lub standardowego wyniku.

Twój program musi wydrukować Hello, World!co najmniej jedno wejście. Kiedy twój program otrzyma niewłaściwe dane wejściowe (tj. Dane wejściowe, które nie zmuszają go do drukowania Hello, World!), może zrobić, co chcesz - zawiesić się, wydrukować losowe bzdury, wywołać Chucka Norrisa itp.

Nie można używać algorytmu mieszającego ani żadnych podobnych metod zasłaniania wymaganych danych wejściowych.

Zgłoszenia są preferowane, aby można je było uruchamiać i krakować na TIO . Zgłoszenia, których nie można uruchomić ani nie można ich krakować w TIO, są dozwolone, ale prosimy o dołączenie instrukcji ich pobrania / uruchomienia.

Po tygodniu to wyzwanie zostanie zamknięte dla przyszłych zgłoszeń gliniarzy. Zwycięzca to najkrótszy kod, który nie jest łamany po tygodniu od opublikowania („to” to kod, a nie to wyzwanie). Zwycięzca zostanie przyjęty po dwóch tygodniach.

Po upływie tygodnia od opublikowania zaznacz swoją odpowiedź jako bezpieczną i pokaż dane wejściowe (w > ! spoiler quote). Jeśli złodziej złamie twoje zgłoszenie (przed końcem tygodnia), oznacz je jako pęknięte i pokaż zatrzymanie (w a > ! spoiler quote).

Szukasz nieskradzionych zgłoszeń?

fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>

MD XF
źródło
Ale bardzo podobny nie dupek.
Post Rock Garf Hunter
13
Jak powiedziałem w piaskownicy, czuję, że jest to duplikat pytania wstrzymującego, ponieważ zamiast tego można tu zamieścić dowolną odpowiedź, ale z kodem i nieskończoną pętlą zastąpioną kodem do drukowania hello world. Nie będę jeszcze głosować, bo młotkuję, ale jestem przekonany, że to dupek.
FryAmTheEggman
5
Oczywiście sha3należy do tej kategorii, ale poza tym, gdzie wyznaczasz granicę? Mam na myślimod 1e3 jest to również funkcja skrótu, a nawet posunę się tak daleko i argumentuję, że wiele zgłoszeń będzie funkcjami skrótu, ponieważ to wyzwanie w zasadzie tego wymaga.
flawr
1
W oparciu o odpowiedzi, które widziałem w ciągu ostatniego dnia, nie pojawiło się nic, co przekonałoby mnie, że to nie duplikat. Na razie zamierzam zamknąć wyzwanie dla gliniarzy, a jeśli społeczność się nie zgodzi, można je ponownie otworzyć, a jeśli społeczność się zgodzi, mogą zamknąć wątek rabusia.
FryAmTheEggman
1
@Dopapp zostało to już omówione, tutaj (niektóre komentarze usunięte) i na czacie. Odpowiedzi nie mogą być wklejane ani kopiowane z tego wyzwania do tego wyzwania, więc nie są duplikatami.
MD XF,

Odpowiedzi:

3

Python 3, 191 186 bajtów (BEZPIECZNIE!)

To samo co moja poprzednia odpowiedź, ale bez stwierdzenia noob eval, więc ktoś musi rozwiązać problem, który stworzyłem.

import sys
from numpy import *
e=enumerate
c='Hello, World!'
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(fromiter(sys.argv[1:],float))])+.01)]for n in[2*i+ord(n)for i,n in e(c)]]))

teraz uruchom go z poprawnymi parametrami, takimi jak python3 hw.py 1 2 3


Edycja : poprzedniej wersji brakowało przecinka w „Cześć, świecie!”, A także zdałem sobie sprawę, że ma niepotrzebne wyliczanie, którego teraz nie ma.


Edycja 2 : Dla zabawy, oto prawie identyczna wersja Pyth (47 bajtów) tego samego kodu:

KEJ"Hello, World!"[email protected]*b.t*dk1K0.e+*2kCbJ

Dane wejściowe są pobierane z stdin listy argumentów, na przykład[1,2,3]

Nie widzę sensu w publikowaniu osobnej odpowiedzi, ponieważ jeśli złamiesz wersję Pthyon3, to również złamiesz wersję Pyth, nawet nie znając Pytha.


Odpowiedź:

python3 hw.py 10.72800138 13.23008796 19.30176276 16.13233012 18.10716041 0.98306644 8.18257475 19.20292132 10.99316856 -2.15745591 6.01351144 5.45443094 10.41260889

Objaśnienie kodu:

''.join()tworzy ciąg hello world z tablicy znaków z ciągu "Hello, World!". Układanka jest rozwiązana, gdy są te wskazania [0,1,2,3,4,5,6,7,8,9,10,11,12]. Każdy indeks jest obliczany na podstawie danych wejściowych i stałych podanych w wierszu poleceń. Wejścia są twarde kodowane seria: [2*i+ord(c) for i,c in enumerate('Hello, World!')]. Tej funkcj że dotyczy wkładu, stałych, a wyjście (indeksy) jest następująca: sum([c*cos(x*i) for i,c in enumerate(CONSTANTS)]). Jest to klasyczny problem z modelowaniem, w którym próbujesz dopasować dane do swojego modelu.

Przybywając do rozwiązania, w python:

from scipy import optimize
x = [2*i+ord(c) for i,c in eumerate('Hello, World!')]
y = [0,1,2,3,4,5,6,7,8,9,10,11,12].
# make your function: 13 terms means we can achieve 13 exact outputs
def f(x,a,b,c,d,e,f,g,h,i,j,k,l,m):
    return sum([c*cos(x*i) for i,c in enumerate([a,b,c,d,e,f,g,h,i,j,k,l,m])])
# curve fit
ans,_ = optimize.curve_fit(f,x,y)
# check answer
[round(f(a,*ans),0) for a in x] # should be 0-12

rexroni
źródło
2
Na wypadek, gdybyś nie wiedział, literal_eval()w astmodule można bezpiecznie ocenić wyrażenia, aby print(problem z wstrzykiwaniem kodu nie działał. Prawdopodobnie nie ma to znaczenia, ale pomyślałem, że o tym wspomnę.
Esolanging Fruit
2
jesteś pewien, że to może wydrukować Hello, World!? Jeszcze nie pękł, ale wygląda na to, że brakuje mu przecinka (tylko 12 iteracji w pętli łączenia)
Uriel
Masz rację, brakuje przecinka. Naprawię to teraz.
rexroni
@ Challenger5 dziękuję, nie wiedziałem o tym.
rexroni
12

TeX - 38 bajtów Cracked (ish)

Warto spróbować, bo nie wyobrażam sobie, żeby ktokolwiek na stronie o pisaniu krótkich fragmentów kodu znałby TeXa:

\read16to\x\message{Hello, World!}\bye

Aby go uruchomić, powinieneś zdobyć jakąś formę TeXa, która pozwala na tryb interaktywny. Zapisz to w pliku i uruchom na nim TeX (lub pdfTeX, XeTeX itp.).

Edycja: Obecnie rozważam to częściowo spękane. Zamierzone rozwiązanie wykorzystuje dane wejściowe ze standardowego wejścia, ale dane teXnically ze sposobu, w jaki program jest wywoływany, są prawidłowe. Dodam bardziej przebiegłe odpowiedzi TeXa, jeśli ktoś dostanie zamierzoną metodę.

Oto zamierzone rozwiązanie:

^ C Ia - Pierwszy klucz to control-c, który powoduje błąd. Następnie naciskasz I (duże i), aby wprowadzić polecenie. Następnie wpisujesz (lub cokolwiek innego, co ma być składane). Zwykle po komunikacie wydrukowanym na standardowe wyjście pojawi się spacja, a następnie „)”. Gdy coś wpiszesz, informacja o czcionce będzie wyświetlana po wiadomości. Oznacza to, że wprowadzana jest nowa linia, a „)” jest przenoszony później.

To może być niedoceniane, ale nadal powinno być zgodne z zasadami gry.

Złoty człowiek
źródło
Witamy w PPCG. Dobra pierwsza odpowiedź
Евгений Новиков
Czy nie wystarczy użyć tex \ Hello, world!\bye(23 bajtów)?
Werner,
@Werner, który umożliwiłby wprowadzanie danych przez użytkownika?
Gold Man
Czy to naprawdę ma być złamane? : o
Felix Palmen
3
texnicallyo Boże.
MD XF
7

> <> , 538 bajtów, Pęknięty przez rexroni

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a
v   "        "       "
   "l"      "o"  /  "e"
v   "        "     " "
      "   /       "l"/
v    "!"           "
 //   " " "      \
v     \"d"o"   " "    "
      " " "   "o"r"  "!"
v"   "H"       " "    "
"l"   ""
""    "r" "         "
    \  " "l"       "d"  "
v   "     "      "  "  "H"
   "e"         /","     "
v " " "     "  " "
 "e" "W"  /"d""l"
v " " "     "  "      "
   "H"               "!"
v   "                 "
                        v
>>"Hello world?"       >o<
                        ^

Wypróbuj online lub możesz skorzystać z placu zabaw dla ryb .

Pierwsze trzy wiersze odczytują ciąg STDIN i używają jego kodów znaków mod 26 jako współrzędnych, aby umieścić znaki „ >/v>v\v</>” w labiryncie poniżej. Zamierzonym rozwiązaniem jest ciąg 20 znaków składający się wyłącznie z liter A – Z (chociaż oczywiście możesz używać wszystkiego, co chcesz).

Rozwiązanie:

Zamierzonym wejściem jest OCEANICWHITETIPSHARK(to ryba!). Ścieżka przez labirynt wygląda następująco:

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a                |  |
v   "        "   |  |"
| v"l"______"o"__/  "e"
v | "        "     " "
| |   "   /       "l"/
v |  "!"           "|
|//   " " "    v_\  |
v|    \"d"o"   " "  | "
||    " " "   "o"r" |"!"
v"   "H"       " "  | "
"l"___""_______ _/__/_____
""    "r" "    | |  "
|>__\  " "l"   | | "d"  "
v   "     "    | "  "  "H"
|  "e"v________/"," |   "
v " " "     "  " "  |
|"e"|"W"  /"d""l"|  |
v " " "     "  " |  | "
<  "H">__________ __\"!"__
v   "            |  | "
    >____________ __ ___v
>>"Hello world?" |  |  >o<
                 |  |   ^

Nie drzewo
źródło
Pęknięty! Zabrał mnie na zawsze.
rexroni
3
Hej, podejrzewałem, że odpowiedź może być słowem, ale nie próbowałem jej rozszyfrować. Jestem pod jeszcze większym wrażeniem.
rexroni,
6

Oktawa, 59 bajtów, Pęknięty

Działa to w Octave 4.2.0. Nie mogę zagwarantować zgodności ze wszystkimi wersjami.

i=input('');printf('%c',i*~all(isequal(i,'Hello, World!')))

Uwaga: Nie drukuje to żadnych spacji ani znaków nowej linii. Tak to wygląda:

enter image description here

Mówi w zasadzie: „Wydrukuj ciąg wejściowy, chyba że jest to„ Witaj, świecie! ”, W którym to przypadku nie powinien drukować nic (lub znaku zerowego).

Stewie Griffin
źródło
Nie jestem pewien, czy %coznacza sznurek, czy char ... może coś ukrywasz? *~Sprawia to, że jestem trochę podejrzliwy ...
Erik the Outgolfer
Nie jestem pewien, ale pęknięty ?
ბიმო
@BruceForte wypisuje bajt zerowy na końcu danych wyjściowych, nie jestem pewien, czy to jest poprawne ... link
MD XF
1
Jestem prawie pewien, że zamierzonym rozwiązaniem jest tego rodzaju sprawa.
Jonathan Allan,
1
@BruceForte, no. tam nie było \n. Myślałem, że tekst pytania brzmi „ opcjonalny końcowy znak nowej linii ”.
Stewie Griffin,
5

CJam , 7 bajtów ( pęknięty )

q5/:i:c

Wypróbuj online!

Zamierzone wprowadzenie:

65608656376564465644656476558065568656236564765650656446563665569

Erik the Outgolfer
źródło
Pęknięty
Jonathan Allan
@JathanathanAllan Darn! Nie był to jednak zamierzony wkład.
Erik the Outgolfer,
5

MATL , 6 bajtów. Pęknięty

tsZp?x

Wypróbuj online!

Luis Mendo
źródło
Pęknięty , ale jeśli nie jest to zamierzone rozwiązanie, to trochę przypomina oszustwo.
Dennis,
@Dennis Zamierzonym rozwiązaniem było ['Hello,' 1 'World!']. Po co oszukiwać? :-( Dokument doc / help Dmówi, że większość znaków wejściowych poniżej 32 jest zastąpiona spacją
Luis Mendo
Miałem na myśli oszukiwanie z mojej strony, przekształcanie nowej linii LF w nową linię CR + LF.
Dennis,
@Dennis Ah, rozumiem. Cóż, myślę, że jest to również całkowicie poprawne
Luis Mendo
5

Explode , 23 bajty, Cracked

@_?&4_-j>5&f^~c>&6\|4>7

Więcej nadchodzących, to dopiero początek> :)

Wypróbuj online!

Wyjaśnienie Eksploratora

Program obejmuje czterech odkrywców. Nie jestem do końca pewien, czy wait ( >) działa poprawnie.

@_?

Odczytaj dane wejściowe użytkownika ( ?), zapisz i przedłuż taśmę ( @) w dół ( _).

&4_-j>5

Dla 4 tików ( 4) zmodyfikuj tape ( &) w dół ( _), przeskakując o 5 ( 5), odejmując ( -) 19 ( j).

&f^~c>

W przypadku 16 tików ( f) zmodyfikuj taśmę ( &) w górę ( ^) w fali ( ~), naprzemiennie bez wpływu, +13, bez wpływu i -13 ( c).

&6\|4>7

Dla 6 tików ( 6) zmodyfikuj taśmę ( &) w obu kierunkach ( |), zmniejszając ( \) o 4 ( 4) za każdym razem i przeskakując o 7 ( 7). Zmniejszenie oznacza, że ​​odejmuje 4 za pierwszym razem, 8 za drugim razem itp.

Stephen
źródło
3
Pęknięty, ale możesz wyjaśnić, co się dzieje :)
Jonathan Allan
Dodane wyjaśnienie Jonathana Allana, przepraszam, że tak długo to trwało
Stephen
5

JavaScript (ES6), 173 169 163 150 151 148 143 bajtów ( pęknięty )

Miejmy coś zupełnie innego ... i całkowicie złego .

const e=eval,p=''.split,c=''.slice,v=[].every,f=s=>(t=c.call(s),typeof s=='string'&&t.length<81&&v.call(p.call(t,`\n`),l=>l.length<3)&&e(t)(t))

Stosowanie: f(something) // returns 'Hello, World!'

Wypróbuj online!

Woal
źródło
Daj nam kontynuować tę dyskusję w czacie .
Евгений Новиков
Pęknięty
DanTheMan,
Ładny! To prawdziwy trzask.
Voile,
To było naprawdę trudne do złamania. Dobra robota!
DanTheMan,
Jest bezpośrednio pobierany z jednej z puzzli, które stworzyłem gdzie indziej :) (Pozwolę ludziom dowiedzieć się, gdzie zamieściłem oryginalną łamigłówkę.)
Voile
4

C # (.NET Core) , 130 152 bajtów, PĘKNIĘTY

+22 bajty, zapomniałem o końcowym znaku nowej linii ... Program działa tak samo jak poprzednio, nowy wiersz jest dodawany do dowolnego wyniku.

a=>a.Distinct().Select((x,y)=>a.Reverse().Skip(y).First()*x%255).Take(a.First()-33).Concat(new int[]{10}).Select(x=>(char)x).ToArray()

Wypróbuj online!

Liczba bajtów obejmuje również

using System.Linq;

Na początek wybrałem coś niezbyt szalonego. Może mieć wiele odpowiedzi.

„Oficjalny” crack:

. ! 0%> 5 i 8 '#?) S * TuE [MRX` + 9

Grzegorz Puławski
źródło
2
Pęknięty
Kamil Drakari,
4

tcc, 89 bajtów, złamany przez Dennisa

#!/usr/bin/tcc -run
#include <stdio.h>

int main()
{
    puts("\n");
}
#include "/dev/stdin"

Jest to szczególnie złe ze względu na dynamiczną rozdzielczość tcc. Wiele funkcji jest wstępnie zadeklarowanych, a próba ich zastąpienia po prostu nie działa.

Jozuego
źródło
Czy możesz stworzyć działający link TIO dla ludzi do zabawy? ( To jest bez wątpienia niekompletne - być może potrzebuje kompilatora flagi czy coś, nie mam pojęcia) TBH ja nawet nie wiem, jak to ma pobierać dane ...?
Jonathan Allan
Tio Tcc nie zadziała. Nie wiadomo, że musi to być użyte jako tcc-run, a nie jako osobna faza kompilacji i łącza.
Joshua,
Może wtedy można go uruchomić przez powłokę, dostępna jest wersja bash (niewiele wiem o tcc lub bash). W przeciwnym razie uważam, że powinieneś podać kilka szczegółowych instrukcji, aby zachęcić ludzi do działania (chyba że mój osobisty brak wiedzy jest tutaj problemem - ponieważ powiedziałem, że nawet nie wiem, w jaki sposób twój kod otrzymuje jakiekolwiek dane wejściowe, widzę tylko putsi pomyślałem, że wyjść.)
Jonathan Allan,
Prawie mam crack, ale jestem na telefonie komórkowym i jestem mprotectdupkiem.
MD XF,
cracked
Dennis,
4

pieprzenie mózgu , 7 bajtów popękanych

,+[.,+]

Wypróbuj online!

Powodzenia. (nie działa z każdym tłumaczem BF

Christopher
źródło
Does your input work with any BF interpreter, including ones with different tape lengths? Does your input work locally, and not just on TIO?
Stephen
@StepHen any length of type afaik
Christopher
cracked
rexroni
1
Does your intended solution work on TIO?
totallyhuman
@totallyhuman thanks, edited the comment so it looks pro. I don't know how to put non-printable input on TIO. I passed input on stdin from a C program with a single printf statement.
rexroni
3

JavaScript (ES6), 102 bytes (Cracked)

The previous version has a massive cheese. Let's try this again...

f=s=>{let r='',i=0;while(i<13)r+=!s[i][0]||s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Try it online!

Author solution:

new Proxy({v:Array(13).fill(0)},{get:(o,p)=>['a','','Hello, World!'[p]][o.v[p]++]})

Usage:

var p=new Proxy({v:Array(13).fill(0)},{get:(o,p)=>['a','','Hello, World!'[p]][o.v[p]++]}) console.log(f(p))

Voile
źródło
Cracked
Birjolaxew
3

Cubically, 159 bytes (Cracked)

+53$!7@6:2/1+551$?7@6:5+52$!7@66:3/1+552$?7@6:5+3/1+4$!7@6:5/1+3$?7@6:5+1/1+54$!7@6:3/1+552$?7@6:5+1/1+552$?7@6:5+52$!7@6:1/1+551$?7@6:5+1/1+3$!7@6:1/1+1$(@6)7

This will be pretty easy to those who are comfortable with Cubically. Try it online!

MD XF
źródło
1
Is anybody comfortable with Cubically? :P
totallyhuman
@totallyhuman The language is actually pretty simple once you get used to it, and it's fun to use!
TehPers
@totallyhuman It looks like there aren't any turning instructions, so this seems like mostly just math with multiples of 9. Very, very convoluted math.
Robert Fraser
Cracked? I think I got the intended input, but it doesn't quite work, but I'm pretty sure it fails due to an interpreter bug. See my explanation in crack post. If I am right, then you were right that it was actually darn easy : )
rexroni
3

6502 machine code (C64), 51 53 bytes (Cracked)

00 C0                     .WORD $C000     ; load address
20 FD AE                  JSR $AEFD
20 EB B7                  JSR $B7EB
8A                        TXA
0A                        ASL A
45 14                     EOR $14
8D 21 C0                  STA $C021
45 15                     EOR $15
85 15                     STA $15
49 E5                     EOR #$E5
85 14                     STA $14
8E 18 D0                  STX $D018
A0 00                     LDY #$00
B1 14                     LDA ($14),Y
20 D2 FF                  JSR $FFD2
C8                        INY
C0 0E                     CPY #$0E
D0 F6                     BNE *-8
60                        RTS
C8 45 4C 4C 4F 2C 20 D7   .BYTE "Hello, W"
4F 52 4C 44 21 0D         .BYTE "orld!", $D

Online demo

Usage: SYS49152,[x],[n], where x is a 16bit unsigned integer and n is an 8bit unsigned integer.

Input is 52768 and 23 (SYS49152,52768,23)

The second parameter is directly written to D018, a control register of the VIC-II graphics chip. Using a suitable reference, you can deduce what to write there for setting lowercase mode without changing other modes and the address of the screen memory: $17, or decimal 23. With that, you can follow the arithmetics in the code, so the first parameter ends up with the correct string address in $14/$15 (little-endian). A more in-depth explanation can be found in the crack.

Screenshot

Invoked with wrong values, a crash is very likely.

For cracking, you might want to run it in a local installation of vice, so here's a BASIC loader to paste into the emulator (RUN it to place the program at $C000):

0fOa=49152to49202:rEb:pOa,b:nE
1dA32,253,174,32,235,183,138,10,69,20,141,33,192,69,21,133,21,73,229,133,20,142
2dA24,208,160,0,177,20,32,210,255,200,192,255,208,246,96,200,69,76,76,79,44,32
3dA215,79,82,76,68,33,13

Update: Added two bytes for the load address to make this an executable C64 PRG file in response to the discussion on meta

Felix Palmen
źródło
Are you sure you need to call the comma checking function at the beginning? I'm under the impression that b7eb does that check, too.
A Gold Man
b7eb calls aefd, but only after calling ad8a (parse number as float (!)(wtf)(MS)) and b7f7 (convert that float to 16bit unsigned int) -- so I have to first call aefd myself for consuming the first comma.
Felix Palmen
Cracked! Sweet sweet vengeance!
A Gold Man
@AGoldMan finally edited my post. Again, well done! Maybe I can come up with another C64 code that's a bit harder to crack (without being unfair), not sure yet :)
Felix Palmen
2

Python 2, 63 bytes, cracked

Just to get the ball rolling...

#coding:rot13
cevag vachg()==h'Hello, World!'naq'Hello, World!'

Try it online!

totallyhuman
źródło
1
Is it generally accepted for the OP to crack submissions?
MD XF
1
cracked
Post Rock Garf Hunter
3
That's interesting... I hadn't realized any "normal" language supports coding in ROT13 o_o
ETHproductions
13
@Arnauld And you're claiming PHP is a normal language?
NoOneIsHere
1
@NoOneIsHere Er... no. My bad. :-P
Arnauld
2

Pyth, 18 bytes (Cracked)

IqGQ"Hello, World!

This is extremely easy, and anyone that knows Pyth would crack it in the blink of an eye, but still... Note that you must put the String between quotes.

Try it online!

Mr. Xcoder
źródło
If anyone cracks it, please edit in yourselves.
Mr. Xcoder
Cracked?
totallyhuman
1
@totallyhuman Yep
Mr. Xcoder
2

JavaScript (Browser only), 95 bytes (Cracked)

try{a=JSON.parse(prompt());try{a=='[object Object]'}catch(a){alert('Hello, World!')}}catch(a){}

Not too hard. Has multiple solutions.


źródło
@Maltysen. That was fast! :)
2

Jelly, 11 bytes (cracked)

sLƽ$Xṙ5O½Ọ

Try it online!

Intended input:

〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ

Erik the Outgolfer
źródło
Cracked
HyperNeutrino
@HyperNeutrino Heh that was sneaky, given it lived for over half an hour. ;)
Erik the Outgolfer
Heh that's cuz I only saw it 10 minutes before seeing it ;P
HyperNeutrino
2

05AB1E, 20 bytes (Cracked)

Shouldn't be too hard though:

•GG∍Mñ¡÷dÖéZ•2ô¹βƵ6B

Uses the 05AB1E encoding. Try it online!

Adnan
źródło
1
cracked
Jonathan Allan
2

Python3, 192 bytes Cracked I guess

from sys import *
from numpy import *
e=enumerate
c='Hello World!'
w=eval(argv[1])
x=[ord(n)+2*i for i,n in e(c)]
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(w)])+.01)]for i,n in e(x)]))

The text it reads is the first program argument: python3 hw.py '[1,2,3]'

Don't be lame and try to put a print("Hello World!") statement as the argument... it prints an error afterwards anyways (at least on the command line), so I don't think that should count. (Edit: somebody did exactly that)

rexroni
źródło
4
Cracked. Lame crack, but unrestricted eval must be punished =)
Sisyphus
2

Jelly,  20  21 bytes (Cracked)

+1 byte - "...and a trailing newline"

œ?“¥ĊɲṢŻ;^»œ?@€⁸ḊFmṪ⁷

Try it online!

There are, in fact, infinite solutions.

Jonathan Allan
źródło
I think I cracked this. My crack works with the which is for some reason missing from the TIO link, so I hope I didn't confuse myself.
tehtmi
Sorry about the TIO mistake!
Jonathan Allan
2

Lua 5.1, 44 bytes (Cracked)

s=...loadstring(#s>4+#s:gsub("%l","")or s)()

Note that Lua 5.1 is a different language than Lua 5.2 or Lua 5.3. "Try it online" doesn't have Lua 5.1. You can check your Lua version by running print(_VERSION). (There should be a solution in any implementation that uses PUC-Rio's Lua 5.1 core.)

As a test harness, you can use something like this:

function test(...)s=...loadstring(#s>4+#s:gsub("%l","")or s)()end

test[[
This is my input!
It can have multiple lines!
]]

Test harness on repl.it

tehtmi
źródło
2

C (GCC on TIO), 84 bytes golfed (Cracked)

#include<stdio.h>
main(x){scanf("%d",&x);printf("%2$s","Hello, World!\n",(void*)x);}

Here's an ungolfed version that works too:

#include <stdio.h>
int main(void)
{
    int x;
    scanf("%d",&x);

    printf("%2$s","Hello, World!\n",(void*)x);
}
MD XF
źródło
2

JavaScript (ES6), 92 bytes (Cracked)

This simple string copy function seems to be really resisting you to copy any strings resembling Hello, World!...

f=s=>{let r='',i=0;while(i<13)r+=s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Try it online!

Voile
źródło
2

Röda, 71 bytes (Cracked)

{[[head(_)]..[unpull(1)if[_1>1]]]|[_()|chars|unorderedCount|[_*(_-1)]]}

Try it online!

Usage: push(/* input */) | f() (where f is a variable that holds the function above).

fergusq
źródło
Cracked
Kritixi Lithos
2

JavaScript (ES6), 135 119 bytes, (Cracked)

const t='Hello, World!',g=q=>eval(`(function(p,q${q}){return eval(p),eval(q)})`),f=s=>g('')(s,0)==t&&g('=1')(s,0)!=t&&t

Try it online!

Voile
źródło
Cracked
Birjolaxew
2

JavaScript (ES6) 107 Bytes [Thanks Евгений Новиков] (Cracked)

i=r=>{for(e="",n=0;r.length>n;o=r.charCodeAt(++n),e+=String.fromCharCode(((3^o^19)<<1^15^13)<<1));return e}

Call on the i function using a string.

The console.log... is for testing purposes.

Try It Online!

Ephellon Dantzler
źródło
Welcome to PPCG! You can save 8 bytes: (1) remove var, (2) () from one arrow-function argument, (3) replace return to eval("") (4) delete ; at the end. 110 bytes solution: pastebin.com/qwdm7fT7 Good luck
Евгений Новиков
Finally got 50 rep, so: Cracked
Voile