স্ক্র্যাবল স্কোরার


42

চ্যালেঞ্জ:

ইনপুট (alচ্ছিক) হিসাবে ছোট বা বড় হাতের অক্ষরের একটি স্ট্রিং নিন এবং ইংরেজীতে স্ক্র্যাবলের কোনও খেলায় স্ট্রিংটি যে স্কোরটি পেতে পারে তার গণনা করুন ।

নিয়মাবলী:

প্রতিটি অক্ষরের স্কোর নিম্নরূপ (গেমের অন্যান্য সংস্করণ থাকলেও এটি ব্যবহার করুন):

1 point: E, A, I, O, N, R, T, L, S, U
2 points: D, G
3 points: B, C, M, P
4 points: F, H, V, W, Y
5 points: K
8 points: J, X
10 points: Q, Z

স্ট্রিংয়ের স্কোর হ'ল ব্যবহৃত অক্ষরের প্রতিটি স্কোরের যোগফল। আপনি ধরে নিতে পারেন যে আপনার কাছে প্রচুর টাইলস পাওয়া যায়, এত দীর্ঘ শব্দ এবং একই বর্ণের অনেকগুলি শব্দ বৈধ ইনপুট।

পরীক্ষার কেস:

ABC       ->    7
PPCG      ->   11
STEWIE    ->    9
UGPYKXQ   ->   33
FIZZBUZZ  ->   49
ABCDEFGHIJKLMNOPQRSTUVWXYZ  -> 87

প্রতিটি ভাষায় সংক্ষিপ্ত উত্তর জেতে! ইনপুট এবং আউটপুট ফর্ম্যাটগুলি নমনীয়, তাই আপনি চাইলে আপনি অক্ষরের অ্যারে হিসাবে ইনপুট নিতে পারেন (উচ্চ বা নিম্ন কেস)।


6
আমি একটি ম্যাটল্যাব / অক্টাভা সমাধান দেখতে আশা করছি। আমার সমস্ত প্রচেষ্টা ছিল ভয়াবহভাবে দীর্ঘ ... = /
স্টিভি গ্রিফিন

4
আমি বিটনিক সমাধান দেখতে আশা করছি। কিউজ, আপনি জানেন যে, কাজের জন্য এটি সঠিক সরঞ্জাম হবে।
জিউসেপে

@ স্টেভিগ্রিফিন 85 বাইট কি মারাত্মক দীর্ঘ হিসাবে গণনা করে?
লুইস মেন্ডো 21

3
ম্যাথামেটিকার জন্য কি এটি অন্তর্নির্মিত নয়?
সার্জিওল

1
@ মানসাহেকাটজ আপনি অবশ্যই এটি চালিয়ে যাওয়া উচিত! আমি আপনাকে সুপারিশ করছি যে আপনি স্যান্ডবক্সে চ্যালেঞ্জটি পোস্ট করুন কিছুটা প্রতিক্রিয়া জানাতে এবং এটি মূল সাইটে পোস্ট করার আগে এটিতে সহায়তা করুন। জটিল চ্যালেঞ্জগুলি কোনও প্রতিক্রিয়া ছাড়াই ডান পেতে কুখ্যাতভাবে কঠিন।
স্টিভি গ্রিফিন

উত্তর:


16

সেড 4.2.2 , 81

s/[QZ]/JD/g
s/[JX]/KB/g
s/K/FE/g
s/[FHVWY]/BE/g
s/[BCMP]/DE/g
s/[DG]/EE/g
s/./1/g

আউটপুট অচেনা অবস্থায় রয়েছে

সমস্ত অক্ষর 1-স্কোরার না হওয়া পর্যন্ত প্রতিটি অক্ষরকে লো-স্কোরিং অক্ষরের সংমিশ্রণে হ্রাস করে। তারপরে 1s এর সাথে প্রতিস্থাপন করে একটি অবিচ্ছিন্ন গণনা দেয়।

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


10

হাস্কেল , 86 84 বাইট

f s=length s+sum[n|x<-s,(n,y)<-zip(9:7:[1..])$words"QZ JX DG BCMP FHVWY K",x`elem`y]

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

ব্যাখ্যা

