Od programowania puzzli po Code Golf

74

Twoim zadaniem jest napisanie programu, który wypisuje dokładny ciąg znaków Programming Puzzles(opcjonalny znak nowej linii), ale po usunięciu wszystkich spacji, tabulatorów i znaku nowej linii, wypisuje dane Code Golf(opcjonalny znak nowej linii).

Twoja liczba bajtów to liczba pierwszego programu, ze spacjami wciąż tam.

Notatki

  • Spacje w Code Golf i Programming Puzzles zostaną usunięte w ramach usuwania, więc odpowiednio zaplanuj.

  • W kodowaniach, w których 0x09, 0x0A i 0x20 nie są odpowiednio tabulatorami, znakami nowej linii ani spacjami, znaki te zostaną usunięte.

  • Jeśli masz kod

    42  $@ rw$
    @42
    

    to musi wyjść Programming Puzzles. Ponadto w tym samym języku

    42$@rw$@42
    

    musi generować Code Golf.

To jest , więc wygrywa najkrótszy kod w bajtach! Powodzenia!

programmer5000
źródło
3
czy przestrzeń w Code Golfrównież zostanie usunięta, a co z tą w Programming Puzzles.
colsw
2
Będzie to niemożliwe przynajmniej w Wiru i Białej Przestrzeni .
Inżynier Toast
13
Na jakie głosy są bliskie?
OldBunny2800
12
@ OldBunny2800 dobre pytanie. Ciągle o to pytam, ale komentarz zostaje usunięty ...
programmer5000
12
Głosuje się za brakiem danych wejściowych i wyjściowych oraz ograniczeniem formatowania danych wejściowych i wyjściowych. 100%, gdybyś miał sekcję „zasady” z wypunktowaną listą rzeczy, które Twoim zdaniem były oczywiste w odniesieniu do wyzwania, miałbyś 0 głosów bliskich. Chodzi o prezentację z ludźmi z CompSci, jeśli pomyślimy o pozornie idiotycznym pytaniu, które może uratować nam bajt, lub spróbujemy przeciwdziałać temu idiotyzmowi, a ty będziesz świetnym pisarzem pytań.
Magic Octopus Urn

Odpowiedzi:

65

Python 2 , 50 bajtów

print["Code\40Golf","Programming Puzzles"][" ">""]

Wypróbuj online!

Po usunięciu wszystkich spacji:

print["Code\40Golf","ProgrammingPuzzles"]["">""]

Wypróbuj to online!

Dzięki Stephen S za 3 bajty i Erik Outgolfer za 1

Mego
źródło
2
Cholera, ninja'd! Właśnie miałem kliknąć Wyślij odpowiedź! +1
HyperNeutrino 28.04.17
1
Myślę, że właśnie złamałeś mózg mojego przyjaciela. Jak to w ogóle działa?
Stevoisiak
11
@StevenVascellaro To naprawdę proste. W pierwszym przypadku " ">""zwraca True, ponieważ leksykograficznie spacja jest większa niż pusty ciąg. W drugim przypadku "">""zwraca False, ponieważ nic nie może być większe od siebie. Truei Falsesą właściwie 1i 0odpowiednio, tylko w booltypie danych zamiast intlub long. W pierwszym przypadku spacje są zachowywane, więc pozycja o indeksie 1 "Programming Puzzles"jest zwracana dosłownie. W drugim przypadku spacje zniknęły, stąd \x20w elemencie o indeksie 0, "Code\x20Golf"aby zachować spację.
Erik the Outgolfer
9
@StephenS Nie, ponieważ w przeciwieństwie do JavaScript, Python nie ma obsesji na punkcie niejawnego rzutowania.
Mego
1
Jeśli niepokoi brak obsesji Pythona.
John Dvorak,
50

Python 2 , 48 47 bajtów

-1 bajt dzięki Erik the Outgolfer

print' 'and'Programming Puzzles'or'Code\40Golf'

Wypróbuj online!

print''and'ProgrammingPuzzles'or'Code\40Golf'

Wypróbuj online!

Pręt
źródło
9
Aww, właśnie miałem poprawić swoją odpowiedź na to ...
Mego
22

05AB1E , 15 bajtów

”ƒËŠˆ”" "v”–±ÇÀ

