Emoji Vending Machine


23

Vous ne voyez pas d'emoji? Cliquez ici .

Vous simulerez un distributeur automatique. Les éléments sont 56 emojis différents, qui peuvent être représentés comme deux caractères de substitution UTF-8, de: 🍅 (U + D83C U + DF45) à 🍼 (U + D83C U + DF7C). En HTML, ces emojis peuvent être représentés sous forme UTF-16 comme & # x1F345 à & # x1F37C . Dans la base 10, le premier caractère UTF-8 a la valeur 55356 . La valeur du deuxième caractère varie de 57157 à 57212 . Voici un programme CJam qui génère tous les emojis pertinents. Pour éviter toute confusion, ce défi sera marqué en caractères et non en octets . Certains emojis ont 2 caractères, certains sont 3. http://www.lettercount.com vous donnera un décompte précis pour ce défi.

Prix ​​💵💵💵

Il existe 8 catégories de prix différentes:

  • 1,00 $: 🍅🍆🍇🍈🍉🍊🍋
  • 1,50 $: 🍌🍍🍎🍏🍐🍑🍒
  • 2,00 $: 🍓🍔🍕🍖🍗🍘🍙
  • 2,50 $: 🍚🍛🍜🍝🍞🍟🍠
  • 3,00 $: 🍡🍢🍣🍤🍥🍦🍧
  • 3,50 $: 🍨🍩🍪🍫🍬🍭🍮
  • 4,00 $: 🍯🍰🍱🍲🍳🍴🍵
  • 4,50 $: 🍶🍷🍸🍹🍺🍻🍼

Affichage du distributeur automatique

C'est ce que l'utilisateur voit au démarrage du programme et après avoir effectué un achat. Vous pouvez utiliser des numéros réguliers au lieu de numéros emoji, mais les numéros emoji ont l'avantage d'être de la même largeur que les autres emojis. Si vous utilisez des numéros emoji, vous pouvez soustraire 14 caractères de votre score, car les numéros emoji sont de 3 caractères chacun.

  1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣
A 🍅🍆🍇🍈🍉🍊🍋
B 🍌🍍🍎🍏🍐🍑🍒
C 🍓🍔🍕🍖🍗🍘🍙
D 🍚🍛🍜🍝🍞🍟🍠
E 🍡🍢🍣🍤🍥🍦🍧
F 🍨🍩🍪🍫🍬🍭🍮
G 🍯🍰🍱🍲🍳🍴🍵
H 🍶🍷🍸🍹🍺🍻🍼 

Si l'utilisateur entre G5qui sélectionne 🍳. La saisie E6sélectionne 🍦.

Ajouter de l'argent 💸💸💸

Pour ajouter de l'argent, l'utilisateur doit saisir /puis le code d'une pièce ou d'un billet. Les pièces sont (N) nickel (0,05 $), (D) ime (0,10 $) et (Q) uarter (0,25 $). Les factures sont (O) ne (1,00 $), (F) ive (5,00 $), (T) en (10,00 $). Chaque fois que l'utilisateur ajoute une facture ou une pièce, le programme doit sortir Balance: [New Balance]. Un seul billet ou pièce peut être ajouté à chaque fois. Voici un exemple contenant trois lignes de saisie:

/D
Balance: $0.10
/Q
Balance: $0.35
/F
Balance: $5.35

Sélection d'articles

L'utilisateur sélectionne un article en entrant le code article, comme B2ou C3. Si l'utilisateur n'a pas ajouté d'argent, le programme doit sortir Item Cost: [Cost of Item]. Si l'utilisateur a ajouté de l'argent, mais qu'il ne suffit pas d'acheter l'article, la sortie devrait l'être Insufficient Funds. Item Cost: [Cost of Item]. Si l'utilisateur a toutefois ajouté assez d' argent, le programme doit générer: Item at [Item Location] Purchased. Remaining Balance: [Balance - Cost of Item]. Ensuite, sur sa propre ligne, imprimez les emoji de l'article acheté. Imprimez ensuite l'intégralité du distributeur automatique (voir «Affichage du distributeur automatique») avec l'article acheté remplacé par 🚫 (U + D83D U + DEAB) Base 10: (55357 57003).

Fin du programme