বেশিরভাগ চিঠিগুলি 1 এর স্কোর দেয় এবং সুতরাং আমাদের এগুলি ট্র্যাক করে রাখার দরকার নেই, পরিবর্তে আমরা কেবল প্রতিটি স্কোর হ্রাস করি ( 10পাশাপাশি 1 বাইট সংরক্ষণ করে ) এবং তারপরে ফলাফলের স্কোরটিতে স্ট্রিংয়ের দৈর্ঘ্য যুক্ত করি।

ধন্যবাদ @ নিমিকে -২ বাইটের জন্য (শব্দগুলি পুনরায় সাজানো এবং [1..]পরিবর্তে ব্যবহার করে [4,3..])!


1
zip[1..]$words"DG BCMP FHVWY K . . JX . QZ"সমান দৈর্ঘ্যের সাথে অন্য একটি বিকল্প দেয়
অ্যাঙ্গস 21

10

অক্টাভা , 50 বাইট

@(t)'				'/3*sum(65:90==t')'

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

চ্যালেঞ্জ গ্রহন করা হল. ব্যাখ্যা:

@(t)             % Define anonymous function taking a single argument t.
    ' ... '/3    % Row vector with letter scores. Corresponds to char([1 3 3 2 ...]*3). 
                 % The factor 3 was necessary to avoid a newline.

*                % Dot product (yes, * is dot product, .* is not. Go figure). Equivalent to sum of element-wise products.
     65:90       % Alphabet
          ==t'   % Broadcast equality with input string.
 sum(         )  % Sum this matrix. Gives the count of each letter in the alphabet
               ' % Transpose into column vector for dot product

খুব চালাক! মুদ্রণযোগ্য ব্যবহার করা একটি দুর্দান্ত স্পর্শ ছিল! :)
স্টিভি গ্রিফিন

@StewieGriffin এটা শুধুমাত্র এক বাইট তুলনা নেই -47কিন্তু যে আপনার জন্য এর কোড-golfing!
8:30

1
দীর্ঘশ্বাস. ভাল এবং সত্যই গল্ফড। আমি বুঝতে পারি নি ==যে আপনি অক্টোটাভের মতো ব্যবহার করতে পারেন । ম্যাটল্যাবে কাজ করে না। জানা ভাল.
টম কার্পেন্টার

2
@ টমক্যারপেন্টার মানে আমি ক্ষতে কোনও লবণ ঘষতে চাইছি না, তবে এটি করার 'পুরানো' পদ্ধতিটি 61 বাইটেও bsxfunছোট: এটি অনলাইনে চেষ্টা করুন!
18:58 এ 8

3
ওয়াট 50 বাইট আমিও করি না
লুইস মেন্ডো

9

বিটনিক , 733 বাইট

যেহেতু এটি সত্যিই করতে হয়েছিল, তাই এটি এখানে। এটি ডিবাগ করা সত্যিই বাজে এবং কয়েকটি চ্যালেঞ্জ সরবরাহ করেছিল।

ইনপুট অবশ্যই বড় হাতের অক্ষর হতে হবে। আউটপুট অবিচ্ছিন্ন (আশা করি ঠিক আছে?)

J K ZZZZZZK Z ZD ZB ZZZZZZZZZZZZZZZZZA K A Z ZD ZB ZZZZZZZZZZZZZZZKF K A Z ZD ZB ZZZZZZZZZZZZZZZB K A Z ZD ZB ZZZZZZZZZZZZZZZ K A Z ZD ZB ZZZZZZZZZZZZZZKD K A Z ZD ZB ZZZZZZZZZZZZZD K A Z ZD ZB ZZZZZZZZZZZZZD K A Z ZD ZB ZZZZZZZZZZZZ K A Z ZD ZB ZZZZZZZZZZZZB K A Z ZD ZB ZZZZZZZZZKA K A Z ZD ZB ZZZZZZZZZKF K A Z ZD ZB ZZZZZZZZZZK K A Z ZD ZB ZZZZZZZZZB K A Z ZD ZB ZZZZZZZZZB K A Z ZD ZB ZZZZZZZZKD K A Z ZD ZB ZZZZZZZK K A Z ZD ZB ZZZZKB K A Z ZD ZB ZZZZZZKF K A Z ZD ZB ZZZZZZB K A Z ZD ZB ZZZZZFB K A Z ZD ZB ZZZZZA K A Z ZD ZB ZZZAK K A Z ZD ZB ZZZ K A Z ZD ZB ZD K A Z ZD ZB ZKB K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K ZZZZKF KF K A ZKA ZZZZZZZZZZZZZZZZZZY

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

