Dari Teka-teki Pemrograman ke Golf Code

74

Tugas Anda adalah menulis sebuah program yang menghasilkan string yang tepatProgramming Puzzles (mengikuti baris baru opsional), tetapi ketika semua spasi, tab, dan baris baru dihapus outputnya Code Golf(mengikuti baris baru opsional.)

Hitungan byte Anda adalah hitungan program pertama, dengan spasi masih ada.

Catatan

  • Ruang di Code Golf dan Programming Puzzles akan dihapus sebagai bagian dari penghapusan, jadi rencanakan dengan sesuai.

  • Dalam penyandian di mana 0x09, 0x0A dan 0x20 tidak masing-masing tab, baris baru atau spasi, karakter tersebut akan dihapus.

  • Jika kode Anda

    42  $@ rw$
    @42
    

    maka itu harus keluar Programming Puzzles. Juga, dalam bahasa yang sama,

    42$@rw$@42
    

    harus keluar Code Golf.

Ini adalah , jadi kode terpendek dalam byte menang! Semoga berhasil!

programmer5000
sumber
3
Apakah ruang dalam Code Golfjuga akan dihapus, bagaimana dengan yang ada di Programming Puzzles.
colsw
2
Ini tidak mungkin dilakukan di Whirl dan Whitespace .
Engineer Toast
13
Apa suara dekat untuk?
OldBunny2800
12
@ OldBunny2800 pertanyaan bagus. Saya terus bertanya tetapi komentar dihapus ...
programmer5000
12
Pilihan dekat adalah karena kurangnya input dan output dan pembatasan format input dan output. 100% jika Anda memiliki bagian yang diberi label "aturan" dengan daftar hal-hal yang Anda anggap jelas tentang tantangan Anda akan memiliki 0 suara dekat. Ini semua tentang presentasi dengan orang-orang CompSci, jika kita dapat memikirkan pertanyaan yang tampaknya bodoh untuk ditanyakan yang dapat menyelamatkan kita satu byte atau, kita akan, mencoba untuk melawan kebodohan itu dan Anda akan menjadi penulis pertanyaan yang hebat.
Guci Gurita Sihir

Jawaban:

65

Python 2 , 50 byte

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

Cobalah online!

Dengan semua ruang dihapus:

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

Coba online itu!

Terima kasih kepada Stephen S untuk 3 byte, dan Erik the Outgolfer untuk 1

Mego
sumber
2
Sialan, ninja! Saya baru saja mengklik Posting Jawaban! +1
HyperNeutrino
1
Saya pikir Anda baru saja merusak otak teman saya. Bagaimana cara kerjanya?
Stevoisiak
11
@StevenVascellaro Ini sangat sederhana. Dalam kasus pertama, " ">""kembali True, karena, secara leksikografis, spasi lebih besar dari string kosong. Dalam kasus kedua, "">""kembali False, karena tidak ada yang lebih besar dari dirinya sendiri. Truedan Falsesebenarnya hanya 1dan 0masing - masing, hanya dalam booltipe data bukan intatau long. Dalam kasus pertama, spasi disimpan, jadi, item pada indeks 1, "Programming Puzzles"dikembalikan secara verbatim. Dalam kasus kedua, spasi hilang, maka \x20dalam item pada indeks 0 "Code\x20Golf"untuk mempertahankan spasi.
Erik the Outgolfer
9
@StephenS Tidak, karena tidak seperti JavaScript, Python tidak memiliki obsesi dengan casting implisit.
Mego
1
Jika menemukan kurangnya obsesi Python mengganggu.
John Dvorak
50

Python 2 , 48 47 byte

-1 byte terima kasih kepada Erik the Outgolfer

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

Cobalah online!

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

Cobalah online!

tongkat
sumber
9
Begini, saya baru saja akan memperbaiki jawaban saya untuk ini ...
Mego
22

05AB1E , 15 byte

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

Cobalah online!

Penjelasan

”ƒËŠˆ”           # push "Code Golf"
      " "v       # for each character in the string " " do
          ”–±ÇÀ  # push "Programming Puzzles"
                 # implicitly output top of stack
