इमोजी वेंडिंग मशीन


23

इमोजी नहीं देख सकते हैं? यहां क्लिक करें

आप एक वेंडिंग मशीन का अनुकरण करेंगे। आइटम 56 अलग-अलग emojis हैं, जिन्हें दो सरोगेट UTF-8 वर्णों के रूप में दर्शाया जा सकता है: D (U + D83C U + DF45) से 🍼 (U + D83C U + DF7C)। HTML में इन इमोजीस को UTF-16 फॉर्म में & # X1F345 के माध्यम से & # X1F37C के रूप में दर्शाया जा सकता है । आधार 10 में पहले UTF-8 चरित्र का मूल्य 55356 है । दूसरे वर्ण का मान 57157 से 57212 तक हैयहां एक सीजेएम कार्यक्रम है जो सभी प्रासंगिक इमोजीस उत्पन्न करता है। भ्रम से बचने के लिए, यह चुनौती बाइट्स में नहीं बल्कि पात्रों में बनाई जाएगी । कुछ emojis 2 वर्ण हैं, कुछ 3 हैं। http://www.lettercount.com आपको इस चुनौती के लिए एक सटीक गणना देगा।

मूल्य निर्धारण 💵💵💵

8 अलग-अलग मूल्य श्रेणियां हैं:

  • $ 1.00: 🍅🍆🍇🍈🍉🍊🍋
  • $ 1.50: 🍌🍍🍎🍏🍐🍑🍒
  • $ 2.00: 🍓🍔🍕🍖🍗🍘🍙
  • $ 2.50: 🍚🍛🍜🍝🍞🍟🍠
  • $ 3.00: 🍡🍢🍣🍤🍥🍦🍧
  • $ 3.50: 🍨🍩🍪🍫🍬🍭🍮
  • $ 4.00: 🍯🍰🍱🍲🍳🍴🍵
  • $ 4.50: 🍶🍷🍸🍹🍺🍻🍼

वेंडिंग मशीन प्रदर्शित करना

यह वही है जो उपयोगकर्ता देखता है कि कार्यक्रम कब शुरू होता है और खरीदारी करने के बाद। आप इमोजी नंबरों के बजाय नियमित नंबरों का उपयोग कर सकते हैं, लेकिन इमोजी नंबरों को अन्य इमोजीज़ की तरह ही चौड़ाई होने का लाभ है। यदि आप इमोजी संख्याओं का उपयोग करते हैं तो आप अपने स्कोर से 14 वर्णों को घटा सकते हैं , क्योंकि इमोजी संख्याएँ प्रत्येक में 3 वर्ण हैं।

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

यदि उपयोगकर्ता प्रवेश करता है G5जो that का चयन करता है। E6चयन करना 🍦

नकद जोड़ना 💸💸💸

पैसे जोड़ने के लिए, उपयोगकर्ता को इनपुट करना चाहिए /और फिर सिक्का या बिल के लिए कोड। सिक्के (N) ickel ($ 0.05), (D) ime ($ 0.10), और (Q) uarter ($ 0.25) हैं। बिल हैं (O) ne ($ 1.00), (F) ive ($ 5.00), (T) en ($ 10.00)। हर बार जब उपयोगकर्ता बिल या सिक्का जोड़ता है, तो प्रोग्राम को आउटपुट करना चाहिए Balance: [New Balance]। हर बार केवल एक बिल या सिक्का जोड़ा जा सकता है। यह एक उदाहरण है जिसमें इनपुट की तीन लाइनें हैं:

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

आइटम का चयन

उपयोगकर्ता आइटम कोड, जैसे B2या दर्ज करके एक आइटम का चयन करता है C3। यदि उपयोगकर्ता ने कोई पैसा नहीं जोड़ा है, तो प्रोग्राम को आउटपुट करना चाहिए Item Cost: [Cost of Item]। यदि उपयोगकर्ता ने पैसा जोड़ा है, लेकिन यह आइटम खरीदने के लिए पर्याप्त नहीं है, तो आउटपुट होना चाहिए Insufficient Funds. Item Cost: [Cost of Item]। यदि उपयोगकर्ता ने पर्याप्त पैसा जोड़ा है, तो प्रोग्राम को आउटपुट करना चाहिए Item at [Item Location] Purchased. Remaining Balance: [Balance - Cost of Item]:। फिर अपनी लाइन पर, खरीदे गए आइटम के इमोजी को प्रिंट करें। फिर the (U + D83D U + DEAB) बेस 10: (55357 57003) के साथ प्रतिस्थापित आइटम के साथ पूरी वेंडिंग मशीन ("वेंडिंग मशीन प्रदर्शित करना") प्रिंट करें।

कार्यक्रम को समाप्त करना