সাধারণ প্রক্রিয়াটি হ'ল:

  • ইনপুট থেকে চরিত্র পান
  • 65 বিয়োগ করুন
  • ফলাফল 0 হয় কিনা তা পরীক্ষা করুন
    • যদি 0 টি লাফ শব্দের নির্দিষ্ট পরিমাণ।
    • অন্যথায় 1 টি বিয়োগ করুন এবং পুনরায় পরীক্ষা করুন।
  • জাম্প লক্ষ্যমাত্রা ধাক্কা মুদ্রণ অপারেশন প্রোগ্রামের শুরুতে ফিরে একটি লুপ হতে হবে।

একটি ত্রুটি সহ শেষ হয়।

আরও একটি সম্পূর্ণ ব্যাখ্যা:

J K ZZZZZZK Z ZD               # Get input and subtract 65
ZB ZZZZZZZZZZZZZZZZZA K A Z ZD # Character A - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZZZZKF K A Z ZD  # Character B - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZZZZB K A Z ZD   # Character C - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZZZZ K A Z ZD    # Character D - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZZZKD K A Z ZD   # Character E - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZZD K A Z ZD     # Character F - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZZD K A Z ZD     # Character G - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZ K A Z ZD       # Character H - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZZZB K A Z ZD      # Character I - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZKA K A Z ZD        # Character J - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZKF K A Z ZD        # Character K - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZZK K A Z ZD        # Character L - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZB K A Z ZD         # Character M - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZZB K A Z ZD         # Character N - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZZKD K A Z ZD         # Character O - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZZK K A Z ZD           # Character P - if 0 jump to print, otherwise subtract 1
ZB ZZZZKB K A Z ZD             # Character Q - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZKF K A Z ZD           # Character R - if 0 jump to print, otherwise subtract 1
ZB ZZZZZZB K A Z ZD            # Character S - if 0 jump to print, otherwise subtract 1
ZB ZZZZZFB K A Z ZD            # Character T - if 0 jump to print, otherwise subtract 1
ZB ZZZZZA K A Z ZD             # Character U - if 0 jump to print, otherwise subtract 1
ZB ZZZAK K A Z ZD              # Character V - if 0 jump to print, otherwise subtract 1
ZB ZZZ K A Z ZD                # Character W - if 0 jump to print, otherwise subtract 1
ZB ZD K A Z ZD                 # Character X - if 0 jump to print, otherwise subtract 1
ZB ZKB                         # Character Y - if 0 jump to print, otherwise subtract 1
K ZZZZKF KF                    # Jump Point for print 1111111111
K ZZZZKF KF                    #
K ZZZZKF KF                    # Jump Point for print 11111111
K ZZZZKF KF                    #
K ZZZZKF KF                    #
K ZZZZKF KF                    # Jump Point for print 11111
K ZZZZKF KF                    # Jump Point for print 1111
K ZZZZKF KF                    # Jump Point for print 111
K ZZZZKF KF                    # Jump Point for print 11
K ZZZZKF KF                    # Jump Point for print 1
K A ZKA ZZZZZZZZZZZZZZZZZZAAAA # Jump back to start


@ জিমি 23013 খুব সুন্দর, আপনার এটি পোস্ট করা উচিত।
মিকিটি

8

ব্রেন-ফ্লাক , 210, 204, 198, 184 , 170 বাইট

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

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

14 জোড় বাঁচানোর জন্য @ জোকিংকে ধন্যবাদ!

পঠনযোগ্য সংস্করণ:

({              # For each character

                # Push array of letter scores
                # Also adjust character to 1-indexing
        <([{}]<>
        (({}{}))    # Push 2 0s
        (([][][][][])   # 10
        <((([]())   # 4
        <([][])>    # 8
        ))      # 4,4
        ((((()))))> # 1,1,1,1
        )       # 10
        []      # Add 12 to difference
        (((()()())  # 3
        <((()))>    # 1,1
        )       # 3
        ((())()()()())) # 1, 5
        ((())()()())    # 1, 4
        ((()())()())    # 2, 4
        []      # Add 22 to difference
        ((((())())()))  # 1,2,3
        (())        # 1
        )   # Push 65-char

        {({}<{}>())} # Index character into score array
        >
        {}{}         # Add score to running total
        <{{}}><>     # Clear the stack

})               # Implicit print of total score


