দশ পিনের বোলিং স্কোর - বিশ্ব বোলিং সংস্করণ


20

ওয়ার্ল্ড বোলিং স্কোরিং

অনেক লোক বোলিংয়ের কয়েকটি গেম খেলতে তাদের স্থানীয় বোলিং সেন্টারে গিয়েছিল এবং অনেক লোক তাদের স্কোর গণনা করতে লড়াই চালিয়ে যায়। আরও বেশি লোককে এই খেলায় আকর্ষণ করার জন্য ওয়ার্ল্ড বোলিং একটি সহজ স্কোরিং সিস্টেম চালু করেছে। এই স্কোরিং সিস্টেমটি আন্তর্জাতিক গেমগুলিতে ব্যবহৃত হয়।

স্কোরিং সিস্টেমটি এইভাবে কাজ করে ( উইকিপিডিয়া থেকে ):

ওয়ার্ল্ড বোলিং স্কোরিং সিস্টেম "" বর্তমান ফ্রেম স্কোরিং "হিসাবে বর্ণনা করা [32] আওয়ার্ডস পিনগুলি নিম্নরূপ:

  • ধর্মঘট: 30 (আগত রোলগুলির ফলাফল নির্বিশেষে)
  • অতিরিক্ত: বর্তমান ফ্রেমের প্রথম রোলটিতে 10 প্লাস পিনফল
  • উন্মুক্ত: বর্তমান ফ্রেমের জন্য মোট পিনফল fall

আপনি যদি দশ-পিন বোলিংয়ের সাথে পরিচিত না হন তবে এখানে একটি পুনরুদ্ধার করা হবে।

একটি বোলিং লেনের শেষে 10 টি পিন রয়েছে যেখানে একটি বোলিং বল দিয়ে তাদের সবাইকে ছুঁড়ে ফেলার লক্ষ্য রয়েছে। আপনি সবগুলিকে ছুঁড়ে ফেলার চেষ্টা করার জন্য একটি বলের দুটি রোল পেয়ে যান, প্রথম রোল দিয়ে স্ট্রোক হিসাবে নামিয়ে দেওয়ার জন্য ( স্ট্রাইক হিসাবে পরিচিত )। যদি আপনি কোনও স্ট্রাইক পান, তবে সেই ফ্রেমটি সম্পূর্ণ হয়ে গেছে এবং দ্বিতীয়বার আপনার বলটি রোল করার দরকার নেই। একটি ধর্মঘট 30 এর মূল্য।

আপনি যদি দশটি না ছিটকে থাকেন তবে আপনি আরও একটি রোল পাবেন। আপনি যদি বাকী সমস্ত পিন ছিটকে দেন তবে এটি অতিরিক্ত হিসাবে পরিচিত । স্কোরটি 10 ​​পিনের মূল্য + প্রথম রোলটিতে ছিটকে যাওয়া পিনের সংখ্যা। উদাহরণস্বরূপ, আমি যদি 7 টি পিন ছিটকে যাই, তবে অবশিষ্ট 3 টি কড়াতে পরিচালিত, এটির মূল্য 17 হবে।

যদি আপনার দ্বিতীয় রোলের পরে আপনি দশটি নক করতে ব্যর্থ হন তবে এটি একটি ওপেন ফ্রেম হিসাবে পরিচিত । স্কোরটি সেই ফ্রেমের জন্য ছিটকে যাওয়া মোট পিনের সংখ্যা।

আছে একটি খেলা 10 ফ্রেম । আপনি যদি সনাতন বোলিং স্কোরের সাথে পরিচিত হন তবে আপনি বিশ্ব বোলিং স্কোরিংয়ের সাথে 10 তম ফ্রেমে কোনও অতিরিক্ত রোল পাবেন না। Traditionalতিহ্যবাহী বোলিং স্কোরিংয়ে, 300 টির নিখুঁত স্কোর পেতে 12 বার স্ট্রাইক লাগে, অন্যদিকে বিশ্ব বোলিংয়ের জন্য কেবল 10 টি স্ট্রাইক প্রয়োজন।