Wypróbuj online!

Wyjaśnienie

”ƒËŠˆ”           # push "Code Golf"
      " "v       # for each character in the string " " do
          ”–±ÇÀ  # push "Programming Puzzles"
                 # implicitly output top of stack
Emigna
źródło
... Po prostu tego nie rozumiem. Czy używa to kompresji słownika czy coś takiego?
LegionMammal978
@ LegionMammal978 Jestem pewien, że tak.
NoOneIsHere
@ LegionMammal978: Rzeczywiście używa kompresji słownika.
Emigna
5
@Emigna Okay, ponieważ ostatnio sprawdziłem, żaden z tych ciągów nie mieści się w 4 bajtach: p
LegionMammal978
1
@ Draco18s: Kevin napisał fajny samouczek na stronie ze wskazówkami, której możesz użyć, aby uzyskać lepszy pomysł na to, jak z niego korzystać.
Emigna
21

C, 64 62 53 52 bajty

f(){puts(*" "?"Programming Puzzles":"Code\40Golf");}

Wypróbuj online!

Wykorzystuje fakt, że ciągi C kończą się znakiem zerowym

ćpun matematyki
źródło
16

CJam , 38 bajtów

" ""Programming Puzzles""Dpef!Hpmg":(?

Wypróbuj online! lub ze spacjami usuniętymi

Wyjaśnienie

" "                    e# Push this string.
"Programming Puzzles"  e# Push "Programming Puzzles".
"Dpef!Hpmg":(          e# Push "Dpef!Hpmg" and decrement each char, giving "Code Golf".
?                      e# If the first string is true (non-empty) return the second string,
                       e#   else return the third.

To, czy spacje są w programie, czy nie, określa, czy pierwszy ciąg jest prawdziwy, czy fałszywy.

Business Cat
źródło
27
Twój kod jest smutny:(
Roman Gräf
14
Jeśli chcesz korzystać z niedrukowalnych, "Bncd\x19Fnke":)zamiast tego jest szczęśliwy kod (zamień \x19).
Erik the Outgolfer
15

Galaretka , 18 bajtów

“½ċṭ6Ỵ»ḷ
“Ñ1ɦ+£)G»

Wypróbuj online!

Wyjaśnienie

W programie, jak napisano, pierwszy wiersz to funkcja pomocnicza, która nigdy nie jest uruchamiana. Drugi wiersz (ostatni w programie) jest programem głównym i stanowi skompresowaną reprezentację ciągu "Programming Puzzles"(który następnie jest drukowany niejawnie).

Jeśli usuniesz nowy wiersz, całość stanie się jednym dużym programem. “½ċṭ6Ỵ»jest skompresowaną reprezentacją ciągu "Code Golf". ocenia, ale ignoruje argument po prawej stronie, pozostawiając taką samą wartość jak przed uruchomieniem; może być używany do oceny funkcji pod kątem ich skutków ubocznych (coś, co zrobiłem wcześniej), ale może być również użyty, tak jak tutaj, do skutecznego komentowania kodu.

Co ciekawe, rzeczywista logika jest tutaj krótsza niż pozycja 05AB1E, ale kod jako całość wychodzi dłużej, ponieważ kompresor łańcuchów jest mniej dobry w kompresowaniu tych konkretnych łańcuchów.


źródło
To okazuje się ważne.
Erik the Outgolfer
Według mojej wiedzy niektóre z tych znaków można zapisać za pomocą jednego bajtu, przy założeniu dobrze znanego kodowania. w UTF-8 mam 36 bajtów ... Czy się mylę?
steffen
@steffen: Jelly używa własnego kodowania znaków , w którym wszystkie 256 różnych używanych znaków może być zapisanych w jednym bajcie. (Jedynym powodem, dla którego robi to zamiast używania wcześniej istniejącego kodowania, jest jego czytelność (!); Można w trywialny sposób napisać program zakodowany, powiedzmy, na stronie kodowej 437, i działałby on w interpretatorze Jelly, ale zwykle byłby to znacznie trudniejsze do odczytania.)
13

Galaretka , 17 bajtów

“Ñ1ɦ+£)G“½ċṭ6 Ỵ»Ṃ

Wypróbuj online!