Emigna
sumber
...Saya tidak mengerti. Apakah ini menggunakan kompresi kamus atau sesuatu?
LegionMammal978
@ LegionMammal978 Saya cukup yakin ya.
NoOneIsHere
@ LegionMammal978: Itu memang menggunakan kompresi kamus.
Emigna
5
@ Emigna Oke, karena terakhir saya periksa, tak satu pun dari string itu dapat masuk ke dalam 4 byte: p
LegionMammal978
1
@ Draco18s: Kevin telah menulis tutorial yang bagus di halaman tips yang dapat Anda gunakan untuk mendapatkan ide yang lebih baik tentang cara menggunakannya.
Emigna
21

C, 64 62 53 52 byte

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

Cobalah secara Online!

Menggunakan fakta bahwa string C diakhiri dengan karakter nol

pecandu matematika
sumber
16

CJam , 38 byte

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

Cobalah online! atau dengan spasi dihapus

Penjelasan

" "                    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.

Apakah spasi dalam program atau tidak menentukan apakah string pertama benar atau salah.

Kucing Bisnis
sumber
27
Kode Anda menyedihkan:(
Roman Gräf
14
Jika Anda bersedia menggunakan yang tidak diinginkan, "Bncd\x19Fnke":)ganti kode bahagia (ganti \x19).
Erik the Outgolfer
15

Jelly , 18 byte

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

Cobalah online!

Penjelasan

Dalam program seperti yang ditulis, baris pertama adalah fungsi pembantu yang tidak pernah dijalankan. Baris kedua (yang terakhir dalam program) adalah program utama, dan merupakan representasi terkompresi dari string "Programming Puzzles"(yang kemudian dicetak secara implisit).

Jika Anda menghapus baris baru, semuanya menjadi satu program besar. “½ċṭ6Ỵ»adalah representasi terkompresi dari string "Code Golf". mengevaluasi tetapi mengabaikan argumen tangan kanannya, meninggalkan nilai yang sama seperti sebelum berlari; dapat digunakan untuk mengevaluasi fungsi untuk efek sampingnya (sesuatu yang telah saya lakukan sebelumnya), tetapi juga dapat digunakan, seperti di sini, untuk secara efektif mengomentari kode.

Menariknya, logika aktual di sini lebih pendek daripada entri 05AB1E, tetapi kode secara keseluruhan keluar lebih lama karena kompresor string kurang pandai mengompresi string-string khusus ini.


sumber
Ini ternyata valid.
Erik the Outgolfer
Setahu saya beberapa karakter itu dapat disimpan menggunakan satu byte, dengan asumsi pengkodean terkenal. di UTF-8 saya mendapatkan 36 byte ... Apakah saya salah?
steffen
@steffen: Jelly menggunakan pengkodean karakternya sendiri , di mana semua 256 karakter berbeda yang digunakannya dapat disimpan dalam satu byte. (Satu-satunya alasan ia melakukan ini daripada menggunakan pengkodean yang sudah ada sebelumnya adalah untuk keterbacaan (!); Anda dapat dengan sepele menulis program yang dikodekan dalam, katakanlah, codepage 437, dan itu akan berjalan dalam penerjemah Jelly, tetapi biasanya akan menjadi jauh lebih sulit untuk dibaca.)
13

Jelly , 17 byte

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

Cobalah online!

Bagaimana itu bekerja

Seperti dalam jawaban Jelly lainnya, Ñ1ɦ+£)Gdan ½ċṭ6Ỵmenyandikan string Pemrograman Teka - teki dan Kode Golf . memulai string literal dan memisahkan satu string membentuk yang lain, sementara »memilih jenis literal (kompresi berbasis kamus), jadi ini menghasilkan

["Programming Puzzles", "Code Golf"]

kemudian mengambil yang minimum, menghasilkan Code Golf .

Namun, dengan menambahkan spasi di antara ½ċṭ6dan , kita mendapatkan string kedua yang sama sekali berbeda, dan literal mengevaluasi

["Programming Puzzles", "caird coinheringaahing"]

Karena caird coinheringaahing lebih besar secara leksikografis dari pada Teka-teki Pemrograman , pilih string pertama sebagai gantinya.

