Couch 2048: Combien de plus jusqu'en 2048?


20

Je viens d'essayer un jeu appelé Couch 2048 .
(Remarque: vous devriez jeter un coup d'œil pour mieux comprendre cette question.)
Comme ce n'était pas très excitant pour moi, je me demandais 'combien de plus jusqu'en 2048!?'
Cela m'a inspiré pour poster un défi, car le calcul n'est pas aussi simple que je le pensais.

Votre objectif: étant
donné une liste de boules sur le canapé, vous devez générer le nombre de boules d'une valeur de 2 qui doivent tomber du ciel pour que l'on puisse gagner la partie (en atteignant la boule 2048).

  • Supposons que l'entrée est valide.
  • Supposons que le joueur ne laisse tomber aucune balle.
  • Supposons que les boules qui tombent du ciel ont toujours une valeur de 2, comme je l'ai dit.
  • Exemples de sortie valides: 3, "4", [5], ["6"]

Edit:
je devrais clarifier quelque chose:
- Vous devez imprimer la plus petite quantité de 2 nécessaire.

Cas de test:
[2048] -> 0 vous avez déjà gagné
[1024,1024] -> 0Vous n'avez plus besoin de balles pour gagner
[1024,512,256,128,64,32,16,8,4,2] -> 1Une balle requise pour «activer la chaîne»
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982

Remarques :
je ne suis pas un locuteur natif - dites-moi si vous avez repéré une faute de frappe ou du texte non grammatical.
Si quelque chose n'est pas clair, demandez dans les commentaires.


pourquoi [4,16,64] -> 22?
l4m2

3
Bienvenue chez PPCG. Il semble que ce défi soit le suivant: ajoutez tous les éléments du tableau, soustrayez 2048et divisez par 2- si c'est le cas, vous voudrez peut-être revérifier le dernier cas de test - sinon, utilisez-le comme exemple pour expliquer pourquoi la sortie n'est pas 't 982.
Shaggy

1
@Shaggy thx pour avoir remarqué une erreur stupide

4
Woah, je ne pensais pas que mon premier défi aurait 7 réponses et 2 votes positifs dans la première heure! Et j'ai atteint ~ 28 personnes!

2
Hé, downvoter: expliquez votre point de vue! Il faut que le défi s'améliore!

Réponses:



8

Brain-Flak , 72 octets

({{}})({<({}[()()])>()}{})([{}]((((((((()()()()){}){}){}){}){}){}){}){})

Essayez-le en ligne!

({{}})                     # Sum entire stack
      (                  ) # Push:
       {<          >()}{}  #   The number of times you can...
         ({}[()()])        #   Subtract 2 before reaching 0

([{}]                                        ) # Subtract that from...
     ((((((((()()()()){}){}){}){}){}){}){}){}  # 1024

1
Je vous remercie! Je suis intéressé à apprendre Brain-Flak et votre explication a été utile.
Galen Ivanov








2

Catholicon , 5 octets

-`L̇½Ṗ

Explication:

-      subtract
 `L̇    1024
       from
   ½   half of the
    Ṗ  sum [of the input]

1
Est-ce une nouvelle langue de golf que je sens? :)
ETHproductions

1
+1 pour la nouvelle langue. Un autre à apprendre </sigh>
ElPedro





1

perl -aE, 27 octets

$"=$:;say eval"(2048-@F)/2"

Cela lit une ligne avec des nombres (séparés par des espaces) STDINet écrit la réponse STDOUT.

Ce qu'il fait, c'est soustraire tous les nombres de l'entrée de 2048, et il divise le reste par 2. Le -acommutateur place le dans le tableau @F(un nombre par élément). Si nous interpolons un tableau dans une chaîne (ce que nous faisons ici), perl place la valeur $"entre les éléments. La variable peu utilisée $:est par défaut \n-; et comme l'espace blanc entre les jetons est ignoré, le résultat soustrait tous les nombres de 2048. Le evalfait le calcul.







0

AWK, 26 octets

{s+=$1}END{print 1024-s/2}

Les numéros d'entrée sont séparés par des retours à la ligne (c'est-à-dire un par ligne)


0

Neim, 6 octets

Assez nouveau pour Neim mais ça a fonctionné

𝐬ᚺςᚫᛦ𝕤

Explication:

  𝐬         : Sum input
   ᚺ        : Divide by 2 (stack now [input summed and divided by 2])
    ς       : Variable set to 16 pushed to stack
     ᚫ      : Multiply by 2
      ᛦ     : Square (stack now [input summed and divided by 2, 1024])
       𝕤    : Subtract then absolute

Essayez-le en ligne!






En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.