Deskripsi Tantangan:
Tulis program yang meminta input dari pengguna. Pengguna akan masuk Good
atau Bad
. Anda tidak harus mendukung input lainnya. Jika pengguna masuk Good
, cetak Bad
dan sebaliknya (ke stdout dll).
Catatan:
1) Anda tidak dapat menggunakan pasangan dua kata lainnya.
2) Program Anda hanya perlu bertanya dan mencetak sekali.
3) Anda tidak perlu menampilkan string yang cepat.
4) Output harus tampak terpisah dari input dengan cara apa pun.
5) Tidak ada fungsi yang diizinkan menerima nilai dan mengembalikan hasilnya; Pengguna harus berinteraksi dengan program.
Semoga berhasil!
code-golf
string
interactive
Ishaq Khan
sumber
sumber
Jawaban:
Python 3 ,
3231 byteCobalah online!
Bagaimana?
Menguji apakah input
'Good'
dengan membandingkan'G'<input()
.Menggunakan fakta bahwa dalam Python
False==0
danTrue==1
menggunakan hasilnya sebagaistart
indeks sepotong'GBoaodd'
menggunakan terdefinisistop
danstep
dari2
dengan'GBoaodd'[start:stop:step]
.Mencetak ke STDERR (menyimpan byte dengan
exit
di tempatprint
).sumber
'GoodBad'.strip(input())
byte yang lebih pendek.APL (Dyalog Unicode) , 13 byte SBCS
Program lengkap yang meminta input dari stdin dan mencetak ke stdout.
Cobalah online!
⍞
meminta input dari stdin;Good
atauBad
¯1↓
jatuhkan karakter terakhir (d
);Goo
atauBa
'GooBad'~
multiset kurangi karakter tersebut dari ini;Bad
atauGood
sumber
GooBad
atauGoodBad
?GooBad
, karena menambahkan karakter `` `d`` akan membuat posting ini 14 byte.Turing Machine But Way Worse , 405 bytes
Cobalah online!
Nah, ini butuh waktu.
PENJELASAN TAK TERBATAS :
sumber
favorite/disliked/"Turing-Machine-But-Way-Worse" is, without a doubt, my new favorite esolang.
bash, 20 byte
Cobalah online!
sumber
8088 Assembly, IBM PC DOS, 25 byte
Belum dirakit:
Penjelasan:
Melihat panjang string input (ditambah ruang utama) yang disimpan oleh DOS di alamat memori
80H
, dan ditambahkan keAL
(awalnya0
oleh DOS ). Jika ada jumlah ganjil1
bit dalam representasi biner dari panjang string, flag paritas CPU diatur ke ganjil, dan sebaliknya. Jadi' Bad'
panjang string input4
(0000 0100
), adalah paritas ganjil dan string input' Good'
adalah5
(0000 0101
) bahkan paritas.DX
awalnya diatur untuk menunjuk ke string'Good$Bad$'
, dan jika paritas genap (berarti input tadinya' Good'
) memajukan pointer string dengan panjang itu (5
) jadi sekarang menunjuk ke'Bad$'
. Jika paritas aneh, jangan lakukan apa-apa karena itu sudah menunjuk ke'Good$'
. Kemudian gunakan DOS API untuk menampilkan$
string yang dihentikan ke konsol.Contoh:
Unduh dan uji GOODBAD.COM atau build from
xxd
dump:sumber
Jelly , 8 byte
Cobalah online!
Program lengkap yang mengharapkan string berformat Python sebagai argumen
Bagaimana?
sumber
Python 3,
38373433 byteCobalah online!
exit()
: mengembalikan kode keluar sebagai output"C">input()
: Memeriksa apakah input lebih besar dari stringC
dalam urutan abjadand"Good"
: Jika hasilnyaTrue
, maka kembali denganGood
or"Bad"
: Kalau tidak, kembali denganBad
sumber
print("C">input()and"Good"or"Bad")
exit(input()[3:]and"Bad"or"Good")
juga berfungsi untuk jumlah byte yang sama.C,
3938 byteCobalah online!
Disimpan satu byte berkat @tsh.
sumber
main(){puts("Good\0Bad"+getchar()%6);}
38 byte#include<stdio.h>
?\0
?brainfuck , 72 byte
Cobalah online!
Penjelasan:,> +++++>,>,>,>,
Baca baik: "G", 5, "o", "o", "d" atau "B", 5, "a", "d", 0
[<<<< [- <->> --- <] <. >> +. >>. >>>] Jika karakter terakhir bukan nol:
Kurangi 5 dari sel pertama sekali dan dari sel ketiga tiga kali. Sel kenaikan 3
Sel keluaran 1, 3, 5.
<[<<< [- <+ >> +++ <] <. >> - ..>. >>]
Kalau tidak, tambahkan 5 ke sel pertama sekali dan ke sel ketiga tiga kali.
Pengurangan sel 3
Sel keluaran 1, 3, 3, 4
sumber
Haskell,
3634 byteCobalah online!
Edit: -2 bytes berkat @cole
sumber
R ,
42373532 byte-10 Terima kasih kepada Giuseppe dan AkselA!
Cobalah online!
sumber
"C"
bukan yang pertama"Bad"
seperti dalam jawaban ini akan menghemat beberapa byte lagi.`if`(readline()>"C","Bad","Good")
jawaban yang valid? Saya baru mengenal game ini dan aturannya.scan(,"")
sebagai gantinyareadline()
. Jangan ragu untuk datang ke golfR , chatroom golf R jika Anda memiliki pertanyaan spesifik-R :-)sed ,
21 1613 byteTerima kasih @Cowsquack untuk petunjuknya.
Cobalah online! Cobalah online!Cobalah online!TIL
c
akan mengalami hubungan pendek parsing garis saat ini.sumber
c
menawarkan solusi yang lebih singkatc
JavaScript 31 byte
Saya suka jawaban Arnauld, tapi saya ingin menerima input pengguna dan dapat dijalankan di StackExchange seperti:
sumber
Befunge-93 ,
2018 byteCobalah online!
-2 byte terima kasih kepada Jo King
sumber
Ruby , 22 byte
Cobalah online!
sumber
p gets
dan jadi panjangnya sama. (komentar asli saya mengatakan Anda bisa menghemat 2 byte, tapi saya tidak memperhitungkan untuk mencetak hasilnya)-p
flag akan memberikan jawaban yang paling efisien:$_=$_>?F?:Bad:"Good"
adalah 20 byte. Cobalah online!05AB1E ,
109 byte-1 byte terima kasih kepada @Emigna .
Cobalah online atau verifikasi kedua kasus uji .
Penjelasan:
Lihat ini ujung 05AB1E saya (bagian Cara menggunakan kamus? ) , Untuk memahami mengapa
”‚¿‰±”
adalah"Good Bad"
.sumber
á
.á
saya tidak percaya saya tidak memikirkannya, tetapi pada saat yang sama saya tahu saya tidak akan pernah memikirkannya. ;) Terima kasih! (Dan ya, saya punya beberapa alternatif 10-byte juga.)”‚¿Bad”IK
juga 9.Java (JDK) , 124 byte
Cobalah online!
Kemungkinan besar, masih ada ruang untuk perbaikan, tapi saya benar-benar baru dalam kode golf.
sumber
!="Bad"
Ruby,
3028 byteBukan golf-iest, tapi saya suka penyalahgunaan split untuk menghapus baris baru dan mengkonversi ke array dalam satu panggilan.
EDIT -2 byte berkat saran Value Ink!
sumber
"Good"
atau"Bad"
(dengan tanda kutip); Saya tidak yakin itu diizinkan.puts
mencetak setiap elemen dari array pada baris terpisah. Ini 3 byte lebih mahal daripadap
, tapi itu mereda karena Anda mengambil[0]
dan kemudian menyimpan 2 byte lebih dengan tidak perlu lagi parens. Cobalah online!Bahasa Pemrograman Shakespeare , 582 byte
(Whitespace ditambahkan untuk dibaca)
Cobalah online!
Saya mendapatkan huruf pertama dari input
Open mind
. Maka saya perlu menentukan apa itu. Dari semua angka antaraB
= 66 danG
= 71, brute saya pompa kecil mengatakan 66 adalah terpendek untuk menulis (the sum ofa big cat the cube ofa big big cat
), jadi saya membandingkan huruf pertama dari input ke 66. Adegan aku terus mencetakGood
, atau adegan V cetakanBad
.sumber
Retina 0.8.2 , 20 byte
Cobalah online! Tautan termasuk test suite. Penjelasan:
Berubah
Good
menjadiGod
.Transpos ulang huruf
GoaB
dengan kebalikan dari daftar itu, sehingga bertukarG
denganB
dano
dengana
, yaitu bertukarGod
denganBad
.Berubah
God
menjadiGood
.sumber
Stax ,
98 byteJalankan dan debug itu
Intinyareplace("BadGood", input, "")
.Multiset xor dengan "GooBa". Algoritma disalin kata demi kata dari Luis Mendo
sumber
Excel, 24 byte
Menggunakan
<C
saran @ MilkyWay90 .sumber
PHP ,
2623 byteA ternary hanya lebih murah:
Cobalah online!
Jawaban asli, 26 byte
Cobalah online!
Atau 21 byte (tapi ini pada dasarnya adalah jawaban Arnauld )
Cobalah online!
sumber
readline()
kemungkinan lebih tepat daripada$argn
.Jelly , 9 byte
Cobalah online!
Penjelasan
Perbedaan simetris multiset antara input dan string
“GooBa”
.sumber
PowerShell ,
2220 byteCobalah online!
-2 byte berkat mazzy
sumber
Tong , 22 byte
sumber
brainfuck , 52 byte
Cobalah online!
Bergantung pada Buruk menjadi satu huruf lebih pendek dari Baik, sehingga input terakhir kosong.
Penjelasan:
sumber
Boolfuck , 47 byte
Cobalah online!
Menggunakan fakta bahwa Anda pada dasarnya hanya dapat mengambil input sebagai bit dan kemudian membalikkan bit tertentu untuk mengubahnya menjadi huruf yang berlawanan.
Penjelasan:
sumber
Keg ,
-rt
2017151387 byte (SBCS)Transpile ke:
Ini adalah port jawaban 05AB1E. Pada dasarnya, itu:
"GoodBad"
GoodBad
dengan apa-apa.-rt
flag mengatakan Tong untuk membaca token dari kanan ke kiri.Jawab Sejarah
Transpile ke yang berikut:
Penjelasan
sumber
Arang , 13 byte
Cobalah online!
Penjelasan:
sumber