চ্যালেঞ্জ

আপনার চ্যালেঞ্জটি স্কোর শীট থেকে প্রদত্ত স্কোর গণনা করা।

একটি স্কোর শীট, একটি মিস একটি ড্যাশ দ্বারা নির্দেশিত হয় ( - ), একটি ধর্মঘট একটি সঙ্গে এক্স , এবং একটি অতিরিক্ত স্ল্যাশ দিয়ে ( / )। যদি এটি প্রয়োগ না হয়, তবে পিনফলের গণনাটি কেবল একটি সংখ্যার (1-9) দিয়ে নির্দেশ করা হয়। ফাউল এবং স্প্লিটগুলিও স্কোর শিটগুলিতে রেকর্ড করা হয় তবে আপনাকে এগুলি নিয়ে চিন্তা করার দরকার নেই।

ইনপুট

আপনাকে প্রতিটি ফ্রেমের জন্য স্কোর সমন্বিত একটি স্ট্রিং দেওয়া হবে এবং এতে মোট দশটি ফ্রেম থাকবে। স্ট্রাইক হলে প্রতিটি ফ্রেমের দুটি মান পর্যন্ত বা 1 টিরও কম মান থাকবে। আপনার ইনপুট কোনও ফাংশনে স্ট্রিং প্যারামিটার হতে পারে, কোনও ফাইল থেকে পড়া বা এসটিডিআইএন হতে পারে।

উদাহরণস্বরূপ, যদি আমি আমার প্রথম রোলটিতে 1 পিনটি ছিটকে যাই, তবে 2 টি নীচে ছিটকে যায়, ফ্রেমটি "12" এর মতো দেখায়। এর অর্থ 12 (বারো) নয়, মোট 1 এর জন্য 1 এবং 2 এর অর্থ।

আমি যদি উভয় রোল (গটার বল) দিয়ে প্রতিটি পিনটি মিস করি তবে এটি "-" (0 এর স্কোর) এর মতো দেখায়।

প্রতিটি ফ্রেম একটি স্পেস দ্বারা পৃথক করা হবে।

নমুনা ইনপুট

-- 9- -9 X -/ 8/ 71 15 44 X

এই উদাহরণটি ভাঙতে,

  • ফ্রেম 1 (-) - দুটি রোল মিস হয়েছে। 0 রান
  • ফ্রেম 2 (9-) - প্রথম রোল 9 এ ছিটকে গেছে, দ্বিতীয় রোল থেকে মিস হয়েছে। স্কোর 9
  • ফ্রেম 3 (-9) - প্রথমটি মিস করেছেন, দ্বিতীয়টিতে 9 পেয়েছেন। স্কোর 9
  • ফ্রেম 4 (এক্স) - ধর্মঘট, দশটি ছিটকে গেল। স্কোর 30
  • ফ্রেম 5 (- /) - অতিরিক্ত, প্রথমে সমস্ত মিস হয়েছে, ২ য় রোল দিয়ে সমস্তকে ছুঁড়ে ফেলেছে। স্কোর 10 + 0 = 10
  • ফ্রেম 6 (8 /) - অতিরিক্ত রোল, প্রথম রোলের 8 টি পিন, 2 য় রোল সহ অন্যান্য 2 টি ছুঁড়ে ফেলল। স্কোর 10 + 8 = 18
  • ফ্রেম 7 (71) - ওপেন ফ্রেম, প্রথম রোলটিতে 7 পিন, দ্বিতীয় রোলটিতে 1 পিন। স্কোর 7 + 1 = 8
  • ফ্রেম 8,9,10 উপরের মত একই উদাহরণ অনুসরণ করে।

আউটপুট