Dennis
sumber
Hanya melakukan hal yang sama dengan“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Jonathan Allan
Setahu saya tidak satu pun dari karakter-karakter itu dapat disimpan menggunakan satu byte, dengan asumsi pengkodean terkenal. di UTF-8 saya mendapatkan 34 byte ... Apakah saya salah?
steffen
@steffen Jelly menggunakan halaman kode khusus yang mengkodekan masing-masing 256 karakter yang dimengerti sebagai satu byte.
Dennis
@Dennis terima kasih telah menjelaskan.
steffen
13

Javascript, 46 43 42 Bytes

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

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

grg
sumber
5
Anda dapat mengganti \x20string pertama dengan spasi.
Shaggy
Kalahkan aku untuk itu, bagus sekali. Apakah ini membutuhkan trailing ;?
ricdesi
@ricdesi tidak, tidak bisa.
3
@ricdesi karena ini adalah codegolf, jika program berjalan, ia berfungsi. ;Kadang-kadang tidak diperlukan dalam JavaScript.
Stephen
2
Anda dapat mengganti \x20dengan \40untuk menyimpan byte :-)
ETHproduk
10

Bahasa Wolfram, 62 byte

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

Ruang dalam [[0 1]]adalah perkalian implisit, jadi ini setara dengan [[0]]. Tanpa ruang, 01itu adil 1. Bagian 0 dan 1 dari ekspresi ini adalah string yang kita inginkan.

Solusi lain dari validitas yang dipertanyakan (44 byte, 2 disimpan oleh Kelly Lowder):

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

The \.20akan digantikan oleh spasi segera ketika diketik ke dalam lingkungan Mathematica, sehingga tidak jelas apakah itu akan dihapus bersama dengan ruang lain ...

Bukan pohon
sumber
1
Segera setelah Anda menempelkan (atau mengetik) ini ke dalam Mathematica, (berdasarkan cloud atau tidak) urutan pelarian, \:0020berubah menjadi spasi, dan dengan demikian akan dihapus, jadi saya tidak yakin ini memenuhi syarat. Juga \.20lebih pendek. Oleh dua karakter. "Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]akan bekerja.
Kelly Lowder
1
@KellyLowder, hmm, itu poin bagus. Saya telah menambahkan solusi lain yang harus menghindari masalah itu. (Terima kasih atas \.20sarannya - bagaimana Anda menemukan itu? Saya pikir saya telah menjelajahi seluruh dokumentasi ...)
Bukan pohon
1
Saya menemukan \.20dengan membuat kesalahan ketik. Tampaknya hanya berfungsi untuk kode karakter dua digit. Saya tidak berpikir itu ada dalam dokumentasi.
Kelly Lowder
8

Excel - 56 Bytes

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

Sangat mirip dengan sebagian besar jawaban lain ... tidak ada yang mewah di sini.

qoou
sumber
8

Haskell, 48 byte

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

Menentukan fungsi fyang mengembalikan string yang sesuai.

Untuk referensi, versi yang lama adalah:

Haskell, 49/47 byte

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

dengan spasi dihapus

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

Dua kecocokan pola sederhana. (_)cocok dengan semua pola. Anda dapat meningkatkan versi tanpa spasi satu byte dengan mendefinisikan pola kedua sebagai f" "=/ f""=, tetapi ini memberikan peringatan "Pencocokan pola berlebihan".

Solusi alternatif dengan jumlah byte yang sama:

last$"Code\32Golf":["Programming Puzzles"|" ">""]
last$"Code\32Golf":["ProgrammingPuzzles"|"">""]
nimi
sumber
7

Ohm , 33 32 byte

Menggunakan pengodean CP437.

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

Cobalah online! atau coba tanpa spasi

Penjelasan

Dengan spasi putih:

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

Tanpa spasi putih:

▀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
Kucing Bisnis
sumber
Saya sangat senang saya akhirnya menyelesaikan kompresi string!
Nick Clifford
1
@NickClifford Hal aneh yang saya perhatikan adalah bahwa Code Golfsemakin lama ketika dikompresi. Saya kira itu karena ibukota? Apa pun itu masih lebih pendek daripada menulis secara normal karena saya tidak dapat menggunakan ruang literal di sini.
Business Cat
Ya, Smaz agak aneh seperti itu.
Nick Clifford
FYI, silakan ping saya di obrolan jika Anda memiliki pertanyaan atau permintaan fitur untuk Ohm.
Nick Clifford
7

Japt , 29 byte

Dengan spasi:

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

Cobalah online!

Tanpa spasi:

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

