Бомбардир скребла


42

Виклик:

Візьміть рядок з великих і малих літер як вхідних (необов’язково) та обчисліть рахунок, який отримав би рядок у грі Scrabble англійською мовою.

Правила:

Оцінка кожної літери така (використовуйте це, навіть якщо є інші версії гри):

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
Я сподіваюся побачити рішення MATLAB / Octave. Всі мої спроби були жахливо довгими ... = /
Стюі Гріффін

4
Я сподіваюся побачити рішення Beatnik. Тому що, ви знаєте, це був би правильний інструмент для роботи.
Джузеппе

@StewieGriffin Чи 85 байт вважається жахливо довгим?
Луїс Мендо

3
Хіба Mathematica для нього не вбудований?
серхіол

1
@manassehkatz ви обов'язково повинні піти! Я настійно рекомендую опублікувати виклик у « Пісочниці», щоб отримати відгуки та допомогти з ним, перш ніж публікувати його на головному сайті. Складні виклики, як відомо, важко виправити без будь-яких відгуків.
Стюі Гріффін

Відповіді:


16

sed 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

Haskell , 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, і тому нам не потрібно відстежувати їх, натомість ми просто зменшуємо кожен бал (також зберігає 1 байт 10), а потім додаємо довжину рядка до отриманого результату.

Дякую @nimi за -2 байти (переставляючи слова та використовуючи [1..]замість [4,3..])!


1
zip[1..]$words"DG BCMP FHVWY K . . JX . QZ"дає ще одну альтернативу з однаковою довжиною
Angs

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

Дуже розумний! Використання unprintables було приємним штрихом! :)
Стюі Гріффін

@StewieGriffin Це лише один байт порівняно з, -47але це кодовий гольф для вас!
Санчіз

1
Зітхнути. Ну і по-справжньому гольф. Я не розумів, що ти можеш так використовувати ==в Октаві. Не працює в MATLAB. Добре знати.
Том Карпентер

2
@TomCarpenter Я не хочу втирати будь-яку сіль в рану, але "старий" спосіб цього (з bsxfun) також коротший на 61 байт: Спробуйте в Інтернеті!
Санчіз

3
ВАТ 50 байт, які я навіть не знаю
Луїс Мендо

9

Beatnik , 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


@ jimmy23013 Дуже добре, ви повинні опублікувати це.
MickyT

8

Мозг-Флак , 210, 204, 198, 184 , 170 байт

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

Спробуйте в Інтернеті!

Дякуємо @JoKing за економію 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

Pyth, 40 байт

sm+2x.e}dbc." zØÍ jÙ¹>;%OG5§"\ 1

Спробуйте тут

Пояснення

sm+2x.e}dbc." zØÍ jÙ¹>;%OG5§"\ 1
 m                              Q  For each character in the (implicit) input...
    x.e  b                     1   ... find the first index in...
          c." zØÍ jÙ¹>;%OG5§"\     ['dg','bcmp','fhvwy','k','','','jx','','qz']
       }d                          ... containing the character...
  +2                               ... 2-indexed.
s                                  Take the sum.



6

Java 8, 75 71 70 байт

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

-1 байт, змінивши "02210313074020029000033739".charAt(c-65)-47на недруковані (і два \n), щоб -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

Желе , 19 байт

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

Монадична посилання, що приймає список великих символів, який повертає ціле число

Спробуйте в Інтернеті! Або дивіться тестовий набір .

Як?

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

R , 90 63 байти

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

')[u(W)-64])

Спробуйте в Інтернеті!

Вводиться в якості великого рядка. R без проблем обробляє недруковані та багаторядкові рядки, тому це приємно. Зараз ми майже вдвічі перевищуємо зовнішній пакет!

А тому, що CRAN має стільки випадкових смаколиків:

R + ScrabbleScore 31 байт

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

Спробуйте в Інтернеті!

На жаль, swsперевіряється справжність за замовчуванням.



@MickyT приємно! Я пограв з недрукованими версіями та повторним використанням, utf8ToIntа не matchвстиг знизити ще кілька!
Джузеппе

4

Emojicode , 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
ой ... мої очі ... чи є на golf.se можливість приховати якісь конкретні мови? ^^
Олів’є Дулак

1
@OlivierDulac Напевно, існує спосіб запобігти перегляду веб-переглядача смайлів спеціально. Кожен з них має стандартні чорно-білі символи Unicode, пов'язані з ними.
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

C ++, 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вважається друком значення, і те, що оголошення функції є нормальним.


Дуже хороша! Єдиний байт, який ви можете зберегти, - це новий рядок: Спробуйте його в Інтернеті!
movatica



2

Japt , 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

Perl 6 , 52 байти

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

Спробуйте в Інтернеті!

Картує кожного персонажа на цифру і підсумовує їх. І додає 1 для кожного символу, оскільки немає цифри 10 без введення байтів унікоду.


2

Сітківка 0,8,2 , 41 байт

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

Спробуйте в Інтернеті! Посилання включає тестові випадки. Пояснення: Як і відповідь Haskell, нетривіальні букви переводяться на 1 менше, ніж їх оцінка, а 1 додається пізніше, коли символи перетворюються на одинакові. Поклавши FHVWYостанній дозволяє їм всі карти на рахунок 3 + 1.


2

C (gcc), 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

Excel, 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"Приєднує zдо кінця MID()результату , тому що CODE()не любить порожні входи. Значення ASCII zвище, ніж у будь-якої великої літери, тому воно згодом ефективно ігнорується.
  • MID("02210313074020029000033739",CODE(~)-64,1) витягує лист із рядка балів на основі його значення ASCII, відрегульованого на 64, так що літери виконують 1-26 замість 65-90.
  • "0"&MID(~)попереджує нуль до MID()результату, оскільки Excel не дозволить вам робити математику з порожніми рядками, яких буде кілька.
  • 0+("0"&MID(~)) перетворює всі ці рядки в числа.
  • SUM(0+("0"&MID(~))) додає всі ті рядки, які зараз є числами.
  • LEN(A1)+SUM(~)додає довжину введення до суми, тому що всі значення в рядку балів ( 02210313074020029000033739) були відрегульовані на одиницю, щоб усі вони були однією цифрою.

У Google Sheets є дуже подібне рішення, але воно входить у 97 байт, оскільки ArrayFromula()воно довше {}(але принаймні воно може обробити 0 + "" = 0).

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

1
Молодці. У мене є рішення Excel з використанням 26 SUBSTITUTE(), що надходить на здоровенні 527 байт.
Верніш

2

Мова Вольфрама (Mathematica) , 74 байти

Звичайно Wolfram | Альфа підтримує зарахування Scrabble! Це анонімна функція.

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

Це не працює в TIO.

Для запуску перейдіть сюди , прокрутіть униз і натисніть «Створити новий ноутбук» ». Код, який потрібно використовувати в зошиті, є в цій програмі TIO, щоб ви могли скопіювати його. Вставте кожен виклик функції у свій власний блок коду. Якщо ви запустили занадто багато в одному блоці, виконання не завершиться.

Зауважте, що WolframAlpha надсилає запит через Інтернет. Хоча на PPCG є й інші відповіді, які використовують його, я вважав, що ви повинні це знати.

Ця програма використовує нижче коротку функцію, але викликає її на кожному окремому символі входу ( щоразу відправляючи окремий дзвінок в Wolfram | Alpha !)


Це працює лише для введення до довжини 15, ширини дошки Scrabble. (49 байт)

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

Те саме, що вище, але відображатиме результат у вікні разом із тим, чи є вхідним правилом слово Scrabble. (45 байт)

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


2

K (oK) , 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.