"Ciao, mondo!" (Discussione della polizia)


16

Questo è il filo della polizia. Il thread dei ladri è qui .

La tua sfida è scrivere un programma o una funzione che, con un certo input, stampa la stringa esatta Hello, World!e una nuova riga. Le maiuscole, la spaziatura e la punteggiatura devono essere esatte.

L'input può essere acquisito tramite input standard, un file o argomenti della riga di comando / funzione. L'output può essere fornito tramite valore restituito, scrivendo in un file o output standard.

Il programma deve stampare Hello, World!per almeno un input. Quando al tuo programma viene fornito un input errato (ovvero l'input che non lo fa stampare Hello, World!), può fare quello che vuoi - crash, stampare assurdità casuali, chiamare Chuck Norris, ecc.

Non è possibile utilizzare un algoritmo di hashing o metodi simili per oscurare l'input richiesto.

Si preferisce che i contributi siano eseguibili e crackabili su TIO . Sono consentiti invii non eseguibili o crackabili su TIO, ma includere le istruzioni per scaricarli / eseguirli.

Dopo una settimana, questa sfida sarà chiusa alle future candidature della polizia. Il vincitore è il codice più breve che non viene crackato dopo una settimana di pubblicazione ("è" il codice, non questa sfida). Il vincitore sarà accettato dopo due settimane.

Dopo che è trascorsa una settimana dalla pubblicazione, contrassegnare la risposta come sicura e mostrare l'input (in a > ! spoiler quote). Se un ladro rompe il tuo invio (prima del fine settimana), contrassegnalo come incrinato e mostra l'input di arresto (in a > ! spoiler quote).

Cerchi invii non crackati?

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>


Molto simile non è un dupe però.
Post Rock Garf Hunter,

13
Come ho detto nella sandbox, ritengo che questo sia un duplicato della domanda di arresto poiché qualsiasi risposta lì potrebbe essere pubblicata qui, ma con il codice per e il ciclo infinito sostituito con il codice per stampare ciao mondo. Non voterò ancora perché avrei martellato, ma sono abbastanza convinto che si tratti di un imbecille.
FryAmTheEggman,

5
Ovviamente sha3rientra in quella categoria, ma altrimenti dove disegni la linea? Voglio dire che mod 1e3è anche una funzione hash, e andrei persino così lontano e argomenterei che molte delle proposte saranno funzioni hash, dato che questa sfida in sostanza lo richiede.
flawr

1
Sulla base delle risposte che ho visto in passato, non è apparso nulla che mi convince che questo non sia un duplicato. Per ora chiuderò la sfida del poliziotto, e se la comunità non è d'accordo, può essere riaperta, e se la comunità concorda, possono anche chiudere il filo del ladro.
FryAmTheEggman,

1
@Dopapp questo è già stato discusso, qui (alcuni commenti eliminati) e in chat. Le risposte non possono essere incollate, né facilmente trasferite, da quella sfida a questa, quindi non sono duplicati.
MD XF,

Risposte:


3

Python 3, 191 186 byte (SICURO!)

Come la mia precedente risposta, ma senza la dichiarazione noob eval, in modo che qualcuno debba effettivamente risolvere il problema che ho creato.

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)]]))

ora eseguilo con i parametri corretti, come python3 hw.py 1 2 3


Modifica : nella versione precedente mancava una virgola in "Hello, World!", E mi sono anche reso conto che aveva un numero non necessario, che ora non c'è più.


Modifica 2 : Solo per divertimento, ecco una versione Pyth quasi identica (47 byte) dello stesso codice:

KEJ"Hello, World!"jkm@J.Rs.e*b.t*dk1K0.e+*2kCbJ

L'input è preso da stdined è nella forma di un elenco di argomenti, come ad esempio[1,2,3]

Non vedo il senso di pubblicare una risposta separata perché se crei la versione Pthyon3, crei anche la versione Pyth, anche senza conoscere Pyth.


Risposta:

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

Spiegazione del codice:

''.join()crea la stringa ciao mondo da una matrice di caratteri dalla stringa "Hello, World!". Il puzzle è risolto quando quelle indicazioni lo sono [0,1,2,3,4,5,6,7,8,9,10,11,12]. Ogni indice viene calcolato da un input e dalle costanti fornite nella riga di comando. Gli ingressi sono una serie codificata indurita [2*i+ord(c) for i,c in enumerate('Hello, World!')]. La funzione che collega l'input, le costanti e l'output (indica) è questa:sum([c*cos(x*i) for i,c in enumerate(CONSTANTS)]) . Questo è un classico problema di modellazione, in cui stai cercando di adattare i dati al tuo modello.