Jak to działa

Podobnie jak w innych odpowiedziach Jelly Ñ1ɦ+£)Gi ½ċṭ6Ỵzakoduj ciągi Programowanie zagadek i Code Golf . rozpoczyna literał ciągów i oddziela jeden ciąg znaków od drugiego, a jednocześnie »wybiera rodzaj literału (kompresja oparta na słowniku), więc daje to

["Programming Puzzles", "Code Golf"]

następnie bierze minimum, uzyskując Code Golf .

Jednak dodając spację między ½ċṭ6i , otrzymujemy zupełnie inny drugi ciąg, a literał ocenia

["Programming Puzzles", "caird coinheringaahing"]

Ponieważ caird coinheringaahing jest leksykograficznie większy niż Puzzle do programowania , wybiera zamiast tego pierwszy ciąg.

Dennis
źródło
Zrobiłem to samo z“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Jonathan Allan
Według mojej wiedzy żadnego z tych znaków nie można zapisać za pomocą jednego bajtu, przy założeniu dobrze znanego kodowania. w UTF-8 mam 34 bajty ... Czy się mylę?
steffen
@steffen Jelly używa niestandardowej strony kodowej, która koduje każdy z 256 znaków, które rozumie jako pojedynczy bajt.
Dennis
@Dennis dziękuję za wyjaśnienie.
steffen
13

JavaScript, 46 43 42 bajtów

x=>" "?"Programming Puzzles":"Code\40Golf"

console.log((x=>" "?"Programming Puzzles":"Code\40Golf")())
console.log((x=>""?"ProgrammingPuzzles":"Code\40Golf")())

grg
źródło
5
Możesz zastąpić \x20pierwszy ciąg spacją.
Kudłaty
Pobij mnie, ładnie zrobione. Czy to wymaga ciągnięcia ;?
ricdesi 28.04.17
@ricdesi nie, nie jest to konieczne.
3
@ricdesi, ponieważ jest to codegolf, jeśli program działa, działa. ;Czasami nie są wymagane w JavaScript.
Stephen
2
Można wymienić \x20z \40zaoszczędzić :-) bajt
ETHproductions
10

Język Wolfram, 62 bajty

"Programming Puzzles"[ToExpression@"\"Code\\.20Golf\""][[0 1]]

Spacja w [[0 1]]to niejawne mnożenie, więc jest to równoważne z [[0]]. Bez spacji 01jest po prostu 1. 0 i 1 część tego wyrażenia są ciągami, które chcemy.

Inne rozwiązanie o wątpliwej ważności (44 bajty, 2 zapisane przez Kelly Lowder):

"Programming Puzzles"["Code\.20Golf"][[0 1]]

\.20Zostaje zastąpiony spacją natychmiast po wpisaniu w środowisku Mathematica, więc nie jest jasne, czy to zostanie usunięte wraz z innymi przestrzenie ...

Nie drzewo
źródło
1
Jak tylko wkleisz (lub wpiszesz) to w Mathematica, (sekwencja oparta na chmurze lub nie) sekwencja ucieczki \:0020zamienia się w spację, a zatem zostanie usunięta, więc nie jestem pewien, czy to się kwalifikuje. \.20Jest także krótszy. O dwa znaki. "Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]będzie działać.
Kelly Lowder
1
@ KellyLowder, hmm, to dobra uwaga. Dodałem inne rozwiązanie, które powinno uniknąć tego problemu. (Dzięki za \.20sugestię - jak to znalazłeś? Myślałem, że przeszukałem całą dokumentację…)
Nie drzewo
1
Znalazłem \.20literówkę. Wydaje się, że działa tylko w przypadku dwucyfrowych kodów znaków. Nie sądzę, że jest to w dokumentacji.
Kelly Lowder
8

Excel - 56 bajtów

=IF(""=" ","Code"&CHAR(32)&"Golf","Programming Puzzles")

Bardzo podobny do większości innych odpowiedzi ... tutaj nic szczególnego.

qoou
źródło
8

Haskell, 48 bajtów

a _="Programming Puzzles";a4="Code\32Golf";f=a 4
a_="ProgrammingPuzzles";a4="Code\32Golf";f=a4

Definiuje funkcję, fktóra zwraca odpowiedni ciąg.

