이모티콘 자동 판매기


23

이모티콘이 보이지 않습니까? 여기를 클릭 하십시오 .

자동 판매기를 시뮬레이션합니다. 항목은 56 개의 서로 다른 이모티콘이며, (U + D83C U + DF45)에서 🍼 (U + D83C U + DF7C)까지 두 개의 서로 게이트 UTF-8 문자로 표시 될 수 있습니다. HTML에서이 이모지는 UTF-16 형식으로 & # x1F345 ~ & # x1F37C 로 표현 될 수 있습니다 . 10 진에서 첫 번째 UTF-8 문자의 값은 55356 입니다. 두 번째 문자의 값 범위는 57157 ~ 57212 입니다. 다음 은 모든 관련 이모지를 생성하는 CJam 프로그램입니다. 혼동을 피하기 위해이 과제는 바이트가 아닌 문자 로 점수가 매겨 집니다. 일부 이모티콘은 2 개 문자입니다, 일부는 3입니다 http://www.lettercount.com는 이 문제에 대해 당신에게 정확한 수를 줄 것이다.

가격 💵💵💵

8 가지 가격 카테고리가 있습니다 :

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

자동 판매기 표시

이것은 프로그램 시작 시점과 구매 후 사용자에게 표시되는 내용입니다. 이모 지 번호 대신 일반 숫자를 사용할 수 있지만 이모 지 번호는 다른 이모 지와 동일한 너비의 이점이 있습니다. 이모티콘 숫자를 사용하면 이모티콘 숫자가 각각 3 자이므로 점수에서 14자를 뺄 수 있습니다 .

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

사용자가 입력 G5하면 🍳가 선택됩니다. 입력하면 E6🍦가 선택됩니다.

현금 추가하기 💸💸💸

돈을 추가하려면, 사용자는 /동전이나 지폐의 코드를 입력 한 다음에 입력해야합니다 . 동전은 (N) 니켈 ($ 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]. 그런 다음 자체 라인에 구매 한 항목의 그림 이모티콘을 인쇄하십시오. 그런 다음 구매 한 품목을 🚫 (U + D83D U + DEAB) Base 10 : (55357 57003)으로 교체하여 전체 자판기 ( "자판기 표시"참조)를 인쇄하십시오.

프로그램 종료

사용자가 자신의 잔액을 $ 0.00로 낮추는 품목을 구매하면 프로그램이 자동으로 종료됩니다. 또는 사용자가 언제든지 "완료"를 입력하면 프로그램은 사용자에게 잔액 변경을 제공해야합니다. 변경은 니켈, 다임 및 분기에만 있어야하며 가능한 가장 적은 양의 동전이어야합니다. 예를 들어 잔액이 $ 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

잘못된 코드

  • 입력이 시작 /되었지만 유효한 금액 입력이 아닌 경우 output을 출력하십시오 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 %) : ID

사용자가 알코올 음료 (아기 병을 제외한 마지막 줄에있는 품목)를 구매하려고하면 연령 증명을 요구해야합니다. 이렇게하려면 사용자에게 13과 19 (포함) 사이에 두 개의 난수를 곱하도록 요청하십시오. 출력 ID required: [13-19]x[13-19] = ?. 사용자가 올바르게 대답하면 구매를 진행할 수 있습니다. 그렇지 않은 경우 🔞 (U + D83D U + DD1E) 10을 인쇄하십시오. : (55357 56606)

대체 과제 : 마인 크래프트

이 도전은 Minecraft에서 가능한 것 같습니다. 이 프로그램의 Minecraft 버전을 성공적으로 만들려면 플레이어가

  • 56 개의 독특한 아이템 중에서 선택할 수있는 8x7 그리드
  • 잔액에 돈을 추가 할 수 있어야합니다 (위에 설명 된 다른 명칭에 대해 다른 종류의 돌을 사용할 수도 있습니다).
  • 충분한 "돈"을 넣은 경우 사용자가 선택한 항목을 사용자에게 제공하십시오.
  • 마지막에 사용자에게 적절한 양의 변경을 반환하십시오.

호환 모드

  • 프로그램 시작시에만 입력 할 수 있습니다

    • 걱정할 필요없이 모든 입력을 미리 처리하는 프로그램을 만들 수 있습니다. 모든 입력을 평가 한 후 프로그램이 종료되지 않은 경우 끝에 "완료"가 호출되었다고 가정하십시오. 이 방법을 사용하면 보너스를받을 수 없습니다.
  • 이모티콘을 보거나 출력 할 수 없습니다

    • 입력 및 출력을 복사하여이 스택 스 니펫 (또는 here )에 붙여 넣을 수 있습니다 . 유니 코드 이모 지와 이모 지에 대한 HTML 코드를 모두 이해할 수 있습니다. 이 페이지에서 출력물이 올바르게 보이면 프로그램이 통과 한 것입니다. 샘플 입 / 출력의 일부를 붙여 넣어 어떻게 보이는지보십시오.

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>

다음은 Stack Snippet에서 테스트 할 수있는 자동 판매기 디스플레이의 약식 호환 모드 버전입니다.

   &#x31&#x20E3&#x32&#x20E3&#x33&#x20E3&#x34&#x20E3&#x35&#x20E3...