Cobalah online!


Ini mengambil keuntungan dari fakta bahwa di Japt, ruang menutup pemanggilan metode. Dengan spasi, kode ini kira-kira setara dengan kode JavaScript ini:

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

Ini dievaluasi sebagai JavaScript, dan hasilnya dikirim ke STDOUT. Karena ungkapan terakhir adalah "Programming Puzzles", string itu dicetak.

Tanpa spasi, kode ini kira-kira setara dengan:

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

(Jika Anda belum mengetahuinya sekarang, Svariabelnya adalah ruang tunggal.) .r()Metode pada string, jika diberi satu argumen, menghapus semua instance argumen itu dari string. Karena "Code Golf"tidak mengandung "ProgrammingPuzzles", ia mengembalikan "Code Golf"tidak berubah, yang kemudian dikirim ke STDOUT.

Produksi ETH
sumber
Saya bahkan tidak berpikir untuk menggunakan ganti. Yang bagus!
Tom
Setahu saya beberapa karakter itu dapat disimpan menggunakan satu byte, dengan asumsi pengkodean terkenal. di UTF-8 saya mendapatkan 36 byte ... Apakah saya salah?
steffen
@steffen Japt menggunakan pengkodean ISO-8859-1, di mana setiap karakter mewakili satu byte. Tetapi beberapa karakter tidak akan muncul dalam program ini, jadi saya menggunakan pengkodean Windows-1252 di sini (sebenarnya, itu di-autogenerasi oleh TIO )
ETHproduksi
6

Brachylog , 44 byte

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

Cobalah online!

Penjelasan

" "Ṣ                                           If " " = Ṣ (which is itself " ")
    ∧"Programming Puzzles"w                    Write "Programming Puzzles"
                           |                   Else
                            "Code"w            Write "Code"
                                   Ṣw          Write " "
                                     "Golf"w   Write "Golf"
Fatalisasi
sumber
1
Dicoret 44 masih 44 :( Sunting di &nbsp;kedua sisi untuk memperbaiki :)
HyperNeutrino
@HyperNeutrino Tidak dicoret, 44 adalah panjang dengan spasi, dan 42 tanpa.
Fatalkan
Oh Aduh. Yah, itu terlalu mirip sehingga saya tidak tahu tanpa melihat penurunan harga dengan pergi ke edit. Sudahlah: P
HyperNeutrino
5

Alice , 44 byte

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

Cobalah online!

Tanpa spasi putih:

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

Cobalah online!

Penjelasan

Dalam program pertama, kedua mirror /mengarahkan redirect pointer instruksi ke baris kedua. "selzzuP gnimmargorP"mendorong titik kode yang diperlukan dalam urutan yang terhormat, dmendorong kedalaman tumpukan dan &omencetak banyak byte. @mengakhiri program.

Tanpa spasi, program ini semua berada pada satu baris. Dalam hal ini, penunjuk instruksi tidak dapat bergerak dalam mode Ordinal, sehingga /secara efektif menjadi no-ops (secara teknis, IP tidak bergerak untuk satu langkah, sama /dieksekusi lagi, dan IP mencerminkan kembali ke mode Cardinal ). Jadi jika kita menjatuhkan yang dari program, sepertinya ini:

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

Untuk memasukkan spasi di dalam Code Golf, kami menggunakan tanda seru dan mengurangi dengan t. Setelah kita mendapatkan semua poin kode pada stack, #lewati perintah berikutnya, yang merupakan keseluruhan string kedua. d&olalu cetak tumpukan lagi, dan @tutup program.

Martin Ender
sumber
Anda harus bermain golf ini (dicoret 44 adalah 44)
MilkyWay90
5

PHP, 44 Bytes

operator ternary

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

PHP, 51 Bytes

komentar

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

PHP, 57 Bytes

saklar array