Arrivando alla soluzione, in 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


2
Nel caso in cui non lo sapessi, literal_eval()nel astmodulo può essere utilizzato per valutare in modo sicuro le espressioni, in modo che il print(problema di iniezione del codice non funzionasse. Probabilmente non è rilevante qui, ma ho pensato di menzionarlo.
Esolanging Fruit il

2
sei sicuro che questo possa stampare Hello, World!? Non sono ancora craccati, ma sembra che manchi una virgola (solo 12 iterazioni nel ciclo di join)
Uriel

Oh, hai ragione, manca una virgola. Lo correggerò ora.
Rexroni,

@ Challenger5 grazie, non lo sapevo.
Rexroni,

12

TeX - 38 byte Cracked (ish)

Questo vale la pena, perché non riesco a immaginare nessuno in un sito che scriva brevi pezzi di codice conoscerebbe TeX:

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

Per eseguirlo, dovresti ottenere una forma di TeX che consente la modalità interattiva. Salvalo su un file ed esegui TeX (o pdfTeX, XeTeX, ecc.) Su di esso.

Modifica: attualmente sto considerando questo semi-crack. La soluzione prevista utilizza l'input di stdin, ma l'input TeXnically dal modo in cui viene invocato il programma è valido. Aggiungerò risposte TeX più subdole se qualcuno ottiene il metodo previsto.

Ecco la soluzione prevista:

^ C Ia - Il primo tasto è control-c, che causa un errore. Quindi, premi I (maiuscola i) per inserire un comando. Quindi digiti un (o qualsiasi altra cosa per essere composto). Normalmente, il messaggio che è stato stampato su stdout sarebbe seguito da uno spazio e quindi da un ')'. Quando si digita qualcosa, fa sì che le informazioni sul carattere vengano emesse dopo il messaggio. Ciò significa che viene lanciata una nuova riga e la ')' viene spostata in seguito.

Questo può essere subdolo, ma dovrebbe comunque rientrare nelle regole del gioco.


Benvenuti in PPCG. Buona prima risposta
Евгений Новиков

Non sarebbe sufficiente usare tex \ Hello, world!\bye(23 byte)?
Werner,

@Werner che consentirebbe l'input dell'utente?
Un uomo d'oro il

Questo è davvero pensato per essere rotto? : o
Felix Palmen,

3
texnicallyOh mamma.
MD XF,

7

> <> , 538 byte, Cracking di 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<
                        ^

Provalo online o potresti voler utilizzare il parco giochi per pesci .

Le prime tre righe vengono lette in una stringa da STDIN e usano i suoi caratteri charcod mod 26 come coordinate per inserire i caratteri " >/v>v\v</>" nel labirinto sottostante. La soluzione prevista è una stringa di 20 caratteri composta solo dalle lettere dalla A alla Z (anche se, ovviamente, puoi usare tutto quello che vuoi).

Soluzione:

L'input previsto è OCEANICWHITETIPSHARK(è un pesce!). Il percorso attraverso il labirinto appare come:

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<
                 |  |   ^


Cracked! Mi ha preso per sempre.
Rexroni,

3
Ehi, sospettavo che la risposta potesse essere una parola, ma non ho fatto alcun tentativo di decodificarla. Sono ancora più colpito.
Rexroni,

6

Ottava, 59 byte, Cracked

Funziona in Octave 4.2.0. Non posso garantire la compatibilità con tutte le versioni.

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

Nota: questo non stampa spazi finali o nuove righe. Ecco come appare:

enter image description here

In pratica dice: "Stampa la stringa di input, a meno che l'input sia 'Hello, World!', Nel qual caso non dovrebbe stampare nulla (o il carattere null).


Non sono sicuro che %csignifichi stringa o carattere ... forse stai nascondendo qualcosa? Inoltre *~mi rende un po 'sospetto ...
Erik the Outgolfer,

Non sono sicuro, ma incrinato ?
ბიმო

@BruceForte stampa un byte null alla fine dell'output, non sono sicuro che sia valido ... link
MD XF

1
Sono abbastanza sicuro che la soluzione prevista sia questo genere di cose.
Jonathan Allan,

1
@BruceForte, no. non c'era \n. Ho pensato che il testo della domanda dicesse " newline finale opzionale ".
Stewie Griffin,


5

MATL , 6 byte. Cracked

tsZp?x

Provalo online!


Incrinato , ma se questa non è la soluzione voluta, sembra un po 'barare.
Dennis,

@Dennis La soluzione prevista era ['Hello,' 1 'World!']. Perché barare? :-( Il documento / aiuto per Ddice La maggior parte dei caratteri di input inferiori a 32 sono sostituiti dallo spazio
Luis Mendo

Intendevo barare da parte mia, trasformando una newline LF in una newline CR + LF.
Dennis,

@Dennis Ah, capisco. Beh, penso che sia anche perfettamente valido
Luis Mendo il

5

Esplodi , 23 byte, Incrinato

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

Più in arrivo, questo è solo l'inizio> :)

Provalo online!

Spiegazione Explorer

Ci sono quattro esploratori in questo programma. Non sono del tutto sicuro che wait ( >) funzioni correttamente.

@_?

Leggere l'input dell'utente ( ?), scrivere ed estendere il nastro ( @) giù ( _).

&4_-j>5

Per 4 tick (4 ), modifica il nastro ( &) verso il basso ( _), saltando di 5 ( 5), sottraendo ( -) 19 ( j).

&f^~c>

Per 16 tick ( f), modifica il nastro ( &) verso l'alto ( ^) in un'onda ( ~), alternando nessun effetto, +13, nessun effetto e -13 ( c).

&6\|4>7

Per 6 tick ( 6), modifica il nastro ( &) in entrambe le direzioni ( |), diminuendo (\ ) di 4 ( 4) ogni volta e saltando di 7 ( 7). Diminuendo significa che sottrae 4 la prima volta, 8 la seconda volta, ecc.


3
Incrinato ma sentiti libero di dare una spiegazione di ciò che accade :)
Jonathan Allan,

@JonathanAllan ha aggiunto una spiegazione, mi dispiace di aver impiegato così tanto tempo
Stephen,

5

JavaScript (ES6), 173 169 163 150 151 148 143 byte ( Cracking )

Facciamo qualcosa di completamente diverso ... e totalmente malvagio .

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))

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