Si l'utilisateur achète un article qui ramène son solde à 0,00 $, le programme devrait se terminer automatiquement. Alternativement, si l'utilisateur entre "Terminé" à tout moment, le programme doit donner à l'utilisateur son solde restant en monnaie. Le changement doit être uniquement en Nickels, Dimes et Quarters, et doit être la plus petite quantité de pièces possible. Par exemple, si le solde restant est de 1,45 $, la sortie devrait être QQQQQDD.

Sample Run

(L'entrée commence par "-")

  1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣
A 🍅🍆🍇🍈🍉🍊🍋
B 🍌🍍🍎🍏🍐🍑🍒
C 🍓🍔🍕🍖🍗🍘🍙
D 🍚🍛🍜🍝🍞🍟🍠
E 🍡🍢🍣🍤🍥🍦🍧
F 🍨🍩🍪🍫🍬🍭🍮
G 🍯🍰🍱🍲🍳🍴🍵
H 🍶🍷🍸🍹🍺🍻🍼  
-E1
Item Cost: $3.00
-/F
Balance: $5.00
-E1
Item at E1 Purchased. Remaining Balance: $2.00
🍡 
  1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣
A 🍅🍆🍇🍈🍉🍊🍋
B 🍌🍍🍎🍏🍐🍑🍒
C 🍓🍔🍕🍖🍗🍘🍙
D 🍚🍛🍜🍝🍞🍟🍠
E 🚫🍢🍣🍤🍥🍦🍧
F 🍨🍩🍪🍫🍬🍭🍮
G 🍯🍰🍱🍲🍳🍴🍵
H 🍶🍷🍸🍹🍺🍻🍼
-Done
QQQQQQQQ

Codes invalides

  • Si l'entrée commence par /mais n'est pas une entrée d'argent valide, sortez Money not Accepted.
  • Si l'entrée est un article qui a déjà été acheté, la sortie Item out of stock
  • Si l'entrée est une combinaison de chiffres et de lettres qui n'est pas dans la plage (comme A0ou J2, sortez "Code invalide"
  • Pour toutes les autres entrées non valides, affichez "Erreur"

Bonus (-15%): Confiture

Lors de la vente d'un article, il y a 10% de chances que la machine se bloque et que l'article se coince. Sortie JAM!!!une fois. Dans ce cas, l'utilisateur doit saisir "punch" ou "kick". Chaque fois que l'utilisateur le fait, il y a 20% de chances que l'article se libère et se vende normalement. Jusqu'à ce que le bourrage disparaisse, les seules entrées reconnues sont "punch" et "kick". Toutes les autres entrées ne font rien. Voici un exemple:

-A4
Item at A4 purchased. Remaining Balance: $1.00
JAM!!!
-punch
-kick
-kick
-punch
-punch
🍚

(Le bourrage a été éliminé. Reprenez normalement.)

Bonus (-10%): ID

Si l'utilisateur essaie d'acheter une boisson alcoolisée (tout article de la dernière rangée sauf le biberon), vous devez exiger une preuve d'âge. Pour ce faire, vous demandez à l'utilisateur de multiplier deux nombres aléatoires entre 13 et 19 (inclus). Sortie ID required: [13-19]x[13-19] = ?. Si l'utilisateur répond correctement, l'achat peut passer. Sinon, imprimez 🔞 (U + D83D U + DD1E) base 10: (55357 56606)

Défi alternatif: Minecraft

Ce défi semble être quelque chose de possible dans Minecraft. Pour réussir à créer une version Minecraft de ce programme, le joueur doit

  • Avoir une grille 8x7 pour sélectionner parmi 56 articles uniques
  • Pouvoir ajouter de l'argent au solde (peut-être utiliser différents types de pierres pour les différentes dénominations décrites ci-dessus.)
  • Donnez à l'utilisateur l'article qu'il / elle sélectionne s'il a mis suffisamment d'argent
  • Renvoyez à l'utilisateur le montant approprié de la modification à la fin.

Le mode de compatibilité

  • Je ne peux prendre de saisie qu'au début du programme

    • Ne vous inquiétez pas, vous pouvez créer un programme qui prend toutes les entrées à l'avance. Si votre programme n'est pas terminé après avoir évalué toutes les entrées, supposez que "Terminé" est appelé à la fin. Si vous utilisez cette méthode, vous ne pourrez prétendre à aucun bonus.
  • Je ne peux pas voir / sortir les emojis

    • Vous pouvez copier et coller vos entrées et sorties dans cet extrait de pile (ou ici ). Il peut comprendre à la fois les emojis unicode et les codes HTML pour les emojis. Si votre sortie semble correcte sur cette page, votre programme réussit. Essayez de coller certains exemples d'entrées / sorties pour voir à quoi cela ressemble.

function parse() {
var o = document.getElementById("output");
var text = document.getElementById("in").value;
o.innerHTML = text.replace(/\n/g,"<br/>").replace(/ /g,"&nbsp");
twemoji.parse(o);
}
<head>
<script src="//twemoji.maxcdn.com/twemoji.min.js"></script>  
</head>
<body>
<h1>Emoji to Image</h1>
<textarea id="in" rows="10" cols="50"></textarea>
<input type="submit" onclick="parse()">
<div id="output"></div>
</body>

Voici une version abrégée en mode compatibilité de l'affichage du distributeur automatique que vous pouvez tester dans l'extrait de pile:

   &#x31&#x20E3&#x32&#x20E3&#x33&#x20E3&#x34&#x20E3&#x35&#x20E3...
A&#x1F345&#x1F346&#x1F347&#x1F348&#x1F349...
B 
...
  • Je peux sortir des emojis, mais pas sur STDOUT.

    • Apparemment, le terminal Mac OS X est le seul connu à pouvoir émettre des emojis. Si vous n'êtes pas en mesure de sortir des emojis dans votre terminal, vos autres options sont
      • Envoyer toutes les sorties dans un fichier.
      • Affichez toutes les sorties dans une fenêtre.
      • Utilisez la technique décrite dans «Je ne peux pas afficher / émettre des emojis».

5
$ can be replaced with your local currencyn'a pas beaucoup de sens si vous exigez ensuite que les pièces soient (N) ickels (D) imes et (Q) uarters. Je vous suggère de le supprimer car cela ajoute de la confusion.
Level River St

@steveverrill Bon point. Je l'ai changé. Ma question est la suivante: les claviers non américains ont-ils un bouton $ ou existe-t-il un code pour cela?
geokavel du

le $symbole fait partie du jeu de caractères ASCII, il est donc sûr de supposer à peu près tous les claviers et langues peuvent le gérer. Il s'agit du seul symbole monétaire du jeu de caractères ASCII 7 bits. En conséquence, d'autres symboles tels que le symbole GBP ou le symbole EUR € peuvent être rendus incorrectement en raison de codages de chaînes incompatibles, mais cela ne se produit pratiquement jamais avec $.
Level River St

@steveverrill Je sais qu'ils peuvent le gérer, mais y a-t-il un bouton clavier physique pour cela?
geokavel

Mes claviers britanniques et espagnols l'ont en plus des symboles monétaires locaux pertinents, et je pense que les autres aussi. En plus d'être le symbole monétaire le plus utilisé au monde (y compris pour de nombreuses devises qui ne sont pas appelées dollars), le $symbole a une signification particulière dans la plupart des langages de programmation, donc ne pas l'avoir disponible sur le clavier serait une sérieuse limitation. Je tape ceci sur mon clavier espagnol et il est en fait plus facile d'obtenir $ (shift + 4) que € (alt gr + E) afin que vous puissiez voir que ce dernier symbole a été ajouté après coup.
Level River St

Réponses:


8

PHP, (1295-14) - 25% = 960,75 caractères

Scores vieux 1315 1351 1361 1295 989 977

C'était amusant, et c'est la première réponse - oui.

$i=[A=>[🍅,🍆,🍇,🍈,🍉,🍊,🍋],B=>[🍌,🍍,🍎,🍏,🍐,🍑,🍒],C=>[🍓,🍔,🍕,🍖,🍗,🍘,🍙],D=>[🍚,🍛,🍜,🍝,🍞,🍟,🍠],E=>[🍡,🍢,🍣,🍤,🍥,🍦,🍧],F=>[🍨,🍩,🍪,🍫,🍬,🍭,🍮],G=>[🍯,🍰,🍱,🍲,🍳,🍴,🍵],H=>[🍶,🍷,🍸,🍹,🍺,🍻,🍼]];$p=[A=>1,B=>1.5,C=>2,D=>2.5,E=>3,F=>3.5,G=>4,H=>4.5];$v=[N=>.05,D=>0.1,Q=>.25,O=>1,F=>5,T=>10];a:$m='';$w=$x=0;$q=$c[0];$r=$c[1];$f=fgets;$n=rand;$u=number_format;if('Done'==$c&&$e=1)foreach([Q,D,N]as$_)while($b&&round($b-$v[$_],2)>=0&&$m.=$_)$b-=$v[$_];elseif('/'==$q){$v[$r]?$b+=$v[$r]:$m="Money not accepted
";$m.="Balance: $".$u($b,2);}elseif(in_array($q,range(A,Z))){if(0<$r&&8>$r--&&($_=$p[$q])){$b&&$b<$_?$m="Insufficient funds. ":0;if($b<$_)$m.="Item cost: $".$u($_,2);elseif(👾==$i[$q][$r])$m="Item out of stock.";else{$t=0;if(H==$q&&$r<6){$t=$n(13,19);$s=$n(13,19);echo"ID required: {$t}x$s = ?
";if($f(STDIN)!=$t*$s)$m=🔞;else$t=0;}if(!$t){$b-=$_;if(1>$n(0,9)){$w=1;}$x=$i[$q][$r];$m="Item at $c purchased. Remaining balance: $".$u($b,2).($w?"":"
$x");$i[$q][$r]=👾;if(!$b)$e=1;}}}else$m="Invalid code";}if($c&&!$m&&!$e)$m=Error;system(clear);echo"  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣";foreach($i as$k=>$_){echo"
$k ";foreach($_ as$_)echo"$_ ";}echo"
$m
";if($w){echo"JAM!!!
";for(;$c!=kick&&$c!=punch||7>$n(0,9);$c=trim($f(STDIN)));echo"$x
";}$e?exit:$c=trim($f(STDIN));goto a;

Comme les distributeurs automatiques me rappellent les années 90 que j'ai utilisées gotoet pour les articles achetés, le Space Invader 👾 est affiché. La machine est redessinée après chaque commande.

Non golfé (en quelque sorte)

$i=[A=>[🍅,🍆,🍇,🍈,🍉,🍊,🍋],B=>[🍌,🍍,🍎,🍏,🍐,🍑,🍒],C=>[🍓,🍔,🍕,🍖,🍗,🍘,🍙],D=>[🍚,🍛,🍜,🍝,🍞,🍟,🍠],E=>[🍡,🍢,🍣,🍤,🍥,🍦,🍧],F=>[🍨,🍩,🍪,🍫,🍬,🍭,🍮],G=>[🍯,🍰,🍱,🍲,🍳,🍴,🍵],H=>[🍶,🍷,🍸,🍹,🍺,🍻,🍼]];
$p=[A=>1,B=>1.5,C=>2,D=>2.5,E=>3,F=>3.5,G=>4,H=>4.5];
$v=[N=>.05,D=>0.1,Q=>.25,O=>1,F=>5,T=>10];

a:
$m='';
$w=$x=0;
$q=$c[0];
$r=$c[1];
$f=fgets;
$n=rand;
$u=number_format;

if('Done'==$c&&$e=1)
    foreach([Q,D,N]as$_)
        while($b&&round($b-$v[$_],2)>=0&&$m.=$_)
            $b-=$v[$_];
elseif('/'==$q){
    $v[$r]?$b+=$v[$r]:$m="Money not accepted
";
    $m.="Balance: $".$u($b,2);
}elseif(in_array($q,range(A,Z))){
    if(0<$r&&8>$r--&&($_=$p[$q])){
        $b&&$b<$_?$m="Insufficient funds. ":0;
        if($b<$_)$m.="Item cost: $".$u($_,2);
            elseif(👾==$i[$q][$r])
                $m="Item out of stock.";
            else{
                $t=0;
                if(H==$q&&$r<6){
                    $t=$n(13,19);
                    $s=$n(13,19);
                    echo"ID required: {$t}x$s = ?
";
                    if($f(STDIN)!=$t*$s)
                        $m=🔞;
                    else
                        $t=0;
                }
                if(!$t){
                    $b-=$_;
                    if(1>$n(0,9)){
                        $w=1;
                    }
                    $x=$i[$q][$r];
                    $m="Item at $c purchased. Remaining balance: $".$u($b,2).($w?"":"
$x");
                    $i[$q][$r]=👾;
                    if(!$b)$e=1;
                }
            }
    }else
        $m="Invalid code";
}

if($c&&!$m&&!$e)$m=Error;

system(clear);
echo"  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣";
foreach($i as$k=>$_){
    echo"
$k ";
    foreach($_ as$_)
        echo"$_ ";
}
echo"
$m
";

if($w){
    echo"JAM!!!
";
    for(;$c!=kick&&$c!=punch||7>$n(0,9);$c=trim($f(STDIN)));
    echo"$x
";
}

$e?exit:$c=trim($f(STDIN));
goto a;

👾 Testé sur OS X avec PHP 5.5 et 5.6 👾


Modifications

  • Ajout de 12 octets . Correction de la sortie Doneet du golf sur certaines cordes.
  • Ajout de 306 octets . Correction d'un ou deux bugs et ajout de la prise en charge des bonus. Avec les bonus, il est désormais près de 15 octets plus court.
  • Ajout de 66 octets . J'ai dû formater l'argent différemment, j'ai également dû accepter plus de valeurs ( [A-Z][0-9]) pour Invalid code.
  • 10 octets enregistrés . Trouvé un blanc et transformé certains .=en =étaient applicables.
  • Enregistré 36 octets en raison d'une refactorisation.
  • Enregistrement de 20 octets en refactorisant certaines boucles et affectations.

Wow, c'était très amusant à jouer! Le seul problème que j'ai remarqué: vous devez formater des prix comme 3 et 3,5 en 3,00 $ et 3,50 $.
geokavel

De plus, lorsque je tape, J5je devrais obtenir le message: "Code invalide".
geokavel

@geokavel Merci pour vos commentaires. J'ai ajouté le bon format d'argent et il accepte également plus de variantes pour l' Invalid codeinstant. C'est un défi amusant - même s'il a beaucoup d'options… Les personnages 1K parlent d'eux-mêmes… :)
insertusernamehere

Félicitations, par une marge étroite, vous êtes le gagnant! Merci aux deux joueurs d'être de dignes concurrents et d'essayer ardemment de se surpasser l'un l'autre!
geokavel

@geokavel C'était un défi amusant et un beau ping-pong entre Stephan et moi. Si quelqu'un propose une solution plus courte à l'avenir, je serai là. ;)
insertusernamehere

5

C # 6 (.Net Framework 4.6), 1356 1324 1304 1311 1307 1238 1235 1231 1220 Lettres - 14 Lettres (Emoji Numbers) - (15% Jam Bonus + 10% ID Bonus) = 1017 993 978 972.75 969.75 918 915.75 904.5 Letters

using h=System.Console;class c{static void Main(){double b=0,z,p,x=0,i=57157,j,n,r,c,m;var a=1==0;var d=new System.Collections.Hashtable();for(;i<57213;)d.Add(x++,""+(char)55356+(char)i++);for(var e=new System.Random();;){for(w("  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣"),x=0;x<8;x++,w(""))for(h.Write((char)('A'+x)),i=0;i<7;)h.Write(" "+d[x*7+i++]);for(;;){var k=h.ReadLine();if(k[0]==47){var l=k[1];z=b;b+=l=='N'?.05:l=='D'?.1:l=='Q'?.25:l=='O'?1:l=='F'?5:l=='T'?10:0;a=a|z!=b;w(z!=b?$"Balance {b:0.00}":"Money not Accepted");}else{if(k=="Done"){for(;b/.25>=1;b-=.25)h.Write("Q");for(;b/.1>=1;b-=.1)h.Write("D");for(;b/.05>=1;b-=.05)h.Write("N");return;}r=k[0]-65;c=k[1]-49;if(r<0|r>7|c<0|c>6)w("Invalid code");else{p=1+r/2;if(!a|p>b)w($"{(a&p>b?"Insufficient Funds. ":"")}Item Cost: ${p:0.00}");else{m=r*7+c;if(d[m]=="🚫")w("Item out of stock");else{if(r>6&c<6){j=e.Next(13,20);n=e.Next(13,20);w($"ID required: {j}x{n} = ?");if(int.Parse(h.ReadLine())!=j*n){w("🔞");break;}}b-=p;w($"Item at {k} Purchased. Remaining Balance: ${b:0.00}");if(e.Next(10)==1)for(w("Jam!!!");;){var f=h.ReadLine();if((f=="punch"|f=="kick")&e.Next(10)<2)break;}w(""+d[m]);d[m]="🚫";if(b==0)return;break;}}}}}}}static void w(string s)=>h.WriteLine(s);}

légèrement plus non golfé pour une utilisation dans LinqPad 5 (C # 6). Utilisez h = System.Console dans F4.

void Main()
{
    double b=0,z,p,x=0,i=57157,j,n,r,c,m;
    var a = 1==0;
    var d = new Hashtable();
    for (; i < 57213;) d.Add(x++, ""+(char)55356 + (char)i++);
    for (var e = new Random(); ;)
    {
        for (w("  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣"), x = 0; x < 8; x++, w(""))
            for (h.Write((char)('A' + x)), i = 0; i < 7;)
                h.Write(" " + d[x * 7 + i++]);

        for (; ;)
        {
            var k = h.ReadLine();
            if (k[0] == 47)
            {
                var l = k[1];
                z = b;
                b += l == 'N' ? .05 : l == 'D' ? .1 : l == 'Q' ? .25 : l == 'O' ? 1 : l == 'F' ? 5 : l == 'T' ? 10 : 0;
                a = a|z!=b;
                w(z != b ? $"Balance {b:0.00}" : "Money not Accepted");
            }
            else
            {
                if (k == "Done")
                {
                    for (; b / .25 >= 1; b -= .25) h.Write("Q");
                    for (; b / .1 >= 1; b -= .1) h.Write("D");
                    for (; b / .05 >= 1; b -= .05) h.Write("N");
                    return;
                }
                r = k[0] - 65;
                c = k[1] - 49;
                if(r<0|r>7|c<0|c>6)w("Invalid code");
                else
                {
                    p = 1 + r / 2;
                    if (!a | p > b) w($"{(a&p>b?"Insufficient Funds. ":"")}Item Cost: ${p:0.00}");
                    else
                    {
                        m = r * 7 + c;
                        if (d[m] == "🚫")
                            w("Item out of stock");
                        else
                        {
                            if (r > 6 & c < 6)
                            {
                                j = e.Next(13, 20);
                                n = e.Next(13, 20);
                                w($"ID required: {j}x{n} = ?");
                                if (int.Parse(h.ReadLine()) != j * n)
                                {
                                    w("🔞");
                                    break;
                                }
                            }

                            b -= p;
                            w($"Item at {k} Purchased. Remaining Balance: ${b:0.00}");
                            if (e.Next(10) == 1)
                                for (w("Jam!!!"); ;)
                                {
                                    var f = h.ReadLine();
                                    if ((f == "punch" | f == "kick") & e.Next(10) < 2)
                                        break;
                                }
                            w(""+d[m]);
                            d[m] = "🚫";
                            if (b == 0) return;
                            break;
                        }
                    }
                }
            }
        }
    }
}

void w(string s)=>h.WriteLine(s);

edit: merci pour l'indication for (;;);)

modifier: Strike !! Mieux que PHP ;-)

edit: Suppression de 24 lettres. Encore quelque chose pour php.

edit: Suppression de 20 lettres en passant de la décimale au double.

edit: Suppression de 7 lettres en passant aux numéros emoji

edit: Suppression de 4 lettres en changeant tout en double au lieu d'un mélange de double et d'entiers.

edit: Suppression de 69 lettres - code mort trouvé o_O Meilleure entrée C #: D

edit: Supprimé 3 lettres - changé la dernière instruction if-else

edit: Suppression de 4 lettres - basculé des opérateurs de court-circuit (&& et ||) en normal & et |

edit: Suppression de 11 lettres - passé de h.WriteLine à w () avec une chaîne verbatim conditionnelle.


Cela semble bon. J'ai pu le tester ici avec une entrée statique. Existe-t-il un moyen pour moi de le tester en ligne ou sur Mac avec une entrée dynamique?
geokavel

Vous pouvez le tester avec une entrée dynamique ici , bien que les emojis apparaissent comme ??.
geokavel

Le seul problème que j'ai trouvé avec le vôtre est que le "code invalide" ne devrait apparaître que pour un combo de chiffres qui n'est pas dans la plage. Toutes les erreurs non spécifiées doivent générer "Erreur".
geokavel

on my way @insertusernamehere: D
Stephan Schinkel

hey .... je l'ai sous php :) @insertusernamehere
Stephan Schinkel
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.