<?=["Code\x20Golf","Programming Puzzles"][(ord("
")/10)];
Jörg Hülsermann
sumber
4

C # 88 81 70 63 byte

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

Dengan spasi dilucuti:

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

Terima kasih kepada BrianJ karena telah menunjukkan kepada saya bagaimana tidak memiliki ruang antara tipe metode pengembalian dan nama metode, PeterTaylor untuk menyimpan 7 18 byte, dan Patrick Huizinga untuk menghemat 7 byte.

Metode yang sama seperti orang lain benar-benar, secara teknis ini bisa dianggap tidak sah karena metode ini tidak menentukan jenis kembali untuk metode, tapi ada memiliki menjadi spasi antara jenis kembali dan nama metode.

Skidsdev
sumber
1
Anda dapat awalan nama fungsi dengan @, jadi Anda memiliki void@a...dan menghindari kesalahan kompilasi "no return type" (juga menambahkan byte, meskipun :()
Brian J
.Length<1menghemat satu byte; \u0020menghemat enam jika saya sudah menghitung dengan benar; dan Anda dapat membuat jawaban yang valid (dan menyimpan beberapa byte pada saat yang sama) dengan mengirimkan lambda alih-alih fungsi tingkat atas. Func<string>a=()=>...
Peter Taylor
@ BrianJ Hmm, tidak tahu itu, bertanya-tanya mengapa itu bekerja dari sudut pandang kompiler. Bagaimanapun, itu mungkin kehilangan byte tetapi secara teknis juga membuat jawaban ini tidak non-bersaing, jadi itu sangat berharga. Terima kasih!
Skidsdev
@ Mayube @terutama digunakan jika Anda perlu menggunakan kata yang dipesan sebagai nama variabel (yang setara dengan []di dalam VB.NET (dan MS SQL Server)).
Brian J
1
Ya, itu membutuhkan mengembalikan string; tetapi jika Anda menggunakan =>bukan returnAnda tidak perlu spasi. (Dan bahkan jika Anda menggunakan return, Anda bisa return(...)).
Peter Taylor
4

Common Lisp (SBCL), 52 byte

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

Cetakan Programming Puzzles

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

Cetakan Code Golf

Tidak Terkumpul:

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

Penjelasan:

Caranya pada dasarnya berasal dari cara #'formatkerjanya di Common Lisp.

Dalam CL, sebagian besar spasi putih dapat dihilangkan asalkan tidak ada ambiguitas tentang di mana token mulai atau berakhir. Trik pertama adalah memisahkan simbol formatdan t. Saya harus mengakhiri formatsimbol itu tanpa mengubah cara tmenafsirkannya. Untungnya, `di CL mengakhiri token sebelumnya sebelum diproses, dan ,membatalkan efek` (`digunakan untuk mengimplementasikan templating, di mana ekspresi selanjutnya yang mengikuti" dikutip ", tetapi setiap sub-ekspresi yang diawali dengan a ,dievaluasi dan hasilnya termasuk dalam templat, jadi `, hampir tidak ada op).

Argumen ketiga formatadalah string template. formatmirip dengan printf dalam C, tetapi memiliki arahan pemformatan yang lebih kuat dan gunakan ~ untuk menunjukkannya alih-alih%. ~ [dan ~] memungkinkan Anda memilih di antara beberapa opsi untuk dicetak, dengan ~; memisahkan mereka. Argumen tambahan disediakan untuk memformat- indeks numerik yang ingin Anda cetak. Untuk memastikan bahwa "" dalam Code Golf bertahan, saya menggunakan arahan tabulasi ~ T, yang digunakan untuk menyisipkan spasi putih, umumnya untuk menyelaraskan teks ke dalam kolom. ~ @ T adalah variasi yang hanya menyisipkan jumlah ruang tertentu, default ke 1.

Akhirnya, ada dua argumen untuk format- 0 dan 1. Sebelum spasi putih dihapus, 0 digunakan oleh ~ [~; ~] untuk memilih "Programming Puzzles" dan argumen format tambahan (angka 1) dihapus (saya tidak yakin bagaimana standar menjatuhkan argumen format ekstra, tapi ini berfungsi pada Steel Bank Common Lisp). Setelah spasi dihapus, hanya ada satu argumen (01) yang memilih "Code Golf" sebagai gantinya.

djeis
sumber
1
+1, hanya satu hal: "tetapi sembarang sub-ekspresi yang diawali dengan ,dievaluasi dan disambungkan dalam" Tidak ,@perlu untuk penyambungan?
"Disambung" adalah istilah yang buruk untuk itu, harus diakui. Secara teknis, eval ,ekspresi berikutnya dan termasuk hasil dalam templat, sementara ,@mengasumsikan ekspresi akan eval ke daftar dan menyertakan konten daftar itu dalam templat secara langsung. Secara tradisional di komunitas lisp, ,@disebut "splicing", tapi saya tidak yakin itu pilihan yang paling jelas. Saya akan mencoba untuk menulis ulang sedikit.
djeis
4

Java 8, 74 50 48 byte

()=>" "==""?"Code\040Golf":"Programming Puzzles"
Khaled.K
sumber
@NonlinearFruit Anda benar, saya telah mengubah yang tidak kompeten
Khaled.K
1
Saya tidak berpikir pencetakan adalah persyaratan, jadi Anda bisa mengembalikan string. Saya belum mengujinya tetapi ==operator juga harus bekerja,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
NonlinearFruit
1
\u00A0-> \040untuk penghematan 2 byte.
Poke
3

PowerShell , 56 byte

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

Cobalah online!

Cukup mendasar saya akan mengatakan, tapi itu menyelesaikan pekerjaan

Sinusoid
sumber
3

R, 50 byte

Saya pikir ini sama dengan jawaban Javascript ini , dan pada dasarnya ide yang sama dengan yang lainnya.

`if`(' '=='','Code\x20Golf','Programming Puzzles')
Giuseppe
sumber
3

dc , 50

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

Cobalah online .

[ ]mendefinisikan string - Zmengukur panjangnya. Jika panjangnya 19 maka itu berisi ruang dan makro yang disimpan dalam register m disebut, yang mencetak Programming Puzzlesdan berhenti. Kalau Code Golftidak dicetak.

Trauma Digital
sumber
Bisakah Anda menghubungkan ke dc interpreter / docs / github?
programmer5000
@ programmer5000 Pilih dc di TIO, lalu klik nama bahasa.
Dennis
@Dennis terima kasih, saya bahkan tidak tahu bahwa TIO melakukan itu!
programmer5000
3

> <> , 47 45 byte

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

Cobalah online!

Berkat randomra untuk -2 (dua !s pintar sehingga saya bisa menggunakan hanya satu >o<.)

Kode itu berteriak, "Belasan! Belasan! Belasan!" dan menyerupai ikan.

Erik the Outgolfer
sumber
3

T-SQL, 96 82 81 67 byte

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

Cobalah online | Tanpa spasi

Versi lama (96 byte):

select(case'x'when(replace(' ',' ','x'))then'Programming Puzzles'else'Code'+nchar(32)+'Golf'end)
mbomb007
sumber
Kerja bagus, Anda bisa mencapai 67 dengan kehilangan paren luar dan mengubah kondisinya keiif(len(' x')=2
BradC
@BradC Tutup, tetapi paren luar mencegah membutuhkan ruang setelah print. Saya menggunakan sebagai +gantinya dan itu berhasil.
mbomb007
Pasti sudah menempel dan menghitung yang salah. Dan saya juga tidak tahu, tetapi plus adalah karakter pertama yang saya coba dan berhasil.
mbomb007
3

Perl 5 , 43 41 byte

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

Cobalah online!

Menggunakan fakta yang ' 'benar dalam perl dan ''salah. The $"variabel diatur untuk ruang secara default.

Terima kasih kepada @NahuelFouilleul karena menghapus dua byte.

Chris
sumber
mungkin terlambat tetapi "Code$\"Golf"lebih pendek dan Code.$".Golfjuga
Nahuel Fouilleul
@NahuelFouilleul Ya, saya cukup baru ketika saya menulis jawaban ini. Terimakasih Meskipun!
Chris
2

Befunge , 76 byte

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

Cobalah online!

Bukan solusi yang paling ringkas, tetapi sekali lagi menulis kode Befunge tanpa spasi cukup sulit.

Pada awalnya, ia membandingkan karakter spasi dengan 0. Jika lebih besar, ia pergi ke baris paling bawah. Jika tidak, itulah yang terjadi ketika Anda mengganti ruang dengan apa-apa, itu tetap di baris pertama.


sumber
Apa yang mereka ,lakukan?
programmer5000
@ programmer5000 Masing-masing mencetak satu karakter.
Martin Ender
Kiat untuk mencetak sejumlah besar karakter hingga Anda mencapai 0 adalah melakukan hal >:#,_yang dapat menghemat banyak byte
MildlyMilquetoast