2
'পাঠযোগ্য' এর একটি প্রদত্ত সংজ্ঞার জন্য :)
ম্যাট লেসি

আমি ব্যাখ্যাটি ব্যাখ্যা করার এবং স্পষ্ট করার জন্য একটি সম্পাদনা করেছি, আপনি যদি কোনও সমস্যা খুঁজে পান তবে রোলব্যাক মুক্ত মনে করুন।
কামিল দ্রাকারী


7

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

lambda x:sum(map(('ABCEIKLMNOPRSTU'+'BCDGMPQZ'*2+'FHJJKQQVWXXYZZ'*4).count,x))

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

সংক্ষিপ্ত সংস্করণ, ড্যানিয়েল ইন্ডির উত্তরের বন্দর , 71 70 বাইট

-1 বাইট ধন্যবাদ সানি প্যাটেলকে

lambda x:sum(int('02210313074020029000033739'[ord(c)-65])+1for c in x)

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



6

জাভা 8, 75 71 70 বাইট

s->s.chars().map(c->"\n\n".charAt(c-65)).sum()

"02210313074020029000033739".charAt(c-65)-47প্রিন্টেবলগুলি (এবং দুটি \n) এ পরিবর্তন করে -1 বাইট যাতে কমানো যায় -47। দ্বারা অনুপ্রাণিত @Sanchises 'অক্টেভ উত্তর

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

s->          // Method with String parameter and integer return-type
  s.chars()  //  Loop over the characters as IntStream
   .map(c->"\n\n".charAt(c-65))
             //   Convert the character to its value
   .sum()    //   And sum it all together

5

অক্টাভা / এমএটিএলবি, 85 বাইট

@(x)sum([1:4 7 9]*any(reshape(char(strsplit('DG BCMP FHVWY K JX QZ')),6,1,5)==x,3)+1)

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


আমার প্রচেষ্টার চেয়ে ভাল :-) আমি চেষ্টা করার আগে ভাবতে চেয়ে তার চেয়ে বেশি দীর্ঘতর ... যদিও আপনার কাছে এটির দিক থেকে খুব আলাদা দৃষ্টিভঙ্গি ছিল!
স্টিভি গ্রিফিন

5

জেলি , 19 বাইট

Oị“ÆẠḃbṂƬɠF#ṁ²’ḃ⁵¤S

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

এটি অনলাইন চেষ্টা করুন! অথবা পরীক্ষা-স্যুটটি দেখুন

কিভাবে?

Oị“ÆẠḃbṂƬɠF#ṁ²’ḃ⁵¤S - Link: list of characters
O                   - ordinals ('A'->65, B->66...)
                 ¤  - nilad followed by link(s) as a nilad:
  “ÆẠḃbṂƬɠF#ṁ²’     -   literal 14011114485013321424185131
                ⁵   -   literal 10
               ḃ    -   bijective-base = [1,3,10,1,1,1,1,4,4,8,4,10,1,3,3,2,1,4,2,4,1,8,5,1,3,1]
 ị                  - index into (1-based & modular) (vectorises)
                    -  i.e. mapping from: O P  Q R S T U V W X Y  Z A B C D E F G H I J K L M N)
                  S - sum

5

আর , 90 63 বাইট