আউটপুট কেবল এমন একটি মান হবে যা সমস্ত 10 ফ্রেমের স্কোরের যোগফল। নমুনা ইনপুট ব্যবহার করে আউটপুটটি 128 হবে Your আপনার আউটপুটটি স্ট্রিং বা একটি সংখ্যার প্রকার হতে পারে। এটি কোনও ফাংশন রিটার্ন মান, বা STDOUT এ লিখিত হতে পারে।

বিধি

  • ধরে নিন যে ইনপুটটি সর্বদা বৈধ থাকবে। উদাহরণস্বরূপ, একটি অবৈধ ফ্রেম হবে "/ 8", "XX", "123", "0", ইত্যাদি etc.
  • বিভাজন বা ফাউল সম্পর্কে আপনাকে চিন্তা করার দরকার নেই।
  • আপনার কোড একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন হতে পারে যা স্ট্রিংয়ের মধ্যে লাগে এবং স্কোরটি দেয়।
  • আপনার কোড অবশ্যই কোনও ব্যতিক্রম নিক্ষেপ করবে না।
  • এটি কোড গল্ফ, সবচেয়ে কম সংখ্যক বাইট জয়ের উত্তর।
  • যে ভাষাগুলি ব্যবহার করে বা আমদানি করে সেগুলিকে অবশ্যই তাদের কোডের অংশ হিসাবে আমদানি বিবৃতি অন্তর্ভুক্ত করতে হবে এবং বাইট গণনার দিকে গণনা করতে হবে।

পরীক্ষার মামলা

"-- 9- -9 X -/ 8/ 71 15 44 X" -> 128
"-- -1 2- 12 22 5- 42 61 8- 72" -> 45
"X X X 1/ 2/ 3/ 4/ 5/ -- 9/" -> 174
"X X X X X X X X X X" -> 300
"-- -- -- -- -- -- -- -- -- --" -> 0

21
আমি হতাশ এটি কোনও কোড-বোলিং চ্যালেঞ্জ নয়
জো কিং

13
আপনার প্রথম অতিরিক্ত উদাহরণ বলেছেন স্কোর 13 হতে পারে, কিন্তু আমি মনে করি এটা 17. হতে অনুমিত হয়
জো।

@Jo। ভালো বল ধরা. আমি ত্রুটিটি ঠিক করতে প্রশ্নটি আপডেট করেছি।
মাকোটোসান

@ জোকিং আমি ভাবছিলাম যে এটি শিরোনামটি প্রথম দেখলে 10 টি সাবচ্যালেঞ্জ নিয়ে গঠিত কোড-বোলিং চ্যালেঞ্জ।
ওয়েইজুন চিউ

1
আমি দেখেছি অন্যতম সেরা ডকুমেন্টেড এবং লিখিত চ্যালেঞ্জ।
জোশুয়া

উত্তর:



7

জাভাস্ক্রিপ্ট, 43 বাইট

f=([c,...s])=>c?({'/':10,X:30}[c]|c)+f(s):0

কিভাবে এটা কাজ করে

আমরা প্রতিটি চরিত্রকে এর বিন্দুতে রূপান্তর করি:

  • 'এক্স' এর মূল্য 30 পয়েন্ট
  • '/' মূল্য 10 পয়েন্ট
  • '1' .. '9' এর মূল্য 1 .. 9 পয়েন্ট
  • অন্যান্য পয়েন্ট 0 পয়েন্ট মূল্যবান

তারপরে সমস্ত পয়েন্ট যোগফল।

রূপান্তর