Dla porównania, stara wersja to:

Haskell, 49/47 bajtów

f""="Code\32Golf";f(_)="Programming Puzzles";f" "

ze spacjami usuniętymi

f""="Code\32Golf";f(_)="ProgrammingPuzzles";f""

Dwa proste dopasowania wzoru. (_)pasuje do wszystkich wzorów. Możesz poprawić wersję bez spacji o jeden bajt, definiując drugi wzorzec jako f" "=/ f""=, ale daje to ostrzeżenie „Uzgodnienie wzorca jest zbędne”.

Alternatywne rozwiązanie z tą samą liczbą bajtów:

last$"Code\32Golf":["Programming Puzzles"|" ">""]
last$"Code\32Golf":["ProgrammingPuzzles"|"">""]
nimi
źródło
7

Ohm , 33 32 bajty

Wykorzystuje kodowanie CP437.

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀
▀4>~H├MS░l╬δ

Wypróbuj online! lub spróbuj bez białych znaków

Wyjaśnienie

Z białymi znakami:

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀    Main wire

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀    Push "Programming Puzzles" (compressed string)
                       Implicitly output the top stack element


▀4>~H├MS░l╬δ           Helper wire (never called)

Bez białych znaków:

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀▀4>~H├MS░l╬δ    Main wire

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀                Push "Programming Puzzles" (compressed string)
                   ▀4>~H├MS░l╬δ    Push "Code Golf" (compressed string)
                                   Implicitly output top stack element
Business Cat
źródło
Cieszę się, że w końcu skończyłem kompresję strun!
Nick Clifford
1
@NickClifford Ciekawą rzeczą, którą zauważyłem, była Code Golfdłuższa po kompresji. Myślę, że to z powodu wielkich liter? Tak czy inaczej, jest to nadal krótsze niż normalne pisanie, ponieważ nie mogę tutaj użyć dosłownego miejsca.
Business Cat
Tak, Smaz jest trochę dziwny.
Nick Clifford
Do Twojej wiadomości, możesz wysłać mi ping na czacie, jeśli masz jakieś pytania lub prośby o nowe funkcje dla Ohma.
Nick Clifford
7

Japt , 29 bajtów

Ze spacjami:

`Co¸{S}Golf`r `PžgŸmÚÁ Puzz¤s

Wypróbuj online!

Bez przestrzeni:

`Co¸{S}Golf`r`PžgŸmÚÁPuzz¤s

Wypróbuj online!


Wykorzystuje to fakt, że w Japt spacja zamyka wywołanie metody. W przypadku spacji kod jest mniej więcej równoważny kodowi JavaScript:

("Code"+(S)+"Golf").r(),"Programming Puzzles"

Jest to oceniane jako JavaScript, a wynik jest wysyłany do STDOUT. Ponieważ ostatnim wyrażeniem jest "Programming Puzzles", ciąg ten jest drukowany.

Bez spacji kod jest w przybliżeniu równoważny z:

("Code"+(S)+"Golf").r("ProgrammingPuzzles")

(Jeśli do tej pory tego nie rozgryzłeś, Szmienna jest pojedynczą spacją). .r()Metoda w łańcuchu, jeśli podana jest jeden argument, usuwa wszystkie wystąpienia tego argumentu z łańcucha. Ponieważ "Code Golf"nie zawiera "ProgrammingPuzzles", zwraca "Code Golf"niezmieniony, który jest następnie wysyłany do STDOUT.

ETHprodukcje
źródło
Nawet nie pomyślałem o użyciu zamiennika. Niezłe!
Tom
Według mojej wiedzy niektóre z tych znaków można zapisać za pomocą jednego bajtu, przy założeniu dobrze znanego kodowania. w UTF-8 mam 36 bajtów ... Czy się mylę?
steffen
@steffen Japt wykorzystuje kodowanie ISO-8859-1, w którym każdy znak reprezentuje jeden bajt. Ale niektórych znaków nie da się wydrukować w tym programie, więc użyłem tutaj kodowania Windows-1252 (tak naprawdę zostało wygenerowane automatycznie przez TIO )
ETHproductions
6

Brachylog , 44 bajty

" "Ṣ∧"Programming Puzzles"w|"Code"wṢw"Golf"w