function(W,u=utf8ToInt)sum(u('

')[u(W)-64])

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

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

এবং কারণ CRAN এ অনেকগুলি এলোমেলো জিনিস রয়েছে:

আর + স্ক্র্যাবলস্কোর 31 বাইট

ScrabbleScore::sws(scan(,""),F)

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

দুঃখের বিষয়, swsডিফল্টরূপে বৈধতার জন্য পরীক্ষা করে।


স্কোর তালিকার সাথে একটি খেলা ছিল এবং একটি দম্পতি
ছাঁটাই

@ মিকিটি সুন্দর! আমি utf8ToIntঅ -প্রিন্টেবলগুলির সাথে চারপাশে খেললাম এবং এর পরিবর্তে পুনরায় ব্যবহার করেছি matchএবং আরও কিছুটা নামতে সক্ষম হয়েছি !
জিউসেপে

4

ইমোজিকোড , 358 বাইট

🐖🔥➡️🔡🍇🍮s 0🔂l🍡🐕🍇🍮s➕s🍺🐽🍯🔤a🔤1🔤e🔤1🔤i🔤1🔤l🔤1🔤n🔤1🔤o🔤1🔤r🔤1🔤s🔤1🔤t🔤1🔤u🔤1🔤d🔤2🔤g🔤2🔤b🔤3🔤c🔤3🔤m🔤3🔤p🔤3🔤f🔤4🔤h🔤4🔤v🔤4🔤w🔤4🔤y🔤4🔤k🔤5🔤j🔤8🔤x🔤8🔤q🔤10🔤z🔤10🍆🔡l🍉🍎🔡s 10🍉

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

ব্যাখ্যা:

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

🐋🔡🍇      👴 define a class that takes a string
 🐖🔥➡️🔡🍇    👴 define a method that returns a string
  🍦values🍯    👴 create int dictionary
   🔤a🔤1 🔤e🔤1 🔤i🔤1 🔤l🔤1 🔤n🔤1 🔤o🔤1 🔤r🔤1 🔤s🔤1 🔤t🔤1 🔤u🔤1 🔤d🔤2 🔤g🔤2
   🔤b🔤3 🔤c🔤3 🔤m🔤3 🔤p🔤3 🔤f🔤4 🔤h🔤4 🔤v🔤4 🔤w🔤4 🔤y🔤4 🔤k🔤5 🔤j🔤8 🔤x🔤8
   🔤q🔤10 🔤z🔤10
  🍆        👴 ^ dictionary contains letters(keys) and their numerical values

  🍮score 0                         👴 declare 'score' variable and set to 0
   🍦iterator🍡🐕                     👴 transform input string to iterator
    🔂letter iterator🍇                👴 iterate over each byte in input string
     🍮score➕score 🍺🐽values 🔡letter   👴 add value of each letter to score
   🍉
  🍎🔡score 10    👴 return the score as a string
 🍉
🍉

🏁🍇          👴 begin the program here
 😀🔥🔤abc🔤    👴 call scoring method and print the score
 😀🔥🔤ppcg🔤    👴 repeat with other test cases
 😀🔥🔤stewie🔤
 😀🔥🔤fizzbuzz🔤
 😀🔥🔤abcdefghijklmnopqrstuvwxyz🔤
🍉

7
হ্যাঁ ... আমার চোখ ... কিছু নির্দিষ্ট ল্যাঙ্গেজ লুকানোর জন্য গল্ফ.সিজে কোনও বিকল্প আছে? ^^
অলিভিয়ার ডুলাক

1
@ অলিভিয়ারডুলাক সম্ভবত ব্রাউজারটিকে বিশেষত ইমোজি রেন্ডার করা থেকে বিরত করার একটি উপায় সম্ভবত রয়েছে। তারা প্রতিটি মানক ইউনিকোড কালো এবং সাদা অক্ষর তাদের সাথে যুক্ত আছে।
mbomb007


3

অক্টাভা , 73 বাইট

@(x)sum('09977433333222211'(([~,y]=ismember(x,'QZJXKFHVWYBCMPDG'))+1)-47)

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

ismemberইনপুট স্ট্রিমের প্রতিটি অক্ষরটিকে xঅনুসন্ধানের স্ট্রিংয়ের সূচকগুলিতে ম্যাপ করতে ব্যবহার করে 'QZJXKFHVWYBCMPDG'। যে কোনও উপাদান পাওয়া যায় নি তা 0 এর সূচকে ম্যাপ করা হবে (এতে 1-পয়েন্টের অক্ষর অন্তর্ভুক্ত থাকবে)।

পরবর্তী আমরা করতে সূচক 1 যোগ 0 এর বৈধ 1-সূচক রেফারেন্স হয়ে উঠেছে, এবং স্ট্রিং মধ্যে অনুসন্ধান '09977433333222211'। এটি প্রথম দেখার স্ট্রিংয়ের চেয়ে দীর্ঘতর একটি উপাদান। অঙ্কগুলি মৌলিক স্ট্রিংয়ের প্রতিটি মৌলের বিন্দু মানের, বিয়োগ 1 এর প্রতিনিধিত্ব করে, অতিরিক্ত উপাদানটির সাথে '0' হয় beginning

পরিশেষে ফলাফলটি স্ট্রিংকে 47( '0'-1) কে বিয়োগ করে পূর্ণসংখ্যায় রূপান্তরিত করা হয় , প্রতিটি বর্ণের জন্য পয়েন্টের মান প্রদান করে এবং সমস্ত বিন্দুর মানগুলি সংক্ষেপিত হয়।


1
খুব চালাক! :)
স্টিও গ্রিফিন

3

সি ++, 95 বাইট

char*m="02210313074020029000033739";
int f(char*p){int n=0;while(*p)n+=m[*p++-65]-47;return n;}

এটি অনলাইনে ব্যবহার করে দেখুন (টিআইও লিঙ্কটি দুঃখিত নয়)

ব্যাখ্যা:

  • ঘোষণা করে m, প্রতিটি বর্ণের ক্রম অনুসারে মানগুলির একটি অ্যারে, বিয়োগ 1। বিয়োগ 1টি Q এবং Z এর কারণে: আমার সেখানে দুটি সংখ্যার সংখ্যা থাকতে পারে না
  • স্ট্রিংয়ের মাধ্যমে পরিমিত pহওয়া পর্যন্ত আমরা শূন্য চরিত্রটি না পাওয়া পর্যন্ত এবং সংখ্যার স্কোর যোগ করি ( *pআমাদের চিঠিটি দেয় এবং -65তাই আমরা অ্যারেটিকে সঠিকভাবে সূচক করতে পারি)। যেহেতু mএটি একটিতে char*রূপান্তরিত হয় charতাই আমরা বিয়োগকে 48তাই 0 এ ফিরিয়ে আনি, তবে যুক্ত করুন 1যেহেতু mপ্রতিটি চরিত্রের জন্য একটি স্কোর কম হিসাবে ঘোষিত হয়।

আমি এখানে আগ্রহী পোস্টার নই তাই আমি আশা করি আমি এটি সঠিকভাবে করেছি। আমি বিশ্বাস করি যে তারা nমূল্য মুদ্রণ হিসাবে গণনা ফিরিয়েছে, এবং এটি একটি ফাংশন ঘোষণা ভাল ছিল।


খুব সুন্দর! আপনি যে একমাত্র বাইট সংরক্ষণ করতে পারবেন তা হ'ল নতুন লাইন: এটি অনলাইনে চেষ্টা করুন!
মোভাটিকা

3

হাস্কেল , 66 বাইট

sum.map(\c->1+read["02210313074020029000033739"!!(fromEnum c-65)])

এটি অনলাইন চেষ্টা করুন! ড্যানিয়েল ইন্ডির জাভাস্ক্রিপ্ট উত্তর হিসাবে একই পন্থা ।


হাস্কেল , 82 81 বাইট

sum.map(\c->1+sum(read.pure<$>lookup c(zip"DGBCMPFHVWYKJXQZ""1122223333347799")))

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



2

জাপট , 36 বাইট

£2+`dg
bcmp
fhvwy
k


jx

qzbøX
x

ছোট হাতের স্ট্রিং হিসাবে ইনপুট নেয়, একটি নম্বর দেয়।
সংক্ষিপ্ত ব্যাখ্যা:

£2+`dg
¬       // Split the input into chars,
 £      // then map over each char, returning
  2+`dg // 2 plus

qzbøX
    bøX // the char's index in
qz    // the hardcoded string split by newlines.
x       // And finally sum the whole thing.

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




2

গফার্থ , 109 বাইট

: V s" 1332142418513113:11114484:" ; : C 0 NAME 0 DO DUP C@ 65 - V DROP + C@ 48 - ROT + SWAP 1+ LOOP DROP . ;

ইনপুট অবশ্যই বড় হাতের হতে হবে:
C PPCG 11 OK

সুপাঠ্য

\ String used as table with values for each letter in the alphabet
\ : follows 9 in the ASCII-table
: V
   s" 1332142418513113:11114484:"
;

: C
   0                   \ Initialize sum        ( sum               )
   NAME                \ Get the string        ( sum  c-addr count )
   0 DO                \ Start of loop         ( sum  c-addr       )
      DUP C@           \ Get letter            ( sum  c-addr char  )
      65 -             \ Calculate table index ( sum  c-addr index )
      V DROP + C@      \ Get table entry       ( sum  c-addr entry )
      48 -             \ Calculate entry value ( sum  c-addr value )
      ROT + SWAP       \ Update sum            ( sum' c-addr       )
      1+               \ Next character        ( sum' c-addr'      )
   LOOP
   DROP .              \ Drop c-addr and print result
;

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


2

পার্ল 6 , 52 বাইট

{TR/A..Z/02210313074020029000033739/.comb.sum+.ords}

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

প্রতিটি অক্ষর একটি অঙ্কে মানচিত্র করে সেগুলি যোগ করে। এবং প্রতিটি চরিত্রের জন্য 1 যুক্ত করে কারণ ইউনিকোড বাইট ব্যতীত 10 নম্বর হয় না।


2

রেটিনা 0.8.2 , 41 বাইট

T`BCDGJKMPQXZF\HVWY`221174229793
.
$*..
.

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা: হাস্কেল উত্তরের মতো, অনানুষ্ঠানিক অক্ষরগুলি তাদের স্কোরের চেয়ে কম 1 তে অনুবাদ করা হয় এবং অক্ষরগুলি অ্যানারিতে রূপান্তরিত হলে 1 টি পরে যুক্ত করা হয়। FHVWYশেষ রাখলে তাদের সবাইকে 3 + 1 এর স্কোরের মানচিত্রের অনুমতি দেয়।


2

সি (জিসিসি), 78 72 বাইট

i;f(char*s){for(i=0;*s;)i+="\n\n"[*s++-65];s=i;}

সেই স্ট্রিংয়ে আসলে 26 টি অক্ষর রয়েছে। কোডটি যথাযথভাবে রেন্ডার করা দেখুন এবং এটি এখানে চালান ।

গল্ফিং 6 বাইটের জন্য গ্যাস্ট্রোপনারকে ধন্যবাদ ।

অবরুদ্ধ সংস্করণ:

i; // declare a variable to store the score; it is implicitly of type int
f(char* s) { // function taking a string as argument and implicitly returning an int
    for(i = 0; // initialize the score to 0
        *s; ) // iterate over the string until we hit terminating NUL byte
        i += "\n\n"[*s++ - 65]; // this is a 26-char string containing the ASCII equivalent of each numeric scrabble value; 65 is ASCII code for 'A', mapping the alphabet onto the string
    s = i; // implicitly return the score
}

2

এক্সেল, 91 বাইট

{=LEN(A1)+SUM(0+("0"&MID("02210313074020029000033739",CODE(MID(A1,ROW(A:A),1)&"z")-64,1)))}

ব্যাখ্যা:

  • ইনপুটটি ঘরে রয়েছে A1
  • সূত্র সঙ্গে একটি বিন্যাস সূত্র হিসেবে প্রবেশ করতে হবে Ctrl+ + Shift+ + Enter, যা কোঁকড়া বন্ধনী যোগ করা { }উভয় প্রান্ত হতে।
  • MID(A1,ROW(A:A),1) প্রতিটি অক্ষরকে ঘুরিয়ে আনে (এবং প্রচুর খালি মানগুলিও, যেহেতু এটি শীটটিতে সারি রয়েছে যতগুলি মান প্রদান করবে)
  • CODE(MID(~)&"z")প্রতিটি অক্ষরের জন্য ASCII মান টেনে আনে। &"z"একটি appends zশেষে MID()কারণ ফলাফলের CODE()খালি ইনপুট পছন্দ করেন না। এর জন্য ASCII মান zপ্রতিটি মূলধনির চেয়ে বেশি, যদিও এটি পরে কার্যকরভাবে উপেক্ষা করা হয়।
  • MID("02210313074020029000033739",CODE(~)-64,1) স্কোর স্ট্রিং থেকে একটি চিঠি তার ASCII মানের উপর ভিত্তি করে 64 দ্বারা সামঞ্জস্য করা যাতে অক্ষর 65-90 এর পরিবর্তে 1-26 চালায়।
  • "0"&MID(~)ফলাফলটিতে একটি শূন্য প্রস্তাব দেয় MID()কারণ এক্সেল আপনাকে খালি স্ট্রিং দিয়ে গণিত করতে দেয় না, যার মধ্যে বেশ কয়েকটি থাকবে।
  • 0+("0"&MID(~)) এই সমস্ত স্ট্রিংগুলিকে সংখ্যায় পরিণত করে।
  • SUM(0+("0"&MID(~))) সমস্ত সংখ্যক স্ট্রিং যোগ করুন যা এখন সংখ্যা।
  • LEN(A1)+SUM(~)সমষ্টিতে ইনপুটটির দৈর্ঘ্য যুক্ত করে কারণ স্কোর স্ট্রিংয়ের ( 02210313074020029000033739) এর সমস্ত মান এক সাথে সামঞ্জস্য করা হয়েছিল যাতে সেগুলি সমস্ত এক ডিজিট দীর্ঘ হয়।

গুগল শিটগুলিতে একটি খুব অনুরূপ সমাধান রয়েছে তবে এটি 97 বাইটে আসে কারণ ArrayFromula()এটি দীর্ঘ {}(তবে কমপক্ষে এটি পরিচালনা করতে পারে 0 + "" = 0)।

=Len(A1)+ArrayFormula(Sum(0+Mid("02210313074020029000033739",Code(Mid(A1,Row(A:A),1)&"z")-64,1)))

1
সাবাশ. আমার কাছে 26 টি ব্যবহার করে একটি এক্সেল সমাধান রয়েছে SUBSTITUTE(), এটি 527 বাইটে আসে।
ওয়ার্নিশ

2

ওল্ফ্রাম ভাষা (গণিত) , by৪ বাইট

অবশ্যই ওল্ফ্রাম | আলফা স্ক্র্যাবল স্কোরিং সমর্থন করে! এটি একটি বেনামে ফাংশন।

Plus@@(First[WolframAlpha["Scrabble "<>##,"NumberData"]]&/@Characters[#])&

এটি টিআইওতে কাজ করে না।

চালাতে, এখানে যান , নীচে স্ক্রোল করুন এবং "একটি নতুন নোটবুক তৈরি করুন click" ক্লিক করুন। নোটবুকে ব্যবহার করার কোডটি এই টিআইও প্রোগ্রামে রয়েছে যাতে আপনি এটি অনুলিপি করতে পারেন। প্রতিটি ফাংশন কলকে তার নিজস্ব কোড ব্লকে আটকান। আপনি যদি একটি ব্লকে অনেক বেশি চালনা করেন তবে এক্সিকিউশন সম্পূর্ণ হবে না।

নোট করুন যে WolframAlphaইন্টারনেট ব্যবহার করে একটি অনুরোধ প্রেরণ করে। যদিও এটি ব্যবহার করে পিপিসি-তে অন্যান্য উত্তর রয়েছে তবে আমি ভেবেছিলাম আপনার জানা উচিত।

এই প্রোগ্রামটি নীচের সংক্ষিপ্ত ফাংশনটি ব্যবহার করে তবে ইনপুটটির প্রতিটি স্বতন্ত্র চরিত্রে এটি কল করে ( প্রতিটি সময় ওল্ফ্রামকে | আলফাকে পৃথক কল প্রেরণ করে !)


এটি কেবল স্ক্র্যাবল বোর্ডের প্রস্থের দৈর্ঘ্য 15 পর্যন্ত ইনপুট জন্য কাজ করে। (49 বাইট)

First[WolframAlpha["Scrabble "<>#,"NumberData"]]&

উপরের মত একই, তবে ফলাফলটি একটি বাক্সে প্রদর্শন করবে, সাথে ইনপুটটি বৈধ স্ক্র্যাবল শব্দ কিনা। (45 বাইট)

First[WolframAlpha["Scrabble "<>#,"Result"]]&


2

কে (ওকে) , 60 38 বাইট

সমাধান:

+/1+.:'"02210313074020029000033739"65!

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

ব্যাখ্যা:

স্কোরগুলিতে সূচক, সমষ্টি ফলাফল।

+/1+.:'"02210313074020029000033739"65! / the solution
                                   65! / input modulo 65 to get position in A-Z
       "02210313074020029000033739"    / index into the scores (1 point lower)
    .:'                                / value (.:) each (') to convert to ints
  1+                                   / increase by 1
+/                                     / sum up

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