यदि उपयोगकर्ता एक आइटम खरीदता है जो उसकी शेष राशि को $ 0.00 तक लाता है, तो कार्यक्रम को स्वचालित रूप से समाप्त कर देना चाहिए। वैकल्पिक रूप से, यदि उपयोगकर्ता किसी भी समय "संपन्न" हो जाता है, तो प्रोग्राम को उपयोगकर्ता को परिवर्तन में अपना शेष शेष देना होगा। परिवर्तन केवल Nickels, Dimes, और Quarters में होना चाहिए, और संभवतया सबसे कम मात्रा में सिक्के होने चाहिए। उदाहरण के लिए यदि शेष राशि $ 1.45 है, तो आउटपुट होना चाहिए QQQQQDD

नमूना चलाना

(इनपुट "-" से शुरू होता है)

  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

अमान्य कोड

  • यदि इनपुट के साथ शुरू होता है, /लेकिन वैध मनी इनपुट, आउटपुट नहीं है Money not Accepted
  • यदि इनपुट एक आइटम है जिसे पहले ही खरीदा जा चुका है, तो आउटपुट Item out of stock
  • यदि इनपुट एक अंक-पत्र संयोजन है जो सीमा में नहीं है (जैसे A0या J2, आउटपुट "अमान्य कोड"
  • अन्य सभी अमान्य इनपुट के लिए, आउटपुट "त्रुटि"

बोनस (-15%): जाम

किसी आइटम को वेंडिंग करते समय, एक 10% संभावना है कि मशीन जाम हो जाएगी, और आइटम अटक जाता है। आउटपुट JAM!!!एक बार। इस मामले में उपयोगकर्ता को "पंच" या "किक" इनपुट करना होगा। हर बार जब उपयोगकर्ता ऐसा करता है, तो 20% संभावना है कि आइटम मुफ्त में टूट जाएगा, और सामान्य के रूप में प्रतिशोध होगा। जब तक जाम साफ नहीं हो जाता, तब तक मान्यता प्राप्त एकमात्र इनपुट "पंच" और "किक" हैं। अन्य सभी इनपुट कुछ नहीं करते हैं। यहाँ एक नमूना है:

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

(जाम साफ कर दिया गया है। सामान्य रूप से फिर से शुरू करें।)

बोनस (-10%): आईडी

यदि उपयोगकर्ता एक मादक पेय (बच्चे की बोतल को छोड़कर अंतिम पंक्ति पर कोई भी वस्तु) खरीदने की कोशिश करता है, तो आपको उम्र के प्रमाण की मांग करनी चाहिए। ऐसा करने के लिए, आप उपयोगकर्ता से 13 और 19 (समावेशी) के बीच दो यादृच्छिक संख्याओं को गुणा करने के लिए कहते हैं। आउटपुट ID required: [13-19]x[13-19] = ?। यदि उपयोगकर्ता सही उत्तर देता है, तो खरीद हो सकती है। यदि नहीं, तो not (U + D83D U + DD1E) आधार 10: (55357 56606) प्रिंट करें

वैकल्पिक चुनौती: Minecraft

यह चुनौती Minecraft में कुछ संभव लगती है। इस कार्यक्रम के सफलतापूर्वक एक Minecraft संस्करण बनाने के लिए, खिलाड़ी को होना चाहिए

  • 56 अद्वितीय वस्तुओं से चयन करने के लिए 8x7 ग्रिड रखें
  • शेष राशि में पैसे जोड़ने में सक्षम हो (हो सकता है कि ऊपर वर्णित विभिन्न संप्रदायों के लिए विभिन्न प्रकार के पत्थरों का उपयोग करें।)
  • उपयोगकर्ता को वह आइटम दें जो वह चुनता है यदि उन्होंने पर्याप्त "पैसा" लगाया है
  • उपयोगकर्ता को अंत में उचित मात्रा में परिवर्तन लौटाएं।

अनुकूलता प्रणाली

  • मैं केवल कार्यक्रम की शुरुआत में इनपुट ले सकता हूं

    • चिंता न करने के लिए, आप एक ऐसा प्रोग्राम बना सकते हैं जो सभी इनपुट को सामने रखता है। यदि आपके प्रोग्राम ने सभी इनपुट का मूल्यांकन करने के बाद समाप्त नहीं किया है, तो मान लें कि "संपन्न" अंत में कहा जाता है। यदि आप यह विधि करते हैं, तो आप किसी भी बोनस के लिए पात्र नहीं होंगे।
  • मैं / आउटपुट इमोजीस नहीं देख सकता

    • आप इस Stack Snippet (या यहाँ ) में अपने इनपुट और आउटपुट को कॉपी और पेस्ट कर सकते हैं । यह इमोजी के लिए यूनिकोड इमोजीस और एचटीएमएल कोड दोनों को समझ सकता है। यदि आपका आउटपुट इस पृष्ठ पर सही दिखता है, तो आपका प्रोग्राम पास हो जाता है। नमूना इनपुट / आउटपुट में से कुछ को चिपकाने की कोशिश करें कि यह कैसा दिखता है।

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>

यहाँ वेंडिंग मशीन डिस्प्ले का संक्षिप्त रूप-संगतता संस्करण है जिसे आप स्टैक स्निपेट में परीक्षण कर सकते हैं:

   &#x31&#x20E3&#x32&#x20E3&#x33&#x20E3&#x34&#x20E3&#x35&#x20E3...
A&#x1F345&#x1F346&#x1F347&#x1F348&#x1F349...
B 
...
  • मैं इमोजी का उत्पादन कर सकता हूं, लेकिन STDOUT के लिए नहीं।

    • प्रतीत होता है, मैक ओएस एक्स टर्मिनल केवल एक ही है जो इमोजी का उत्पादन करने में सक्षम है। यदि आप अपने टर्मिनल में इमोजी का उत्पादन करने में सक्षम नहीं हैं, तो आपके अन्य विकल्प हैं
      • एक फ़ाइल के लिए सभी आउटपुट भेजें।
      • एक विंडो में सभी आउटपुट प्रदर्शित करें।
      • "मैं देख नहीं सकता / आउटपुट इमोजीस" में वर्णित तकनीक का उपयोग कर सकता हूं।

5
$ can be replaced with your local currencyबहुत ज्यादा मतलब नहीं है अगर आप की आवश्यकता है कि सिक्के (N) ickels (D) imes और (Q) uarters। मेरा सुझाव है कि आप इसे हटा दें क्योंकि यह भ्रम जोड़ता है।
लेवल रिवर सेंट

@steveverrill अच्छा बिंदु। मैंने इसे बदल दिया है। मेरा प्रश्न यह है कि क्या गैर-यूएस कीबोर्ड में $ बटन है या इसके लिए कोई कोड है?
जियोकॉवेल

$प्रतीक, ASCII वर्ण सेट का हिस्सा है, इसलिए यह काफी सभी कीबोर्ड और भाषाओं इसे संभाल कर सकते हैं ग्रहण करने के लिए सुरक्षित है। यह 7-बिट ASCII वर्ण सेट में एकमात्र मुद्रा प्रतीक है। परिणामस्वरूप, अन्य प्रतीकों जैसे GBP प्रतीक या EUR प्रतीक € को गलत तरीके से असंगत स्ट्रिंग एन्कोडिंग के कारण प्रदान किया जा सकता है, लेकिन यह वास्तव में कभी नहीं होता है $
लेवल रिवर सेंट

@steveverrill मुझे पता है कि वे इसे संभाल सकते हैं, लेकिन क्या इसके लिए एक भौतिक कीबोर्ड बटन है?
जियोकॉवेल

मेरे ब्रिटिश और स्पैनिश कीबोर्ड में प्रासंगिक स्थानीय मुद्रा प्रतीकों के अतिरिक्त है, और मुझे लगता है कि अन्य लोग भी ऐसा करते हैं। दुनिया में सबसे व्यापक रूप से उपयोग की जाने वाली मुद्रा प्रतीक होने के अलावा (कई मुद्राओं के लिए जिन्हें डॉलर नहीं कहा जाता है), $प्रतीक का अधिकांश प्रोग्रामिंग भाषाओं में विशेष अर्थ है, इसलिए इसे कीबोर्ड पर उपलब्ध नहीं होना एक गंभीर सीमा होगी। मैं इसे अपने स्पेनिश कीबोर्ड पर टाइप कर रहा हूं और € (alt gr + E) की तुलना में $ (शिफ्ट + 4) प्राप्त करना वास्तव में आसान है ताकि आप देख सकें कि बाद वाले प्रतीक को बाद में जोड़ा गया।
लेवल रिवर सेंट

जवाबों:


8

PHP, (1295 - 14) - 25% = 960.75 वर्ण

पुराना स्कोर 1315 1351 1361 1295 989 977

यह मजेदार था, और यह पहला जवाब है - हाँ।

$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;

वेंडिंग मशीनों के रूप में मुझे 90 के दशक की याद दिलाई जाती है जिसका उपयोग मैंने किया gotoऔर खरीदी गई वस्तुओं के लिए स्पेस इनवार्डर 👾 दिखाया गया है। हर कमांड के बाद मशीन को दोबारा तैयार किया जाता है।

अघोषित (किसी तरह)

$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;

And PHP 5.5 और 5.6 👾 के साथ OS X पर परीक्षण किया गया


संपादित करता

  • 12 बाइट्स जोड़ेDoneकुछ तारों पर स्थिर निकास और गोल्फिंग।
  • जोड़ा गया 306 बाइट्स । बोनस के लिए एक या दो बग और अतिरिक्त समर्थन को निर्धारित किया। बोनस के साथ यह अब लगभग 15 बाइट्स छोटा है।
  • 66 बाइट्स जोड़े । पैसे को अलग तरीके से प्रारूपित करना था, और अधिक मूल्यों को स्वीकार करना था ([A-Z][0-9] )Invalid code
  • सहेजे गए 10 बाइट्स । एक व्हाट्सएप मिला और कुछ .=में बदल गया= लागू किया गया।
  • सहेजे गए 36 बाइट्स कुछ पुनर्रचना की वजह से।
  • सहेजे गए 20 बाइट कुछ छोरों और कार्य पुनर्रचना द्वारा।

वाह, खेलने में बहुत मजा आया! एकमात्र मुद्दा जो मैंने देखा: आपको 3 और 3.5 जैसी कीमतें $ 3.00 और $ 3.50 में प्रारूपित करने की आवश्यकता है।
जियोकॉवेल

इसके अलावा, जब मैं टाइप करता हूं तो मुझे J5संदेश मिलना चाहिए: "अमान्य कोड"।
जियोकॉवेल

@geokavel आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने सही मनी फॉर्मेट जोड़ा है और यह Invalid codeअभी के लिए और वेरिएंट स्वीकार करता है । यह एक मजेदार चुनौती है - भले ही इसके पास बहुत सारे विकल्प हैं ... 1K अक्षर खुद के लिए बोलते हैं ... :)
putusernamehere

