La description
Créez un jeu "Devinez le nombre" pleinement fonctionnel. Le jeu est joué par deux joueurs comme suit:
- le joueur un choisit un nombre (A) entre 1 et N
- le joueur deux essaie de deviner A en choisissant un nombre (B) dans la même gamme
- le premier joueur répond "supérieur"
if A > B
, "inférieur"if A < B
ou "correct"if A = B
. - les étapes 2-3 sont répétées I fois ou jusqu'à ce que "correct" réponde.
- Si "correct" est entendu, le joueur deux gagne sinon il perd.
Spécifications
Spécifications minimales pour une entrée valide:
- l'utilisateur peut jouer en tant que joueur un ou joueur deux.
- l'ordinateur joue l'autre rôle.
- l'ordinateur doit vraiment essayer de deviner le nombre en jouant en tant que joueur deux (donc, deviner contre les données données ou ignorer les données données est de la triche)
- N = 100 ou saisie par l'utilisateur (votre choix)
- I = 5 ou saisie par l'utilisateur (votre choix)
- le programme doit annoncer le gagnant à la fin.
- des instructions entièrement lisibles par l'homme sur ce qu'il faut faire à chaque étape (par exemple, "Jouez en tant que joueur un ou joueur deux?" , "Entrez une autre supposition:" , etc.) - ne devenez pas fou avec celle-ci; restez simple.
Conditions gagnantes
Dans cet ordre:
- L'entrée la plus votée l'emporte si elle a au moins 3 voix d'avance sur la deuxième entrée la plus votée.
- L'entrée la plus courte gagne.
code-challenge
game
Eelvex
la source
la source
Réponses:
Windows PowerShell, 289
Histoire:
while
→for
else{if...}
→elseif
- enregistre les accolades.switch
pour éviter de nommer la boucle. Maintenant, je peux aussi utiliser justebreak
et un pipeline. L'annonce du gagnant a été déplacée dans un filtre qui n'utiliseexit
donc aucune pause, jamais.elseif
chaîne pour vérifier la supposition, j'utilise simplement une chaîne de formatage avec des valeurs différentes pour les valeurs négatives, positives et nulles. Économise beaucoup.la source
TRS-80 BASIC, 249 caractères
Je pense que c'est peut-être la première fois que je soumets une réponse à ce site que j'ai écrite avant son existence.
En fait, je l'ai écrit avant l'existence du Web mondial. Dans les années 80, tout comme les TRS-80 devenaient sans objet.
Ceci est un exemple de "one-liner" - une tentative pour adapter le programme le plus intéressant possible à une seule ligne de BASIC. C'était mon premier one-liner, et pas terriblement impressionnant. (Il y avait de superbes doublures flottantes.)
Une ligne de TRS-80 BASIC était limitée à 255 caractères, moins un couple pour les frais généraux. Bien que vous puissiez parfois dépasser cela, car la vraie limite était de 255 octets après la tokenisation - mais l'éditeur tronquait également une ligne qui avait plus de 255 caractères avant la tokenisation, et vous deviez utiliser des astuces dans l'éditeur de ligne afin d'insérer des caractères de contrôle littéraux comme des sauts de ligne dans vos chaînes.
Et oui, pour clarifier, ces sauts de ligne dans la liste sont des caractères de nouvelle ligne littéraux. (Pour les obtenir dans votre code, vous devez utiliser la
C
commande de suspension pendantEDIT
la ligne. Une douleur totale, mais cela vaut la peine de remplacer huit caractères ou plus+CHR$(13)
par un.)Merde, je joue au golf depuis longtemps.
la source
C 397 caractères
Sous une forme plus lisible.
la source
C #:
Nombre de caractères: Avec espaces: 575 Sans espaces: 464
Modifier do while est maintenant "Goto" ( frisson )
la source
Bonne vieille plaine C
la source
Javascript
Nouvelle version minifiée ( appels supprimés
var
et réduitsalert
:268 caractères
Pour exécuter l'appel
g(100);
, l'auto-exécution n'est pas comptée, car elle ajoute un nombre variable de caractères (275 caractères pourg(100);
).d'origine (environ 600 caractères, espace compris):
Minifié (312) :
la source
Python 2,7
334335327314300 caractères (ma première fois au golf)(335) J'ai oublié d'échapper à la nouvelle ligne.
(327) Suppression de 100 redondants pour randint. Comparaison du premier caractère de la réponse, au lieu de la chaîne entière.
(314) Impression mise à jour qui a gagné.
(300) Modifié lorsque le joueur était le joueur 1: modification de la devinette du nombre en tant qu'ordinateur
la source
BASIC, 184
Voici la version sans AI.
la source
code-golf
.Lua 360 Chars
Version non golfée:
la source
Javascript
Il s'agit d'environ 800 caractères et comprend votre sélection binaire de base «AI» pour la moitié du lecteur d'ordinateur. Je pourrais probablement sauver quelques caractères si je me débarrassais de tous mes
var
mais je n'aime pas les fuites de variables même en jouant au code. J'ai aussi fait deux étapes "Est-ce correct?" / "Est-ce plus élevé?" chose avec confirmer les pop-ups plutôt que de donner une pop-up rapide et de vérifier "correct" / "supérieur" / "inférieur" bien que cela puisse peut-être aussi enregistrer certains caractères, je n'ai pas vraiment vérifié.De plus, je ne l'ai testé que sur Firefox 4, donc je ne sais pas si certaines des choses que je fais fonctionnent de manière cohérente, en particulier la fusion d'une entrée non valide, analysée comme NaN, à une valeur par défaut dans ma
wp
fonction.la source
Java, 1886 caractères
Version non golfée:
la source
int a=5,b=10
(34). Vous pouvez nommer les arguments dans le constructeur différents des champs à éviterthis.
(10). Vous pouvez éliminerL
complètement car il reste toujours à1
(4). Vous pouvez de toute façon ignorer l'initialisation deH
etG
qui est définie dans le constructeur (6). Vous pouvez utiliser des noms à une lettre pour toutes les variables et méthodes (235).fuzzify
à l'aide de l'opérateur conditionnel (20). Vous pouvez insérer leBufferedReader
ingetInt
(19). Vous pouvez utiliserString#matches
pour éviter lePattern
etMatcher
dansgetInt
(48). Vous pouvez également utiliser l'opérateur conditionnel dansprocessGuess
(30). Je suis maintenant à 1360 au lieu de votre premier 1953.Radio-réveil, 5756 bits (2159 octets)
Bientôt au réveil près de chez vous! Les sauts de ligne sont uniquement lisibles. Les valeurs ASCII sont parfois utilisées à la place de l'affichage numérique littéral à l'écran. Convient aux spécifications. Utilise les valeurs par défaut pour
A
etI
. Sur la première entrée, utilisez NULL pour deviner, sinon vous définissez le nombre. PADSIZE DOIT ÊTRE 4! LES CELLULES DOIVENT ÊTRE À 7 BITS ET ENVELOPPER! Turing-complet! Sortieshigher
,lower
,correct
,you won
etyou lost
.la source
Rubis 1,9 (298)
Instructions pas très sympathiques cependant.
la source
J'ai ressenti le besoin de rendre justice à Java. :)
Java -
486437421414Golfé
Légèrement non golfé
la source