Wypróbuj online!

Wyjaśnienie

" "Ṣ                                           If " " = Ṣ (which is itself " ")
    ∧"Programming Puzzles"w                    Write "Programming Puzzles"
                           |                   Else
                            "Code"w            Write "Code"
                                   Ṣw          Write " "
                                     "Golf"w   Write "Golf"
Fatalizować
źródło
1
Przekreślone 44 to wciąż 44 :( Edytuj &nbsp;po obu stronach, aby naprawić :)
HyperNeutrino
@HyperNeutrino Nie jest przekreślony, 44 to długość ze spacjami, a 42 bez.
Fatalize
O. Ups Jest zbyt podobny, więc nie mogłem powiedzieć bez patrzenia na obniżkę, wchodząc w edycję. Nieważne: P
HyperNeutrino
5

Alice , 44 bajty

/"floG!"t"edoC"#
 /"selzzuP gnimmargorP"d&o@

Wypróbuj online!

Bez białych znaków:

/"floG!"t"edoC"#/"selzzuPgnimmargorP"d&o@

Wypróbuj online!

Wyjaśnienie

W pierwszym programie dwa zwierciadła /przekierowują wskaźnik instrukcji do drugiej linii. "selzzuP gnimmargorP"przesyła wymagane punkty kodu w odwrotnej kolejności, dprzesuwa głębokość stosu i &odrukuje tyle bajtów.@kończy program.

Bez białych znaków program znajduje się w jednym wierszu. W takim przypadku wskaźnik instrukcji nie może poruszać się w trybie porządkowym, więc /skutecznie stają się bezoperacyjni (technicznie, IP po prostu nie porusza się o jeden krok, to samo /wykonuje się ponownie, a adres IP wraca do trybu kardynalnego ). Jeśli więc usuniemy je z programu, wygląda to tak:

"floG!"t"edoC"#"selzzuPgnimmargorP"d&o@

Aby uwzględnić miejsce Code Golf, używamy wykrzyknika i zmniejszamy go za pomocą t. Po uzyskaniu wszystkich punktów kodu na stosie #pomija następne polecenie, czyli cały drugi ciąg znaków. d&onastępnie drukuje stos ponownie i @kończy działanie programu.

Martin Ender
źródło
Musisz zagrać w golfa (przekreślone 44 to 44)
MilkyWay90
5

PHP, 44 bajty

operator trójskładnikowy

<?=" "?"Programming Puzzles":"Code\x20Golf";

PHP, 51 bajtów

komentarz

<?=/** /"Code\x20Golf"/*/"Programming Puzzles"/**/;

PHP, 57 bajtów

przełącznik tablicy