बधाई हो, एक संकीर्ण अंतर से, आप विजेता हैं! योग्य प्रतियोगियों के लिए दोनों खिलाड़ियों को धन्यवाद, और एक-दूसरे को आउट-गोल्फ करने की कोशिश कर रहे हैं!
जियोकॉवेल

@geokavel यह एक मजेदार चुनौती थी और स्टेफ़न और मेरे बीच एक अच्छा पिंग पोंग था। अगर भविष्य में कोई छोटा समाधान लेकर आएगा, तो मैं वहां रहूंगा। ;)
सम्मिलन नाम

5

सी # 6 (.Net Framework 4.6), 1356 1324 1304 1311 1307 1238 1235 1231 1220 पत्र - 14 पत्र (इमोजी संख्या) - (15% जाम बोनस + 10% आईडी बोनस) = 1017 993 978 972.75 969.75 918 915.75 904.5 पत्र

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);}

LinqPad 5 (C # 6) में उपयोग के लिए थोड़ा और अधिक अनगढ़। F4 में h = System.Console का उपयोग करें।

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);

संपादित करें: (;;) संकेत के लिए धन्यवाद ;;

संपादित करें: हड़ताल !! PHP से बेहतर ;-)

संपादित करें: 24 पत्र निकाले गए। अभी भी कुछ php के लिए छोड़ दिया है।