বিটওয়াইস বা অপারেটর |অপারেটের আগে এর অপারেন্ডটি ইন্ট 32 এ রূপান্তর করে। ইন্ট 32-এ রূপান্তর করার সময়, প্রথমে মানটিকে (bit৪ বিট ফ্লোট নম্বর) ফর্ম্যাটে রূপান্তর করুন, তারপরে ট্রাঙ্কটি ইনট 32 (অথবা অবৈধ হলে 0 তে রূপান্তরিত) করুন।

  • ToInt32({'/':10,X:30}[c]) হিসাবে পড়া যেতে পারে:
    • যদি সি == '/': ফলাফল 10;
    • যদি সি == 'এক্স': ফলাফল 30;
    • অন্যথায়: ফলাফলটি ToInt32(undefined)-> ToInt32(NaN)-> 0;
  • ToInt32(c) হতে পারে:
    • যদি সি == '1' ... '9': ফলাফল 1 .. 9;
    • যদি সি == '': Number(c)0 হয়, ফলাফল 0 হয়;
    • অন্যথায়: Number(c)হয় NaN, ফলাফল 0 হয়;
  • বিটওয়াইস বা এখানে "অ্যাড" এর সমান, কারণ এর অপারেন্ডগুলির মধ্যে একটি 0 হবে

সমষ্টি

  • [c,...s] = sযাক c = s[0], এবং s = s.slice(1);
    • যদি গুলি খালি স্ট্রিং হয়, গ অনির্ধারিত ;
    • অন্যথায় গ এর প্রথম অক্ষর
  • অপরিজ্ঞাত মিথ্যা, অ খালি স্ট্রিং (স্থান সহ) সত্য y

1
আপনি আপনার কোড ব্যাখ্যা করতে পারেন? সত্যিই দুর্দান্ত দেখাচ্ছে
লুইস ফিলিপ দে জেসুস মুনোজ

পুনঃটুইট করেছেন
tsh

5

স্ট্যাক্স , 13 বাইট

─*âⁿ┴8òt↨HÉ÷8

এটি চালান এবং এটি ডিবাগ করুন

আনপ্যাকড, অরগল্ফড এবং মন্তব্য করেছে এটি এটি।

F               for each character in input, execute...
 9R$'/20*+'X+   build the string "123456789////////////////////X"
 I              get the index of the current character in string
 ^+             increment and add to running total
                (index is -1 when no match; space and dash are 0 score)

এটি চালান



3

জাভা 8, 64 59 46 বাইট

s->s.map(c->c<46?0:c<48?10:c>87?30:c-48).sum()

-5 বাইট @ নীল ধন্যবাদ ।
-13 বাইটস @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ ।

ব্যাখ্যা:

এটি অনলাইনে চেষ্টা করুন।

s->               // Method with an IntStream parameter and integer return-type
  s.map(c->       //  Loop over the characters
          c<46?   //   If the character is a space or '-':
           0      //    Count it as 0
          :c<48?  //   Else-if it's a '/':
           10     //    Count it as 10
          :c>87?  //   Else-if it's an 'X':
           30     //    Count it as 30
          :       //   Else (it's a digit):
           c-48   //    Count it as the value of the digit
       ).sum()    //   And sum everything

1
("123456789//"+1e6+1e6+"X")5 বাইট সংরক্ষণ করা হবে বলে মনে হচ্ছে
নীল

এটি কিছু পরিপূর্ণ স্ট্রিং তৈরি করার জন্য একটি চতুর কৌশল।
মাকোটোসান


3

এফ #, 106 103 বাইট

let s c=Seq.sumBy(fun x->if x=' '||x='-'then 0 elif x='X'then 30 elif x='/'then 10 else int(string x))c

এটি অনলাইন চেষ্টা করুন!

আমি মনে করি যে এই ধাঁধাটি (গল্ফিং ছাড়াই) "প্রাথমিকভাবে ফাংশনাল প্রোগ্রামিং" গাইডের জন্য দুর্দান্ত প্রশ্ন হয়ে উঠবে। এবং আমার জানা উচিত!

কেভিন ক্রুইজসেন থেকে -3, 'এবং "তারপরে" সাদা স্থানটি মুছতে পারে তা চিহ্নিত করার জন্য। ধন্যবাদ!

স্ট্রিং সূচকগুলি ব্যবহারের পুনরাবৃত্তির স্ট্যাক্স সমাধান খুব ভাল। যদি আপনি এফ # তে পোর্ট করেন তবে আপনি এটি 77 বাইটে পেতে পারেন :

