Description du défi:
Écrivez un programme qui demande à l'utilisateur une entrée. L'utilisateur entrera Good
ou Bad
. Vous ne devez prendre en charge aucune autre entrée. Si l'utilisateur entre Good
, imprimez Bad
et vice versa (pour sortie standard, etc.).
Remarques:
1) Vous ne pouvez utiliser aucune autre paire de deux mots.
2) Votre programme ne doit demander et imprimer qu'une seule fois.
3) Vous n'avez pas besoin d'afficher la chaîne d'invite.
4) La sortie doit apparaître séparée de l'entrée par tout moyen.
5) Aucune fonction n'est autorisée à accepter la valeur et à renvoyer le résultat; L'utilisateur doit interagir avec le programme.
Bonne chance!
code-golf
string
interactive
Ishaq Khan
la source
la source
Réponses:
Python 3 ,
3231 octetsEssayez-le en ligne!
Comment?
Teste si l'entrée est
'Good'
en comparant'G'<input()
.Utilise le fait que Python
False==0
etTrue==1
d'utiliser le résultat comme l'start
indice d'une tranche de l''GBoaodd'
aide d' un non définistop
etstep
de2
avec'GBoaodd'[start:stop:step]
.Imprime vers STDERR (sauvegarde d'un octet avec
exit
à la place deprint
).la source
'GoodBad'.strip(input())
ce qui est un octet plus court.APL (Dyalog Unicode) , 13 octets SBCS
Programme complet qui demande l'entrée de stdin et imprime sur stdout.
Essayez-le en ligne!
⍞
invite pour l'entrée de stdin;Good
ouBad
¯1↓
déposez le dernier caractère (d
);Goo
ouBa
'GooBad'~
multiset soustraire ces caractères de ceux-ci;Bad
ouGood
la source
GooBad
-GoodBad
t-il ou ?GooBad
, car l'ajout d'un caractère `` d '' fera de ce post 14 octets.Turing Machine But Way Pire , 405 bytes
Essayez-le en ligne!
Eh bien, cela a pris du temps.
EXPLICATION NON FINIE :
la source
favorite/disliked/"Turing-Machine-But-Way-Worse" is, without a doubt, my new favorite esolang.
bash, 20 octets
Essayez-le en ligne!
la source
Assemblage 8088, IBM PC DOS, 25 octets
Non assemblé:
Explication:
Examine la longueur de la chaîne d'entrée (plus l'espace de tête) que DOS stocke à l'adresse mémoire
80H
et l'ajouteAL
(initialement0
par DOS ). S'il y a un nombre impair de1
bits dans la représentation binaire de la longueur de chaîne, l'indicateur de parité CPU est défini sur impair, et vice-versa. Ainsi, la' Bad'
longueur de chaîne d'entrée4
(0000 0100
) est une parité impaire et la chaîne d'entrée' Good'
est5
(0000 0101
) est une parité paire.DX
est initialement défini pour pointer vers la chaîne'Good$Bad$'
, et si la parité est paire (ce qui signifie que l'entrée était' Good'
), faites avancer le pointeur de chaîne de cette longueur (5
) de sorte qu'il pointe maintenant vers'Bad$'
. Si la parité est impaire, ne faites rien car elle pointe déjà vers'Good$'
. Utilisez ensuite l'API DOS pour afficher une$
chaîne terminée sur la console.Exemple:
Téléchargez et testez GOODBAD.COM ou compilez à partir du
xxd
vidage:la source
Gelée , 8 octets
Essayez-le en ligne!
Un programme complet qui attend une chaîne au format Python comme argument
Comment?
la source
Python 3,
38373433 octetsEssayez-le en ligne!
exit()
: retourne un code de sortie en sortie"C">input()
: Vérifie si l'entrée est plus grande que la chaîneC
dans l'ordre alphabétiqueand"Good"
: Si le résultat estTrue
, retourne avecGood
or"Bad"
: Sinon, retourne avecBad
la source
print("C">input()and"Good"or"Bad")
exit(input()[3:]and"Bad"or"Good")
fonctionne également pour le même nombre d'octets.C,
3938 octetsEssayez-le en ligne!
Un octet enregistré grâce à @tsh.
la source
main(){puts("Good\0Bad"+getchar()%6);}
38 octets#include<stdio.h>
?\0
?brainfuck , 72 octets
Essayez-le en ligne!
Explication:,> +++++>,>,>,>,
Lire soit: "G", 5, "o", "o", "d" ou "B", 5, "a", "d", 0
[<<<< [- <->> --- <] <. >> +. >>. >>>] Si le dernier caractère n'est pas zéro:
Soustrayez 5 de la première cellule une fois et de la troisième cellule trois fois. Incrémenter la cellule 3
Cellules de sortie 1, 3, 5.
<[<<< [- <+ >> +++ <] <. >> - ..>. >>]
Sinon, ajoutez 5 à la première cellule une fois et à la troisième cellule trois fois.
Décrémenter la cellule 3
Cellules de sortie 1, 3, 3, 4
la source
Haskell,
3634 octetsEssayez-le en ligne!
Edit: -2 octets grâce à @cole
la source
R ,
42373532 octets-10 merci à Giuseppe et AkselA!
Essayez-le en ligne!
la source
"C"
au lieu du premier"Bad"
comme dans cette réponse , vous économiserez un autre couple d'octets.`if`(readline()>"C","Bad","Good")
une réponse valable? Je suis nouveau dans ce jeu et ses règles.scan(,"")
place dereadline()
. N'hésitez pas à venir sur golfR , le salon de golf R si vous avez des questions spécifiques à R :-)sed ,
21 1613 octetsMerci @Cowsquack pour les conseils.
Essayez-le en ligne! Essayez-le en ligne!Essayez-le en ligne!TIL
c
court-circuite l'analyse de la ligne actuelle.la source
c
offre une solution plus courtec
JavaScript 31 octets
J'aime la réponse d'Arnauld, mais j'aimerais qu'elle accepte les entrées de l'utilisateur et soit exécutable sur StackExchange comme suit:
la source
Befunge-93 ,
2018 octetsEssayez-le en ligne!
-2 octets grâce à Jo King
la source
Rubis , 22 octets
Essayez-le en ligne!
la source
p gets
et c'est donc la même longueur. (mon commentaire d'origine disait que vous pouviez économiser 2 octets, mais je ne tenais pas compte de l'impression du résultat)-p
indicateur donnerait la réponse la plus efficace:$_=$_>?F?:Bad:"Good"
20 octets. Essayez-le en ligne!05AB1E ,
109 octets-1 octet grâce à @Emigna .
Essayez-le en ligne ou vérifiez les deux cas de test .
Explication:
Voir cette astuce de la mine de 05AB1E (section Comment utiliser le dictionnaire? ) , De comprendre pourquoi
”‚¿‰±”
est"Good Bad"
.la source
á
.á
je ne peux pas croire que je n'y avais pas pensé, mais en même temps je sais que je n'y aurais jamais pensé. ;) Merci! (Et oui, j'avais aussi quelques alternatives de 10 octets.)”‚¿Bad”IK
c'est aussi un 9.Java (JDK) , 124 octets
Essayez-le en ligne!
Très probablement, il y a encore de la place pour des améliorations, mais je suis entièrement nouveau dans le golf de code.
la source
!="Bad"
Rubis,
3028 octetsPas le golf-iest, mais j'aime l'abus de split pour supprimer la nouvelle ligne de fin et la convertir en un tableau en un seul appel.
MODIFIER -2 octets grâce à la suggestion de Value Ink!
la source
"Good"
ou"Bad"
(avec des guillemets); Je ne suis pas sûr que ce soit autorisé.puts
imprime chaque élément d'un tableau sur une ligne distincte. C'est 3 octets de plus que celap
, mais cela égalise puisque vous retirez le[0]
puis enregistrez 2 octets de plus en n'ayant plus besoin de parens. Essayez-le en ligne!Langage de programmation Shakespeare , 582 octets
(Espace blanc ajouté pour plus de lisibilité)
Essayez-le en ligne!
J'obtiens la première lettre de l'entrée avec
Open mind
. Ensuite, je dois déterminer de quoi il s'agit. De tous les nombres entreB
= 66 etG
= 71, mon brute forcer dit que 66 est le plus court à écrire (the sum ofa big cat the cube ofa big big cat
), donc je compare la première lettre de l'entrée à 66. La scène I continue à imprimerGood
, ou la scène V s'imprimeBad
.la source
Retina 0.8.2 , 20 octets
Essayez-le en ligne! Le lien inclut une suite de tests. Explication:
Transformez
Good
enGod
.Transposer les lettres
GoaB
au verso de cette liste, échangeant ainsiG
avecB
eto
aveca
, c'est-à-dire échangeantGod
avecBad
.Transformez
God
enGood
.la source
Stax ,
98 octetsExécuter et déboguer
Essentiellementreplace("BadGood", input, "")
.Xor multiset avec "GooBa". Algorithme copié textuellement de Luis Mendo
la source
Excel, 24 octets
Utilisation de la
<C
suggestion de @ MilkyWay90 .la source
PHP ,
2623 octetsUn ternaire est juste moins cher:
Essayez-le en ligne!
Réponse originale, 26 octets
Essayez-le en ligne!
Ou 21 octets (mais c'est essentiellement la réponse d'Arnauld )
Essayez-le en ligne!
la source
readline()
est probablement plus approprié que$argn
.Gelée , 9 octets
Essayez-le en ligne!
Explication
Différence symétrique multiset entre l'entrée et la chaîne
“GooBa”
.la source
PowerShell ,
2220 octetsEssayez-le en ligne!
-2 octets grâce à mazzy
la source
Keg , 22 octets
la source
brainfuck , 52 octets
Essayez-le en ligne!
S'appuie sur Bad étant une lettre plus courte que Good, donc la dernière entrée est vide.
Explication:
la source
Boolfuck , 47 octets
Essayez-le en ligne!
Utilise le fait que vous pouvez simplement prendre l'entrée en bits, puis inverser certains bits pour la transformer en la lettre opposée.
Explication:
la source
Keg ,
-rt
2017151387 octets (SBCS)Transpile vers:
C'est un portage de la réponse 05AB1E. Essentiellement, il:
"GoodBad"
GoodBad
par rien.-rt
drapeau indique à Keg de lire les jetons de droite à gauche.Historique des réponses
Transmet les éléments suivants:
Explication
la source
Fusain , 13 octets
Essayez-le en ligne!
Explication:
la source