संपादित करें: दशमलव से डबल में स्विच करके 20 पत्र निकाले गए।

संपादित करें: इमोजी नंबरों पर स्विच करके 7 पत्र निकाले गए

संपादित करें: हटाए गए 4 अक्षरों को डबल और इनट्स के मिश्रण के बजाय सब कुछ डबल करने के लिए स्विच करके।

संपादित करें: 69 पत्र निकाले गए - मृत कोड o_O सर्वश्रेष्ठ प्रविष्टि C #: D मिला

संपादित करें: हटाए गए 3 पत्र - अंतिम if-अन्यथा विवरण

संपादित करें: हटाए गए 4 पत्र - शॉर्ट-सर्किट ऑपरेटरों (&& और ||) से सामान्य और | पर स्विच किए गए

संपादित करें: हटाए गए 11 पत्र - सशर्त शब्दशः स्ट्रिंग के साथ h.WriteLine से w () में स्विच किया गया।


अछा लगता है। मैं यह परीक्षण करने के लिए कर रहा था यहाँ स्थिर इनपुट के साथ। क्या मेरे लिए इसे ऑनलाइन या मैक पर डायनेमिक इनपुट के साथ जांचने का कोई तरीका है?
जियोकॉवेल

आप इसे यहां डायनामिक इनपुट के साथ टेस्ट कर सकते हैं , हालांकि एमोजिस जैसा दिखता है ??
जियोकॉवेल

एकमात्र मुद्दा जो मैंने आपके साथ पाया है वह यह है कि "अमान्य कोड" को केवल एक संख्या-अंक कॉम्बो के लिए दिखाना चाहिए जो सीमा में नहीं है। सभी अनिर्दिष्ट त्रुटियों को "त्रुटि" का उत्पादन करना चाहिए।
जियोकॉवेल

मेरे रास्ते पर @insertusernamehere: D
स्टीफन

हे .... मैं इसे php के तहत मिल गया है :) @insertusernamehere
Stephan Schinkel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.