Provalo online!




Bello! Questa è una vera crepa.
Voile,

Questo è stato davvero difficile da decifrare. Buon lavoro!
DanTheMan

È preso direttamente da uno dei puzzle che ho creato altrove :) (Lascerò che le persone capiscano dove ho pubblicato il puzzle originale.)
Voile,

4

C # (.NET Core) , 130 152 byte, CRACKED

+22 byte, ho dimenticato di trascinare la nuova riga ... Il programma funziona come prima, la nuova riga viene aggiunta a qualsiasi output.

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()

Provalo online!

Il conteggio dei byte include anche

using System.Linq;

Per cominciare sono andato per qualcosa di non troppo pazzo. Può avere più risposte.

Il crack "ufficiale":

. ! $ 0%> 5 & 8' #?) S * MAR [MRX` + 9



4

tcc, 89 byte, rotto da Dennis

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

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

Ciò è particolarmente malvagio a causa della risoluzione dinamica di tcc. Molte funzioni sono predeterminate e il tentativo di sovrascriverle semplicemente non funziona.


Potresti creare un collegamento TIO funzionante con cui le persone possano giocare? ( questo è senza dubbio incompleto - forse ha bisogno di flag del compilatore o qualcosa del genere, non ne ho idea) TBH Non so nemmeno come questo debba prendere input ...?
Jonathan Allan,

Il tcc di Tio non funzionerà. Non si capisce che questo deve essere usato come tcc -run piuttosto che una fase di compilazione e collegamento separata.
Giosuè,

Forse è eseguibile tramite una shell lì, quindi bash è disponibile (so molto poco riguardo a tcc o bash). Altrimenti penso che dovresti dare alcune istruzioni dettagliate per far andare avanti le persone (a meno che la mia mancanza di conoscenza personale sia il problema qui - come ho detto non so nemmeno come il tuo codice ottiene alcun input, tutto ciò che vedo è un putse ho pensato che uscite.)
Jonathan Allan il

Almost have a crack but I'm on mobile and mprotect is being a butt.
MD XF



4

brainfuck, 7 bytes cracked

,+[.,+]

Try it online!

Good luck. (doesn't work with every BF interpreter


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


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))



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!


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


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!


1
Is it generally accepted for the OP to crack submissions?
MD XF


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

Jelly, 11 bytes (cracked)

sLƽ$Xṙ5O½Ọ

Try it online!

Intended input:

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



@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

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)


4
Cracked. Lame crack, but unrestricted eval must be punished =)
Sisyphus


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


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);
}

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!





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!


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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.