A&#x1F345&#x1F346&#x1F347&#x1F348&#x1F349...
B 
...
  • 이모티콘을 출력 할 수 있지만 STDOUT에는 출력 할 수 없습니다.

    • Mac OS X 터미널은 이모티콘을 출력 할 수있는 유일한 것으로 보입니다. 터미널에서 이모티콘을 출력 할 수없는 경우 다른 옵션은
      • 모든 출력을 파일로 보냅니다.
      • 모든 출력을 창에 표시합니다.
      • "이모지를 보거나 출력 할 수 없습니다"에 설명 된 기술을 사용하십시오.

5
$ can be replaced with your local currency동전이 (N) 니켈 (D) imes과 (Q) uarters가되어야하는 경우에는 의미가 없습니다. 혼란을 유발할 수 있으므로 제거하는 것이 좋습니다.
Level River St

@steveverrill 좋은 지적입니다. 나는 그것을 바꿨다. 내 질문은 미국 이외의 키보드에 $ 버튼이 있습니까, 아니면 코드가 있습니까?
geokavel

$기호는 그래서 거의 모든 키보드 및 언어를 처리 할 수있는 가정하는 것이 안전, ASCII 문자 세트의 일부입니다. 7 비트 ASCII 문자 집합에서 유일한 통화 기호입니다. 결과적으로 호환되지 않는 문자열 인코딩으로 인해 GBP 기호 또는 EUR 기호 €와 같은 다른 기호가 잘못 렌더링 될 수 있지만 실제로는 발생하지 않습니다 $.
Level River St

@steveverrill 나는 그들이 그것을 처리 할 수 ​​있다는 것을 알고 있지만 물리적 키보드 버튼이 있습니까?
geokavel

영국 및 스페인 키보드에는 관련 현지 통화 기호 외에 다른 키보드도 있습니다. 세계에서 가장 널리 사용되는 통화 기호 (달러라고 부르지 않는 많은 통화 포함) 이외에도이 $기호는 대부분의 프로그래밍 언어에서 특별한 의미를 가지므로 키보드에서 사용할 수없는 것은 심각한 제한이됩니다. 스페인어 키보드에서 이것을 입력하고 있으며 실제로 € (alt gr + E)보다 $ (shift + 4)를 얻는 것이 더 쉽습니다. 따라서 후자의 기호가 나중에 생각되는 것으로 추가되었음을 알 수 있습니다.
Level River St

답변:


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;

👾 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으로 포맷해야합니다.
geokavel

또한 입력하면 J5"잘못된 코드"라는 메시지가 나타납니다.
geokavel

@geokavel 의견을 보내 주셔서 감사합니다. 올바른 금액 형식을 추가했으며 Invalid code현재 더 많은 변형을 허용 합니다. 많은 옵션이 있지만 재미있는 도전입니다. 1K 캐릭터는 스스로 말을합니다 ... :)
insertusernamehere

축하합니다, 좁은 마진으로 당신이 승자입니다! 합당한 경쟁자이며 서로를 능가하려고 열심히 노력해 주셔서 감사합니다!
geokavel

@geokavel 그것은 Stephan과 나 사이의 재미있는 도전과 멋진 탁구였다. 미래에 누군가가 더 짧은 해결책을 제시한다면, 나는 거기에있을 것이다. ;)
insertusernamehere

5

C # 6 (닷넷 프레임 워크 4.6) 1,356 1,324 1,304 1,311 1,307 1,238 1,235 1,231 1,220 편지 - 14 문자 (이모티콘 번호) - (15 % 잼 보너스 + 10 % ID 보너스) = 1,017 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);

편집 : for (;;) 힌트 주셔서 감사합니다;)

편집 : 파업 !! PHP보다 낫다 ;-)

편집 : 24 글자를 제거했습니다. 여전히 PHP에 남은 것이 있습니다.

편집 : 십진수에서 더블로 전환하여 20 글자를 제거했습니다.

편집 : 이모티콘 숫자로 전환하여 7 글자 제거

편집 : double과 int를 섞지 않고 모든 것을 double로 전환하여 4 글자를 제거했습니다.

편집 : 69 글자 제거-죽은 코드 o_O Best Entry C # : D 발견

편집 : 3 글자 제거-마지막 if-else 문 전환

편집 : 4 글자 제거-단락 연산자 (&& 및 ||)에서 정상 & 및 |

편집 : 11 글자 제거-조건부 그대로 문자열을 사용하여 h.WriteLine에서 w ()로 전환했습니다.


좋아 보인다 정적 입력으로 여기 에서 테스트 할 수있었습니다 . 온라인 또는 Mac에서 동적 입력으로 테스트하는 방법이 있습니까?
geokavel

이모티콘이로 표시되지만 여기 에서 동적 입력으로 테스트 할 수 있습니다 ??.
geokavel

내가 당신과 함께 발견 한 유일한 문제는 "잘못된 코드"가 범위에없는 숫자 자리 콤보에만 표시되어야한다는 것입니다. 지정되지 않은 모든 오류는 "오류"를 출력해야합니다.
geokavel

내 길에 @insertusernamehere : D
스테판 Schinkel

이봐 .... 내가 PHP에서 아래로있어 :) @insertusernamehere
Stephan Schinkel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.