Descripción del desafío:
Escriba un programa que le pida al usuario su aporte El usuario ingresará Good
o Bad
. No tiene que admitir ninguna otra entrada. Si el usuario ingresa Good
, imprima Bad
y viceversa (stdout, etc.).
Notas:
1) No puede usar ningún otro par de dos palabras.
2) Su programa solo tiene que preguntar e imprimir una vez.
3) No necesita mostrar la cadena de solicitud.
4) La salida debe aparecer separada de la entrada por cualquier medio.
5) No se permite ninguna función para aceptar el valor y devolver el resultado; El usuario debe interactuar con el programa.
¡Buena suerte!
code-golf
string
interactive
Ishaq Khan
fuente
fuente
Respuestas:
Python 3 ,
3231 bytesPruébalo en línea!
¿Cómo?
Comprueba si la entrada es
'Good'
mediante comparación'G'<input()
.Utiliza el hecho de que en Python
False==0
yTrue==1
para usar el resultado como elstart
índice de una porción de'GBoaodd'
usar un undefinedstop
y astep
of2
with'GBoaodd'[start:stop:step]
.Imprime en STDERR (guardando un byte con
exit
en lugar deprint
).fuente
'GoodBad'.strip(input())
que es un byte más corto.APL (Dyalog Unicode) , SBCS de 13 bytes
Programa completo que solicita la entrada de stdin e imprime en stdout.
Pruébalo en línea!
⍞
solicitud de entrada de stdin;Good
oBad
¯1↓
suelte el último caracter (d
);Goo
oBa
'GooBad'~
multiset restan esos caracteres de estos;Bad
oGood
fuente
GooBad
oGoodBad
?GooBad
, ya que agregar un carácter `` d '' hará que esta publicación sea de 14 bytes.Máquina de Turing pero mucho peor , 405 bytes
Pruébalo en línea!
Bueno, esto tomó un tiempo.
EXPLICACIÓN SIN TERMINAR :
fuente
favorite/disliked/"Turing-Machine-But-Way-Worse" is, without a doubt, my new favorite esolang.
bash, 20 bytes
Pruébalo en línea!
fuente
8088 Assembly, IBM PC DOS, 25 bytes
Desmontado:
Explicación:
Mira la longitud de la cadena de entrada (más el espacio inicial) que DOS almacena en la dirección de memoria
80H
y la agregaAL
(inicialmente0
por DOS ). Si hay un número impar de1
bits en la representación binaria de la longitud de la cadena, el indicador de paridad de la CPU se establece en impar y viceversa. Entonces, la' Bad'
longitud de la cadena de entrada4
(0000 0100
) es paridad impar y la cadena de entrada' Good'
es5
(0000 0101
) es paridad par.DX
inicialmente se establece para que apunte a la cadena'Good$Bad$'
, y si la paridad es par (lo que significa que la entrada fue' Good'
) avance el puntero de la cadena por esa longitud (5
) para que ahora apunte a'Bad$'
. Si la paridad es extraña, no haga nada ya que ya apunta'Good$'
. Luego use la API de DOS para mostrar una$
cadena terminada en la consola.Ejemplo:
Descargue y pruebe GOODBAD.COM o compile desde el
xxd
volcado:fuente
Jalea , 8 bytes
Pruébalo en línea!
Un programa completo que espera una cadena con formato Python como argumento
¿Cómo?
fuente
Python 3,
38373433 bytesPruébalo en línea!
exit()
: devuelve un código de salida como salida"C">input()
: Comprueba si la entrada es más grande que la cadenaC
en orden alfabéticoand"Good"
: Si el resultado esTrue
, entonces regresa conGood
or"Bad"
: De lo contrario, vuelve conBad
fuente
print("C">input()and"Good"or"Bad")
exit(input()[3:]and"Bad"or"Good")
También funciona para el mismo número de bytes.C,
3938 bytesPruébalo en línea!
Guardado un byte gracias a @tsh.
fuente
main(){puts("Good\0Bad"+getchar()%6);}
38 bytes#include<stdio.h>
?\0
?brainfuck , 72 bytes
Pruébalo en línea!
Explicación:,> +++++>,>,>,>,
Lea ya sea: "G", 5, "o", "o", "d" o "B", 5, "a", "d", 0
[<<<< [- <->> --- <] <. >> +. >>. >>>] Si el último carácter no es cero:
Resta 5 de la primera celda una vez y de la tercera celda tres veces. Incremento celda 3
Celdas de salida 1, 3, 5.
<[<<< [- <+ >> +++ <] <. >> - ..>. >>]
De lo contrario, agregue 5 a la primera celda una vez y a la tercera celda tres veces.
Decremento celda 3
Celdas de salida 1, 3, 3, 4
fuente
Haskell,
3634 bytesPruébalo en línea!
Editar: -2 bytes gracias a @cole
fuente
R ,
42373532 bytes-10 gracias a Giuseppe y AkselA!
Pruébalo en línea!
fuente
"C"
lugar del primero"Bad"
como en esta respuesta ahorrará otro par de bytes.`if`(readline()>"C","Bad","Good")
como una respuesta válida? Soy nuevo en este juego y sus reglas.scan(,"")
lugar dereadline()
. No dude en venir a golfR , la sala de chat de golf R si tiene alguna pregunta específica sobre R :-)sed ,
21 1613 bytesGracias @Cowsquack por las sugerencias.
Pruébalo en línea! Pruébalo en línea!Pruébalo en línea!TIL
c
cortocircuitará el análisis de la línea actual.fuente
c
ofrece una solución más cortac
JavaScript 31 bytes
Me gusta la respuesta de Arnauld, pero me gustaría que acepte la entrada del usuario y se pueda ejecutar en StackExchange de esta manera:
fuente
Befunge-93 ,
2018 bytesPruébalo en línea!
-2 bytes gracias a Jo King
fuente
Ruby , 22 bytes
Pruébalo en línea!
fuente
p gets
lo que tiene la misma longitud. (mi comentario original decía que podía guardar 2 bytes, pero no tomé en cuenta la impresión del resultado)-p
indicador daría la respuesta más eficiente:$_=$_>?F?:Bad:"Good"
son 20 bytes. Pruébalo en línea!05AB1E ,
109 bytes-1 byte gracias a @Emigna .
Pruébelo en línea o verifique ambos casos de prueba .
Explicación:
Ver este consejo 05AB1E mío (sección Cómo usar el diccionario? ) , Para entender por qué
”‚¿‰±”
es"Good Bad"
.fuente
á
.á
no puedo creer que no lo haya pensado, pero al mismo tiempo sé que nunca lo habría pensado. ;) ¡Gracias! (Y sí, también tenía algunas alternativas de 10 bytes.)”‚¿Bad”IK
también es un 9.Java (JDK) , 124 bytes
Pruébalo en línea!
Lo más probable es que todavía haya margen de mejora, pero soy completamente nuevo en el golf de código.
fuente
!="Bad"
Rubí,
3028 bytesNo es el más golfista, pero me gusta el abuso de split para eliminar la nueva línea final y convertirla en una matriz en una sola llamada.
¡EDITE -2 bytes gracias a la sugerencia de Value Ink!
fuente
"Good"
o"Bad"
(con comillas); No estoy seguro de que eso esté permitido.puts
imprime cada elemento de una matriz en una línea separada. Es 3 bytes más caro quep
, pero se iguala ya que saca el[0]
y luego ahorra 2 bytes más al no necesitar pares. Pruébalo en línea!Lenguaje de programación Shakespeare , 582 bytes
(Espacio en blanco agregado para facilitar la lectura)
Pruébalo en línea!
Me sale la primera letra de la entrada con
Open mind
. Entonces necesito determinar qué es. De todos los números entreB
= 66 yG
= 71, mi fuerza bruta dice que 66 es el más corto de escribir (the sum ofa big cat the cube ofa big big cat
), por lo que comparo la primera letra de la entrada con 66. La escena I continúa imprimiendoGood
o la escena V imprimeBad
.fuente
Retina 0.8.2 , 20 bytes
Pruébalo en línea! El enlace incluye un conjunto de pruebas. Explicación:
Conviértete
Good
enGod
.Transponga las letras
GoaB
con el reverso de esa lista, intercambiando asíG
conB
yo
cona
, es decir, intercambiandoGod
conBad
.Conviértete
God
enGood
.fuente
Stax ,
98 bytesEjecutar y depurarlo
Esencialmentereplace("BadGood", input, "")
.Multiset xor con "GooBa". Algoritmo copiado textualmente de Luis Mendo
fuente
Excel, 24 bytes
Usando la
<C
sugerencia de @ MilkyWay90 .fuente
PHP ,
2623 bytesUn ternario es simplemente más barato:
Pruébalo en línea!
Respuesta original, 26 bytes.
Pruébalo en línea!
O 21 bytes (pero esta es básicamente la respuesta de Arnauld )
Pruébalo en línea!
fuente
readline()
es probable que sea más apropiado que$argn
.Jalea , 9 bytes
Pruébalo en línea!
Explicación
Diferencia simétrica de varios conjuntos entre la entrada y la cadena
“GooBa”
.fuente
PowerShell ,
2220 bytesPruébalo en línea!
-2 bytes gracias a mazzy
fuente
Barril , 22 bytes
fuente
brainfuck , 52 bytes
Pruébalo en línea!
Se basa en que Bad sea una letra más corta que Good, por lo que la última entrada está vacía.
Explicación:
fuente
Boolfuck , 47 bytes
Pruébalo en línea!
Utiliza el hecho de que básicamente puedes tomar la entrada como bits y luego invertir ciertos bits para convertirla en la letra opuesta.
Explicación:
fuente
Barril ,
-rt
2017151387 bytes (SBCS)Transpiles a:
Es un puerto de la respuesta 05AB1E. Esencialmente:
"GoodBad"
GoodBad
con nada.-rt
bandera le dice a Keg que lea los tokens de derecha a izquierda.Historial de respuestas
Transpila a lo siguiente:
Explicación
fuente
Carbón , 13 bytes
Pruébalo en línea!
Explicación:
fuente