<?=["Code\x20Golf","Programming Puzzles"][(ord("
")/10)];
Jörg Hülsermann
źródło
5

Common Lisp (SBCL), 52 bajty

(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)

Wydruki Programming Puzzles

(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)

Wydruki Code Golf

Nie golfowany:

(format t "~[Programming Puzzles~;Code Golf~]" 0 1)

Wyjaśnienie:

Trik polega w zasadzie na tym, jak #'formatdziała Common Lisp.

W CL większość białych znaków można pominąć, pod warunkiem, że nie ma dwuznaczności co do tego, gdzie tokeny zaczynają się lub kończą. Pierwszą sztuczką było oddzielenie symboli formati t. Musiałem jednoznacznie zakończyć formatsymbol bez zmiany sposobu tinterpretacji. Na szczęście `w CL kończy poprzedni token, zanim zostanie przetworzony, i ,anuluje efekt` (`służy do implementacji szablonów, gdzie następne wyrażenie po nim zostaje„ cytowane ”, ale każde podwyrażenie poprzedzone znakiem, jest oceniane i wynik zawarty w szablonie, więc `, to prawie brak możliwości).

Trzecim argumentem formatjest ciąg szablonu. formatjest podobny do printf w C, ale ma znacznie potężniejsze dyrektywy formatujące i używa ~, aby je wskazać zamiast%. ~ [i ~] pozwalają wybierać spośród wielu opcji drukowania, za pomocą ~; rozdzielając je. Podany jest dodatkowy argument dotyczący formatu - którego indeks liczbowy chcesz wydrukować. Aby zapewnić przetrwanie „” w Code Golf, użyłem dyrektywy tabelarycznej ~ T, która służy do wstawiania białych znaków, ogólnie do wyrównywania tekstu w kolumnach. ~ @ T to odmiana, która po prostu wstawia określoną liczbę spacji, domyślnie 1.

Wreszcie istnieją dwa argumenty do sformatowania - 0 i 1. Przed usunięciem białych znaków ~ jest używane przez ~ [~; ~] do wybrania „Programowania łamigłówek”, a dodatkowy argument formatujący (1) jest usuwany (jestem Nie jestem pewien, jak standardowe jest usuwanie argumentów dodatkowego formatu, ale działa to na Common Bank Lisp w Steel Bank). Po usunięciu białych znaków jest tylko jeden argument (01), który zamiast tego wybiera „Code Golf”.

djeis
źródło
1
+1, tylko jedna rzecz: ”, ale każde podwyrażenie poprzedzone znakiem ,jest oceniane i łączone w„ Nie jest ,@konieczne do łączenia?
PrzemysławP
Trzeba przyznać, że „splicowane” to kiepskie określenie. Technicznie ,ewaluuje następne wyrażenie i uwzględnia wynik w szablonie, przy ,@założeniu, że wyrażenie przejdzie do listy i uwzględni zawartość tej listy bezpośrednio w szablonie. Tradycyjnie w społeczności lisp ,@nazywa się to „splicingiem”, ale nie jestem pewien, czy to najbardziej oczywisty wybór. Spróbuję to trochę przeredagować.
djeis
4

Pyth, 37 bajtów

?" ""Programming Puzzles""Code\40Golf

Wypróbuj tutaj.

?"""ProgrammingPuzzles""Code\40Golf

Wypróbuj tutaj.

Erik the Outgolfer
źródło
4

C # 88 81 70 63 bajtów

Func<string>@a=()=>" "==""?"Code\x20Golf":"Programming Puzzles";

Z usuniętymi białymi znakami:

Func<string>@a=()=>""==""?"Code\x20Golf":"ProgrammingPuzzles";

Dzięki BrianJ za pokazanie mi, jak nie ma spacji między typem zwracanej metody a nazwą metody, PeterTaylor za zapisanie 7 18 bajtów i Patrick Huizinga za zapisanie 7 bajtów.

Ta sama metoda, jak wszyscy inni, technicznie można ją uznać za niepoprawną, ponieważ metoda nie określa typu zwracanego dla metody, ale między typem zwracanym a nazwą metody musi być spacja.

Skidsdev
źródło
1
możesz poprzedzić nazwę funkcji znakiem @, więc masz void@a...i unikniesz błędu kompilacji „bez typu zwrotu” (dodaje również bajty :()
Brian J
.Length<1oszczędza jeden bajt; \u0020zapisuje sześć, jeśli poprawnie policzyłem; i możesz udzielić poprawnej odpowiedzi (i zaoszczędzić kilka bajtów jednocześnie), przesyłając lambda zamiast funkcji najwyższego poziomu. Func<string>a=()=>...
Peter Taylor
@BrianJ Hmm, nie wiedziałem o tym, zastanawiam się, dlaczego to działa z punktu widzenia kompilatora. W każdym razie może stracić bajty, ale technicznie sprawia, że ​​ta odpowiedź nie jest niekonkurencyjna, więc warto. Dzięki!
Skidsdev,
@Mayube @jest używany głównie, jeśli chcesz użyć słowa zarezerwowanego jako nazwy zmiennej (odpowiednik znajduje się []w VB.NET (i MS SQL Server)).
Brian J
1
Tak, wymaga zwrócenia ciągu; ale jeśli użyjesz =>zamiast returntego nie potrzebujesz żadnych spacji. (I nawet jeśli używasz return, możesz return(...)).
Peter Taylor
4

Java 8, 74 50 48 bajtów

()=>" "==""?"Code\040Golf":"Programming Puzzles"
Khaled.K
źródło
@NonlinearFruit masz rację, zmieniłem ten na niekompetentnego
Khaled.K
1
Nie sądzę, że drukowanie jest wymogiem, więc możesz po prostu zwrócić ciąg. Nie testowałem tego, ale ==operator powinien również działać,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
NonlinearFruit
1
\u00A0-> \040dla oszczędności 2 bajtów.
Poke
3

PowerShell , 56 bajtów

('Programming Puzzles',('Code'+[char]32+'Golf'))[!(' ')]

Wypróbuj online!

Powiedziałbym, że to dość proste, ale wykonuje zadanie

Sinusoid
źródło
3

R, 50 bajtów

Myślę, że to jest to samo, co ta odpowiedź Javascript , i zasadniczo taki sam pomysł jak wszystkie inne.

`if`(' '=='','Code\x20Golf','Programming Puzzles')
Giuseppe
źródło
3

dc , 50

[pq]sm[Programming Puzzles]dZ19=m[Code]n32P[Golf]p

Wypróbuj online .

[ ]definiuje ciąg znaków - Zmierzy jego długość. Jeśli długość wynosi 19, wówczas zawiera spację i wywoływane jest makro przechowywane w rejestrze m, które drukuje Programming Puzzlesi kończy pracę. W przeciwnym razie Code Golfjest drukowany.

Cyfrowa trauma
źródło
Czy możesz link do interpretera dc / docs / github?
programista
@ programmer5000 Wystarczy wybrać dc na TIO, a następnie kliknąć nazwę języka.
Dennis
@Dennis dzięki, nawet nie wiedziałem, że TIO to robi!
programista
3

> <> , 47 45 bajtów

! v"floG!"1-"edoC"!
o<>"selzzuP gnimmargorP">

Wypróbuj online!

Dzięki randomra za -2 (sprytne dwa !s, dzięki czemu mogę użyć tylko jednego>o< .)

Kod krzyczy „Flog! Flog! Flog!” i przypomina rybę.

Erik the Outgolfer
źródło
3

T-SQL, 96 82 81 67 bajtów

print+iif(len(' x')=2,'Programming Puzzles','Code'+char(32)+'Golf')

Wypróbuj online | Bez przestrzeni

Stara wersja (96 bajtów):

select(case'x'when(replace(' ',' ','x'))then'Programming Puzzles'else'Code'+nchar(32)+'Golf'end)
mbomb007
źródło
Dobra robota, możesz dostać się do 67, tracąc zewnętrzne pareny i zmieniając warunek naiif(len(' x')=2
BradC
@BradC Zamknij, ale zewnętrzny paren uniemożliwia późniejsze wstawienie spacji print. Użyłem +zamiast tego i zadziałało.
mbomb007
Musiał wkleić i policzyć niewłaściwy. I też nie wiedziałem, ale plus był pierwszą postacią, którą wypróbowałem i zadziałało.
mbomb007
3

Perl 5 , 43 41 bajtów

say" "?"Programming Puzzles":Code.$".Golf

Wypróbuj online!

Wykorzystuje fakt, który ' 'jest prawdziwy w perlu i ''jest fałszywy. $"Zmienna jest ustawiona domyślnie spacja.

Dzięki @NahuelFouilleul za usunięcie dwóch bajtów.

Chris
źródło
Może późno, ale "Code$\"Golf"jest krótsza i Code.$".Golfzbyt
Nahuel FOUILLEUL
@NahuelFouilleul Tak, byłem całkiem nowy, kiedy napisałem tę odpowiedź. W każdym razie dzięki!
Chris
2

Befunge , 76 bajtów

" "0`#v_"floG"84*"edoC",,,,,,,,,@
,,,,,@>"selzzuP gnimmargorP",,,,,,,,,,,,,,

Wypróbuj online!

Nie jest to najbardziej kompaktowe rozwiązanie, ale pisanie kodu Befunge bez białych znaków jest dość trudne.

Na samym początku porównuje znak spacji z 0. Jeśli jest większy, przechodzi do dolnego rzędu. Jeśli tak nie jest, co dzieje się, gdy zastąpisz spację niczym, pozostanie w pierwszym rzędzie.


źródło
Co robią ,s?
programator5000
@ programmer5000 Każdy drukuje jeden znak.
Martin Ender
Wskazówka, jak wydrukować dużą liczbę znaków, aż do zera, może zrobić, >:#,_co może zaoszczędzić wiele bajtów
MildlyMilquetoast