let s c=Seq.sumBy(fun x->"123456789/???????????????????X".IndexOf(char x)+1)c

এটি অনলাইন চেষ্টা করুন!


1
আমি এফ # খুব ভাল জানি না, তবে মনে হচ্ছে আপনি '-3 বাইটের পরে স্পেসগুলি ফেলে দিতে পারেন ।
কেভিন ক্রুইজসেন 26'18

আমিও না! কিন্তু আপনি ঠিক বলেছেন, ভাল দাগযুক্ত! ধন্যবাদ!
Ciaran_McCarthy

2
@ কায়রান_ম্যাকার্থি: আপনি যদি আমার সমাধানটি অনুলিপি করতে চান তবে আপনার এটি অনুলিপি করা আমার আপত্তি নেই। এখানকার লোকেরা সাধারণত এ জাতীয় জিনিস সম্পর্কে বেশ উন্মুক্ত। এটি আনুষ্ঠানিকভাবে একটি প্রতিযোগিতা হলেও, সমস্ত ক্ষুদ্রতম কোড সন্ধানের জন্য এটি একটি সমবায় প্রচেষ্টা।
পুনরাবৃত্তি

1
ধন্যবাদ পুনরাবৃত্তি। আমি তখন এটি অন্তর্ভুক্ত করব, কারণ এটি একটি খুব দুর্দান্ত সমাধান এবং এটি বিভিন্ন ভাষায় কীভাবে দেখায় তা আকর্ষণীয়।
Ciaran_McCarthy

2

জেলি , 17 বাইট

ḟ⁾ -“X0/⁵”yV€o30S

একটি মোনাডিক লিঙ্ক অক্ষরের একটি তালিকা গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত দেয়

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

ḟ⁾ -“X0/⁵”yV€o30S - Link: list of characters
 ⁾ -              - literal list of characters [' ','-']
ḟ                 - filter discard
    “X0/⁵”        - literal list of characters ['X','0','/','⁵']
          y       - translate (change 'X's to '0's and '/'s to '⁵'s)
           V€     - evaluate €ach character as Jelly code (the '⁵'s become 10s)
             o30  - logical OR with 30 (change all instances of 0 to 30)
                S - sum

17 এ:

”/ẋ20ØD;;”XḊiЀ⁸S

চেষ্টা কর



2

রেটিনা , 17 বাইট

X
///
/
55
\d
*
_

এটি অনলাইন চেষ্টা করুন!

সর্বশেষ রেটিনা পরিবর্তন সম্পর্কে আমি আপ টু ডেট নেই। আমি যখন সুযোগ পেলাম তখন এগুলিতে আরও তাকাব এবং এটিকে গল্ফ করার জন্য কোনও নতুন কৌশল আছে কিনা তা দেখুন। কোডটি সমস্ত স্ট্রাইককে তিনটি স্পেয়ারে, সমস্ত অতিরিক্তকে দশ পয়েন্টে রূপান্তরিত করে, তারপরে সমস্ত পয়েন্টগুলিকে আন্ডারস্কোরের সংখ্যার সাথে সম্পর্কিত করে। তারপরে এটি আন্ডারস্কোরগুলির সংখ্যা গণনা করে।


2

পার্ল 5 -pF , 30 27 বাইট

-3 বাইট Xcali ধন্যবাদ

#!/usr/bin/perl -pF
$\+=m%/%+3*/X/.0+$_ for@F}{

এটি অনলাইন চেষ্টা করুন!


ব্যবহার করে আপনি দুটি বাইট কেটে যাবে /X/পরিবর্তে y/X//এবং আরও একটি ব্যবহার করে m%/%পরিবর্তে y%/%%: এটি অনলাইন ব্যবহার করে দেখুন!
এক্সকালি

@ এক্সকালি আহ, অবশ্যই ক্লাসিক গল্ফ শর্টসাইটনেসনেস, আমি তখনও y///লুপের বাইরে এগুলি করার সময় থেকে বিবেচনা করছি। ধন্যবাদ
টন হসপেল

1

05 এ বি 1 ই , 14 বাইট

þ`I…/aXS¢ƶT*`O

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

þ`              # Push the digits of the input on the stack (removes everyting that isn't a digit)
  I…/aXS        # Push the input and the array "/","a","X" on the stack
        ¢       # Index of each element in the input ...
         ƶT*    # ... multiplied by its index (a could be anything that can't be found in the input), multiplied by 10.
            `O  # Sum the stack, implicit display

1

জে , 33 বাইট

1#.31|('-123456789',20 1#'/X')i.]

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

] ইনপুট

('-123456789',20 1#'/X')20 /এবং একটি Xস্ট্রিং এ সংযোজন-123456789

i. উপরের স্ট্রিংয়ে ইনপুট সূচকগুলি সন্ধান করে

31|মডিউল 31 - স্পেসগুলি থেকে মুক্তি পেতে - তারা স্ট্রিংয়ের মধ্যে পাওয়া যায় না, তাই i.তাদের জন্য 31 ফিরিয়ে দেয়

1#. সূচকের যোগফল খুঁজে পায়


যেহেতু জে এবং রেড দুটি সম্পূর্ণ ভিন্ন ভাষা, তারা পৃথক পৃথক দুটি উত্তর পোস্ট করা ভাল, যদিও তারা একই রকম করতে পারে। আপনি এই জে জবাব উত্তরের রেড উত্তর থেকে একটি লিঙ্ক যুক্ত করতে পারেন এটি উল্লেখ করে যে এটি আপনার জে উত্তরের একটি বন্দর।
কেভিন ক্রুইজসেন 12'14

@ কেভিন ক্রুইজসেন - ঠিক আছে, ধন্যবাদ - আমি এটি করব। তাদের একসাথে পোস্ট করার কারণ হ'ল স্পষ্টতই রেড সমাধানটি প্রতিযোগিতামূলক নয় (যদিও এটি বেশ পাঠযোগ্য) :)
গ্যালেন ইভানভ

1

পাইথন 2 , 67 বাইট

-3 বাইটস @ কেভিন ক্রুজসেনকে ধন্যবাদ thanks

lambda I,p='-123456789/'+20*'X':sum(p.rfind(i)for i in I if i in p)

এটি অনলাইন চেষ্টা করুন!


1
আপনি পরিবর্তন করে 3 বাইট সংরক্ষণ করতে পারবেন '-123456789'+'/'*20+'X':sum(p.index(i)করার'-123456789/'+'X'*20:sum(p.rfind(i)
কেভিন Cruijssen

কেভিন ক্রুজসেন ধন্যবাদ, ভাল!
ডেড পসসাম 13

1

জেলি , 12 বাইট

⁾/X,“½œ‘y|0S

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

⁾/X,“½œ‘y|0S  Main link. Argument: s (string)

⁾/X,“½œ‘      Literal; yield [['/', 'X'], [10, 30]].
        y     Transliterate; replace '/' with 10, 'X' with 30.
         |0   Bitwise OR with 0. Bitwise operators attempt to cast to int, mapping 
              '0', ..., '9' to 0, ..., 9. All other characters map to 0.
           S  Take the sum.


1

কোটলিন , 50 বাইট

x->x.sumBy{"123456789/_${Math.E}_X".indexOf(it)+1}

এটি অনলাইন চেষ্টা করুন!

আশা করি আপনার নিজের প্রশ্নের উত্তর দেওয়া নিয়মের বিরুদ্ধে নয় তবে আমি মজাতে অংশ নিতে চাইছি।

Math.E মান উত্পাদন করে 2.718281828459045 । আমি এক্সটি 30-এর অবস্থানের দিকে ধাক্কা দেওয়ার জন্য কিছু পরিপূর্ণ স্ট্রিং তৈরি করতে এটি ব্যবহার করছি।

indexOf"12345 ..." স্ট্রিং-এ অক্ষরটির অবস্থান (0-ভিত্তিক) পায়। যদি এটি না পাওয়া যায় তবে এটি ফেরত -1 দেয়। আমরা এই 0 তৈরি করতে 1 যুক্ত করি এবং এটি 0-ভিত্তিক অবস্থানটিকে স্ট্রিংয়ের মানও করে তোলে।


1

পিএইচপি, 119 109 বাইট

-10 বাইটস @ কেভিন ক্রুজসেনকে ধন্যবাদ thanks

<?foreach(explode(" ",$argv[1])as$f){[$a,$b]=str_split($f);$n+=$f==X?30:(int)$a+($b=='/'?10:(int)$b);}echo$n;

এটি অনলাইন চেষ্টা করুন!


আপনি -10 বাইটে পরিবর্তন ($b=='/'?10+(int)$a:((int)$a+(int)$b))করতে পারেন (int)$a+($b=='/'?10:(int)$b)
কেভিন ক্রুইজসেন 12'35

ধন্যবাদ কেভিন ক্রুজসেন, ধন্যবাদ সুন্দর! যদিও, অন্যান্য উত্তরগুলির দিকে তাকিয়ে দেখে মনে হচ্ছে যে আমি এটি ভুল / দীর্ঘ পথ সম্পর্কে যাচ্ছি। :)
জো।

0

কাঠকয়লা , 23 বাইট

IΣEχΣES⎇№-/Xλ×χ⌕-//XλIλ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

  Eχ                    Map over 10 frames
      S                 Input the frame
     E                  Map over the characters
            λ           Current character
        №-/X            Search the literal string `-/X`
                    λ   Current character
               ⌕-//X    Find position in literal string `-//X`
             ×χ         Multiply by predefined variable 10
                      λ Current character
                     I  Cast to integer
       ⎇                Ternary
    Σ                   Sum for each frame
 Σ                      Sum over frames
I                       Cast to string for implicit print




0

SNOBOL4 (CSNOBOL4) , 169 151 147 বাইট

	F =INPUT ' '
R	F '-' =0	:S(R)
T	F 'X' ='_'	:S(T)
S	F LEN(1) . X ARB . Y ' ' REM . F	:F(O)
	X '_' =30
	Y '/' =10
	S =S + X + Y	:(S)
O	OUTPUT =S
END

এটি অনলাইন চেষ্টা করুন!

	F =INPUT ' '					;* read input and append a space
R	F '-' =0	:S(R)				;* replace - with 0
T	F 'X' ='_'	:S(T)				;* replace X with _
S	F LEN(1) . X ARB . Y ' ' REM . F	:F(O)	;* set first character to x, remainder up to ' ' to y, and remainder to F
	X '_' =20					;* replace _ in x with 20
	Y '/' =10					;* replace / in y with 10
	S =S + X + Y	:(S)				;* else X and Y are their values so we can sum them
O	OUTPUT =S					;* output the sum
END

0

ক্লোজার , 70 বাইট

#(reduce(fn[s i](+ s(case i\- 0\/ 10\X 30\space 0(bigint(str i)))))0%)

এটি অনলাইন চেষ্টা করুন!

যখন reduceকে ভেবেছিল - একটি স্ট্রিং উপর ing, প্রতিটি গৃহস্থালির কাজ আসলে একটি গৃহস্থালির কাজ রূপান্তরিত হয়। তবে এই গড়পড়তা, আমাকে লিখতে হবে \spaceএবং এটি কল্পনাও করতে পারে এমন একের বেশি। তাছাড়া, কোনো গৃহস্থালির কাজ থেকে একটি প্রকৃত সংখ্যা তৈরি, সমন্বয় bigintএবং strশুধুমাত্র ব্যবহারযোগ্য সমন্বয় মনে করা হয়।

ঠিক আছে, এই সমস্ত সংগ্রামগুলি বাদ দিয়ে: বেনামে ফাংশন যা স্কোরটিকে প্রাকৃতিক হিসাবে ফিরিয়ে দেয়।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.