Worn-tile Scrabble The 2019 Stack Overflow Developer Survey Results Are InTips for golfing in 05AB1EBest Scoring Scrabble BoardDetermine a string's Scrabble score and validityKnight's tour game (7x7)Place a Carcassonne tileOptimize the ScralphabetCheck over hand values for single-suited MahjongHow should I tile my kitchen?Draw an Empty Scrabble BoardGenerating Word GridsScrabble scorer

Earliest use of the term "Galois extension"?

Why isn't airport relocation done gradually?

Who coined the term "madman theory"?

For what reasons would an animal species NOT cross a *horizontal* land bridge?

What tool would a Roman-age civilization have for the breaking of silver and other metals into dust?

What is the meaning of the verb "bear" in this context?

Origin of "cooter" meaning "vagina"

Geography at the pixel level

Identify boardgame from Big movie

Is an up-to-date browser secure on an out-of-date OS?

Is three citations per paragraph excessive for undergraduate research paper?

Falsification in Math vs Science

Scaling a graph of a circle and the standard parabola in TikZ

Does the shape of a die affect the probability of a number being rolled?

Did 3000BC Egyptians use meteoric iron weapons?

How to support a colleague who finds meetings extremely tiring?

Why didn't the Event Horizon Telescope team mention Sagittarius A*?

Loose spokes after only a few rides

I see my dog run

Is there any way to tell whether the shot is going to hit you or not?

How come people say “Would of”?

Are there incongruent pythagorean triangles with the same perimeter and same area?

Protecting Dualbooting Windows from dangerous code (like rm -rf)

The difference between dialogue marks



Worn-tile Scrabble



The 2019 Stack Overflow Developer Survey Results Are InTips for golfing in 05AB1EBest Scoring Scrabble BoardDetermine a string's Scrabble score and validityKnight's tour game (7x7)Place a Carcassonne tileOptimize the ScralphabetCheck over hand values for single-suited MahjongHow should I tile my kitchen?Draw an Empty Scrabble BoardGenerating Word GridsScrabble scorer










25












$begingroup$


Problem



You're stuck in a cabin in the middle of the woods, with only an old scrabble set to entertain yourselves. Upon inspection you see that the scrabble letters are so worn, that only the points for each letter are visible.



Nonetheless you decide to play a game. You pull seven letters from the bag and place them on your tray, your challenge is to determine what those letters could be.



So generally, given a list of points convert it into any possible string or list of letters.




Scrabble Tiles and Distributions



  • 2 blank tiles (scoring 0 points)

  • 1 point: E ×12, A ×9, I ×9, O ×8, N ×6, R ×6, T ×6, L ×4, S ×4, U ×4

  • 2 points: D ×4, G ×3

  • 3 points: B ×2, C ×2, M ×2, P ×2

  • 4 points: F ×2, H ×2, V ×2, W ×2, Y ×2

  • 5 points: K ×1

  • 8 points: J ×1, X ×1

  • 10 points: Q ×1, Z ×1

So if you have a list of points [10,10,8,5,1,1,1] then "QZJKEEE" would be valid but "QQJKEEE" would not be valid (since there is only 1 Q tile in the bag)




Problem Specific Rules



  • You may assume all inputs are valid and that there will always be 7 tiles (i.e it wont be a list of seven 10 point tiles and won't be 9 tiles)

  • You can assume no tiles have been previously pulled from the bag (so the distribution is the standard distribution of english tiles as defined above)

  • You do not have to generate a valid word, only a valid string of letters.

  • The order of your string is irrelevant as long as for each tile there is a corresponding letter.

  • Points are based on the standard english scrabble tile points as defined above.

  • You may output in upper or lower case, for a blank tile you may output either a space character or an underscore '_'

  • Your answer may output as any reasonable representation of the tiles such as a List, String, Array or Sequence



General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code (i.e. TIO).

  • Also, adding an explanation for your answer is highly recommended.


Test Cases



Obviously since you can output any possible value it's difficult to define strict test cases.



Some cases with a possible valid return value:



[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"


Some cases with an invalid return value:



[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs 
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)









share|improve this question











$endgroup$











  • $begingroup$
    Do I need to output a string or is a list ok?
    $endgroup$
    – Maltysen
    11 hours ago










  • $begingroup$
    You can output a list, I'll update the question
    $endgroup$
    – Expired Data
    11 hours ago










  • $begingroup$
    What can I output for a blank?
    $endgroup$
    – Maltysen
    10 hours ago










  • $begingroup$
    Good question I'll let you output a space or _, since typically it could be represented by either. I'll update the question
    $endgroup$
    – Expired Data
    10 hours ago






  • 3




    $begingroup$
    Suggested test case: [2,2,2,2,2,2,2] (the only case where it's important to start with a D rather than a G if a cycling method is used)
    $endgroup$
    – Arnauld
    9 hours ago















25












$begingroup$


Problem



You're stuck in a cabin in the middle of the woods, with only an old scrabble set to entertain yourselves. Upon inspection you see that the scrabble letters are so worn, that only the points for each letter are visible.



Nonetheless you decide to play a game. You pull seven letters from the bag and place them on your tray, your challenge is to determine what those letters could be.



So generally, given a list of points convert it into any possible string or list of letters.




Scrabble Tiles and Distributions



  • 2 blank tiles (scoring 0 points)

  • 1 point: E ×12, A ×9, I ×9, O ×8, N ×6, R ×6, T ×6, L ×4, S ×4, U ×4

  • 2 points: D ×4, G ×3

  • 3 points: B ×2, C ×2, M ×2, P ×2

  • 4 points: F ×2, H ×2, V ×2, W ×2, Y ×2

  • 5 points: K ×1

  • 8 points: J ×1, X ×1

  • 10 points: Q ×1, Z ×1

So if you have a list of points [10,10,8,5,1,1,1] then "QZJKEEE" would be valid but "QQJKEEE" would not be valid (since there is only 1 Q tile in the bag)




Problem Specific Rules



  • You may assume all inputs are valid and that there will always be 7 tiles (i.e it wont be a list of seven 10 point tiles and won't be 9 tiles)

  • You can assume no tiles have been previously pulled from the bag (so the distribution is the standard distribution of english tiles as defined above)

  • You do not have to generate a valid word, only a valid string of letters.

  • The order of your string is irrelevant as long as for each tile there is a corresponding letter.

  • Points are based on the standard english scrabble tile points as defined above.

  • You may output in upper or lower case, for a blank tile you may output either a space character or an underscore '_'

  • Your answer may output as any reasonable representation of the tiles such as a List, String, Array or Sequence



General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code (i.e. TIO).

  • Also, adding an explanation for your answer is highly recommended.


Test Cases



Obviously since you can output any possible value it's difficult to define strict test cases.



Some cases with a possible valid return value:



[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"


Some cases with an invalid return value:



[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs 
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)









share|improve this question











$endgroup$











  • $begingroup$
    Do I need to output a string or is a list ok?
    $endgroup$
    – Maltysen
    11 hours ago










  • $begingroup$
    You can output a list, I'll update the question
    $endgroup$
    – Expired Data
    11 hours ago










  • $begingroup$
    What can I output for a blank?
    $endgroup$
    – Maltysen
    10 hours ago










  • $begingroup$
    Good question I'll let you output a space or _, since typically it could be represented by either. I'll update the question
    $endgroup$
    – Expired Data
    10 hours ago






  • 3




    $begingroup$
    Suggested test case: [2,2,2,2,2,2,2] (the only case where it's important to start with a D rather than a G if a cycling method is used)
    $endgroup$
    – Arnauld
    9 hours ago













25












25








25


1



$begingroup$


Problem



You're stuck in a cabin in the middle of the woods, with only an old scrabble set to entertain yourselves. Upon inspection you see that the scrabble letters are so worn, that only the points for each letter are visible.



Nonetheless you decide to play a game. You pull seven letters from the bag and place them on your tray, your challenge is to determine what those letters could be.



So generally, given a list of points convert it into any possible string or list of letters.




Scrabble Tiles and Distributions



  • 2 blank tiles (scoring 0 points)

  • 1 point: E ×12, A ×9, I ×9, O ×8, N ×6, R ×6, T ×6, L ×4, S ×4, U ×4

  • 2 points: D ×4, G ×3

  • 3 points: B ×2, C ×2, M ×2, P ×2

  • 4 points: F ×2, H ×2, V ×2, W ×2, Y ×2

  • 5 points: K ×1

  • 8 points: J ×1, X ×1

  • 10 points: Q ×1, Z ×1

So if you have a list of points [10,10,8,5,1,1,1] then "QZJKEEE" would be valid but "QQJKEEE" would not be valid (since there is only 1 Q tile in the bag)




Problem Specific Rules



  • You may assume all inputs are valid and that there will always be 7 tiles (i.e it wont be a list of seven 10 point tiles and won't be 9 tiles)

  • You can assume no tiles have been previously pulled from the bag (so the distribution is the standard distribution of english tiles as defined above)

  • You do not have to generate a valid word, only a valid string of letters.

  • The order of your string is irrelevant as long as for each tile there is a corresponding letter.

  • Points are based on the standard english scrabble tile points as defined above.

  • You may output in upper or lower case, for a blank tile you may output either a space character or an underscore '_'

  • Your answer may output as any reasonable representation of the tiles such as a List, String, Array or Sequence



General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code (i.e. TIO).

  • Also, adding an explanation for your answer is highly recommended.


Test Cases



Obviously since you can output any possible value it's difficult to define strict test cases.



Some cases with a possible valid return value:



[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"


Some cases with an invalid return value:



[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs 
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)









share|improve this question











$endgroup$




Problem



You're stuck in a cabin in the middle of the woods, with only an old scrabble set to entertain yourselves. Upon inspection you see that the scrabble letters are so worn, that only the points for each letter are visible.



Nonetheless you decide to play a game. You pull seven letters from the bag and place them on your tray, your challenge is to determine what those letters could be.



So generally, given a list of points convert it into any possible string or list of letters.




Scrabble Tiles and Distributions



  • 2 blank tiles (scoring 0 points)

  • 1 point: E ×12, A ×9, I ×9, O ×8, N ×6, R ×6, T ×6, L ×4, S ×4, U ×4

  • 2 points: D ×4, G ×3

  • 3 points: B ×2, C ×2, M ×2, P ×2

  • 4 points: F ×2, H ×2, V ×2, W ×2, Y ×2

  • 5 points: K ×1

  • 8 points: J ×1, X ×1

  • 10 points: Q ×1, Z ×1

So if you have a list of points [10,10,8,5,1,1,1] then "QZJKEEE" would be valid but "QQJKEEE" would not be valid (since there is only 1 Q tile in the bag)




Problem Specific Rules



  • You may assume all inputs are valid and that there will always be 7 tiles (i.e it wont be a list of seven 10 point tiles and won't be 9 tiles)

  • You can assume no tiles have been previously pulled from the bag (so the distribution is the standard distribution of english tiles as defined above)

  • You do not have to generate a valid word, only a valid string of letters.

  • The order of your string is irrelevant as long as for each tile there is a corresponding letter.

  • Points are based on the standard english scrabble tile points as defined above.

  • You may output in upper or lower case, for a blank tile you may output either a space character or an underscore '_'

  • Your answer may output as any reasonable representation of the tiles such as a List, String, Array or Sequence



General rules:



  • This is code-golf, so shortest answer in bytes wins.

    Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.


  • Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.


  • Default Loopholes are forbidden.

  • If possible, please add a link with a test for your code (i.e. TIO).

  • Also, adding an explanation for your answer is highly recommended.


Test Cases



Obviously since you can output any possible value it's difficult to define strict test cases.



Some cases with a possible valid return value:



[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"


Some cases with an invalid return value:



[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs 
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)






code-golf string scrabble






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 9 hours ago







Expired Data

















asked 11 hours ago









Expired DataExpired Data

708116




708116











  • $begingroup$
    Do I need to output a string or is a list ok?
    $endgroup$
    – Maltysen
    11 hours ago










  • $begingroup$
    You can output a list, I'll update the question
    $endgroup$
    – Expired Data
    11 hours ago










  • $begingroup$
    What can I output for a blank?
    $endgroup$
    – Maltysen
    10 hours ago










  • $begingroup$
    Good question I'll let you output a space or _, since typically it could be represented by either. I'll update the question
    $endgroup$
    – Expired Data
    10 hours ago






  • 3




    $begingroup$
    Suggested test case: [2,2,2,2,2,2,2] (the only case where it's important to start with a D rather than a G if a cycling method is used)
    $endgroup$
    – Arnauld
    9 hours ago
















  • $begingroup$
    Do I need to output a string or is a list ok?
    $endgroup$
    – Maltysen
    11 hours ago










  • $begingroup$
    You can output a list, I'll update the question
    $endgroup$
    – Expired Data
    11 hours ago










  • $begingroup$
    What can I output for a blank?
    $endgroup$
    – Maltysen
    10 hours ago










  • $begingroup$
    Good question I'll let you output a space or _, since typically it could be represented by either. I'll update the question
    $endgroup$
    – Expired Data
    10 hours ago






  • 3




    $begingroup$
    Suggested test case: [2,2,2,2,2,2,2] (the only case where it's important to start with a D rather than a G if a cycling method is used)
    $endgroup$
    – Arnauld
    9 hours ago















$begingroup$
Do I need to output a string or is a list ok?
$endgroup$
– Maltysen
11 hours ago




$begingroup$
Do I need to output a string or is a list ok?
$endgroup$
– Maltysen
11 hours ago












$begingroup$
You can output a list, I'll update the question
$endgroup$
– Expired Data
11 hours ago




$begingroup$
You can output a list, I'll update the question
$endgroup$
– Expired Data
11 hours ago












$begingroup$
What can I output for a blank?
$endgroup$
– Maltysen
10 hours ago




$begingroup$
What can I output for a blank?
$endgroup$
– Maltysen
10 hours ago












$begingroup$
Good question I'll let you output a space or _, since typically it could be represented by either. I'll update the question
$endgroup$
– Expired Data
10 hours ago




$begingroup$
Good question I'll let you output a space or _, since typically it could be represented by either. I'll update the question
$endgroup$
– Expired Data
10 hours ago




3




3




$begingroup$
Suggested test case: [2,2,2,2,2,2,2] (the only case where it's important to start with a D rather than a G if a cycling method is used)
$endgroup$
– Arnauld
9 hours ago




$begingroup$
Suggested test case: [2,2,2,2,2,2,2] (the only case where it's important to start with a D rather than a G if a cycling method is used)
$endgroup$
– Arnauld
9 hours ago










11 Answers
11






active

oldest

votes


















6












$begingroup$


Charcoal, 33 bytes



⭆θ§§⪪”&↖“Vh_z↶∕¡⌈∨₂χ¹‖◨⌊″”¶ι№…θκι


Try it online! Link is to verbose version of code. Explanation:



 θ Input array
⭆ Map over elements and join
”...” Literal string " nEnDGnBCMPnFHVWnKnnnJXnnQZ"
⪪ ¶ Split on newlines
§ ι Indexed by current element
§ Cyclically indexed by
№…θκι Number of times current element has already appeared
Implcitly print





share|improve this answer









$endgroup$




















    6












    $begingroup$

    JavaScript (ES6),  137 ... 84 78 77  76 bytes



    Saved 10 bytes by using Neil's cycling method



    Returns a list of tiles. Uses _ for blank tiles.



    a=>a.map(o=n=>"____FHVWGDGD_K__BCMPEEEE_ZQ__XJ"[n*20%44%32+(o[n]=-~o[n])%4])


    Try it online!



    How?



    For each number of points, we cycle through a group of exactly 4 tiles, starting with the second tile of each group (this is important for G vs D):



     points | group | max. sequence
    --------+-------+---------------
    0 | ____ | __
    1 | EEEE | EEEEEEE
    2 | GDGD | DGDGDGD
    3 | BCMP | CMPBCMP
    4 | FHVW | HVWFHVW
    5 | _K__ | K
    8 | _XJ_ | XJ }--- these letters may only appear once each
    10 | _ZQ_ | ZQ /


    All these groups are stored as a single string of 31 characters:



    ____FHVWGDGD_K__BCMPEEEE_ZQ__XJ
    ^ ^ ^ ^ ^ ^ ^ ^
    0 4 8 12 16 20 24 28


    NB: We don't need to store the final "_" in "_XJ_", as it will never be accessed anyway.



    The number of points $n$ is converted to the correct index $i_n$ into this string with:



    $$i_n=((20times n)bmod 44)bmod 32$$



     n | *20 | mod 44 | mod 32 | group
    ----+-----+--------+--------+-------
    0 | 0 | 0 | 0 | ____
    1 | 20 | 20 | 20 | EEEE
    2 | 40 | 40 | 8 | GDGD
    3 | 60 | 16 | 16 | BCMP
    4 | 80 | 36 | 4 | FHVW
    5 | 100 | 12 | 12 | _K__
    8 | 160 | 28 | 28 | _XJ_
    10 | 200 | 24 | 24 | _ZQ_


    The current position in each group is stored in the object $o$.






    share|improve this answer











    $endgroup$












    • $begingroup$
      Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
      $endgroup$
      – supercat
      25 mins ago










    • $begingroup$
      @supercat Sounds good! I'll have a closer look at it tomorrow.
      $endgroup$
      – Arnauld
      23 mins ago


















    4












    $begingroup$

    Pyth - 92 86 83 81 80 75 60 52 49 42 36 bytes



    Loops through input, popping off the available letters. I just have one of each letter that together give 7 for that point category. Now using packed string encoding.



    K[M*L7c."B_êº çÑOÒ
    7âCkÑ"Lm.)@K

    K Assign to K
    [M Map list(for popping). Uses a quirk of M to splat each first
    *L7 Map repeating each string by 7
    c L Split on occurrences of 'L'
    ."..." Packed string encoding of the needed letters
    m (Q) Map on input (input is taken implicitly)
    .) Pop. This returns the first element after removing it
    @K Index into K
    (d) The loop variable is given implicitly


    Btw, this is the original letter string before encoding: "_ E DG BCMP FHVW K JX QZ".



    Try it online.






    share|improve this answer











    $endgroup$




















      3












      $begingroup$


      Perl 5, 71 bytes





      @a=(__,'E'x7,DDDDGGG,BBCCMMP,FFHHVVW,K,1,1,JX,1,QZ);say chop$a[$_]for<>


      Try it online!






      share|improve this answer









      $endgroup$




















        3












        $begingroup$


        Jelly,  31 30  27 bytes



        “ÑṠX(YḤO⁻©Ɓḣ’ṃØA;⁶s2ɓṢĖUœị


        A monadic Link accepting a list of integers which yields a list of characters.

        - a mishmash of my previous, below, and my improvement of Nick Kennedy's



        Try it online!



        The output is not given in the same order as the input (this is allowed).



        Using 2 of my own additions to the language in an answer does not happen often! ( and ɓ here).



        How?



        “...’ṃØA;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
        “...’ - 4249912893109453671990223738
        ØA - 'ABC...XYZ'
        ṃ - base decompress 'ENDGMPFYKKZZZZJXZZQZ'
        ; - concatenate
        ⁶ - a space 'ENDGMPFYKKZZZZJXZZQZ '
        s2 - split into twos ['EN','DG','MP','FY','KK','ZZ','ZZ','JX','ZZ','QZ',' ']
        ɓ - start a new dyadic chain with swapped arguments - i.e. f(V,that)
        Ṣ - sort [0,1,1,2,3,10,10]
        Ė - enumerate [[1,0],[2,1],[3,1],[4,2],[5,3],[6,10],[7,10]]
        U - upend [[0,1],[1,2],[1,3],[2,4],[3,5],[10,6],[10,7]]
        œị - multi-dimensional index into ' NWGMZQ'
        (1-based and modular)



        previous @ 30



        “²rṛʂṂø5=Ɓṇ^N¥Y»⁾tky;⁶s2ɓṢĖUœị


        A monadic Link accepting a list of integers which yields a list of characters.



        Try it online!



        This one's output is also mixed-case (this is allowed).



        How?



        “...»⁾tky;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
        “...» - compression of dictionary entries:
        - 'end', 'GMP', 'fyttes', 'adj', and 'xci' and the string 'qz'
        - 'endGMPfyttesadjxciqz'
        y - translate with:
        ⁾tk - ['t', 'k'] 'endGMPfykkesadjxciqz'
        ;⁶s2ɓṢĖUœị - ...
        - ...then like the above method ' neGMzq'





        share|improve this answer











        $endgroup$




















          2












          $begingroup$


          05AB1E, 70 52 39 38 bytes



          .•Mñ&Àû«ì₆v*Å+µ-•#ðšε7∍IvDyèн©?ε®õ.;


          -18 bytes thanks to @ExpiredData.

          -13 bytes by using the same extend to size 7 from @Maltysen's Pyth answer.



          Try it online or verify some more test cases.



          Explanation:





          .•Mñ&Àû«ì₆v*Å+µ-• # Push compressed string "e dg bcmp fhvw k jx qz"
          # # Split on spaces: ["e","dg","bcmp","fhvw","k","","","jx","","qz"]
          ðš # Prepend a space to this list
          ε7∍ # Extend each string to size 7:
          # [" ","eeeeeee","dgdgdgd","bcmpbcm","fhvwfhv","kkkkkkk","","","jxjxjxj","","qzqzqzq"]
          Iv # Loop `y` over the input-list:
          Dyè # Get the `y`'th string from a copy of the list
          н # Get it's first character
          ©? # Store it in the register, and print it without trailing newline
          ε # Then map each string in the list to:
          ®õ.; # Remove the first occurrence of the character from the register


          See this 05AB1E tip of mine (section How to compress strings not part of the dictionary?) to understand why .•Mñ&Àû«ì FHVW --- these letters may only appear once each
          10 | _ZQ_ | ZQ /


          All these groups are stored as a single string of 31 characters:



          ____FHVWGDGD_K__BCMPEEEE_ZQ__XJ
          ^ ^ ^ ^ ^ ^ ^ ^
          0 4 8 12 16 20 24 28


          NB: We don't need to store the final "_" in "_XJ_", as it will never be accessed anyway.



          The number of points $n$ is converted to the correct index $i_n$ into this string with:



          $$i_n=((20times n)bmod 44)bmod 32$$



           n | *20 | mod 44 | mod 32 | group
          ----+-----+--------+--------+-------
          0 | 0 | 0 | 0 | ____
          1 | 20 | 20 | 20 | EEEE
          2 | 40 | 40 | 8 | GDGD
          3 | 60 | 16 | 16 | BCMP
          4 | 80 | 36 | 4 | FHVW
          5 | 100 | 12 | 12 | _K__
          8 | 160 | 28 | 28 | _XJ_
          10 | 200 | 24 | 24 | _ZQ_


          The current position in each group is stored in the object $o$.






          share|improve this answer











          $endgroup$












          • $begingroup$
            Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
            $endgroup$
            – supercat
            25 mins ago










          • $begingroup$
            @supercat Sounds good! I'll have a closer look at it tomorrow.
            $endgroup$
            – Arnauld
            23 mins ago















          6












          $begingroup$

          JavaScript (ES6),  137 ... 84 78 77  76 bytes



          Saved 10 bytes by using Neil's cycling method



          Returns a list of tiles. Uses _ for blank tiles.



          a=>a.map(o=n=>"____FHVWGDGD_K__BCMPEEEE_ZQ__XJ"[n*20%44%32+(o[n]=-~o[n])%4])


          Try it online!



          How?



          For each number of points, we cycle through a group of exactly 4 tiles, starting with the second tile of each group (this is important for G vs D):



           points | group | max. sequence
          --------+-------+---------------
          0 | ____ | __
          1 | EEEE | EEEEEEE
          2 | GDGD | DGDGDGD
          3 | BCMP | CMPBCMP
          4 | FHVW | HVWFHVW
          5 | _K__ | K
          8 | _XJ_ | XJ }--- these letters may only appear once each
          10 | _ZQ_ | ZQ /


          All these groups are stored as a single string of 31 characters:



          ____FHVWGDGD_K__BCMPEEEE_ZQ__XJ
          ^ ^ ^ ^ ^ ^ ^ ^
          0 4 8 12 16 20 24 28


          NB: We don't need to store the final "_" in "_XJ_", as it will never be accessed anyway.



          The number of points $n$ is converted to the correct index $i_n$ into this string with:



          $$i_n=((20times n)bmod 44)bmod 32$$



           n | *20 | mod 44 | mod 32 | group
          ----+-----+--------+--------+-------
          0 | 0 | 0 | 0 | ____
          1 | 20 | 20 | 20 | EEEE
          2 | 40 | 40 | 8 | GDGD
          3 | 60 | 16 | 16 | BCMP
          4 | 80 | 36 | 4 | FHVW
          5 | 100 | 12 | 12 | _K__
          8 | 160 | 28 | 28 | _XJ_
          10 | 200 | 24 | 24 | _ZQ_


          The current position in each group is stored in the object $o$.






          share|improve this answer











          $endgroup$












          • $begingroup$
            Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
            $endgroup$
            – supercat
            25 mins ago










          • $begingroup$
            @supercat Sounds good! I'll have a closer look at it tomorrow.
            $endgroup$
            – Arnauld
            23 mins ago













          6












          6








          6





          $begingroup$

          JavaScript (ES6),  137 ... 84 78 77  76 bytes



          Saved 10 bytes by using Neil's cycling method



          Returns a list of tiles. Uses _ for blank tiles.



          a=>a.map(o=n=>"____FHVWGDGD_K__BCMPEEEE_ZQ__XJ"[n*20%44%32+(o[n]=-~o[n])%4])


          Try it online!



          How?



          For each number of points, we cycle through a group of exactly 4 tiles, starting with the second tile of each group (this is important for G vs D):



           points | group | max. sequence
          --------+-------+---------------
          0 | ____ | __
          1 | EEEE | EEEEEEE
          2 | GDGD | DGDGDGD
          3 | BCMP | CMPBCMP
          4 | FHVW | HVWFHVW
          5 | _K__ | K
          8 | _XJ_ | XJ }--- these letters may only appear once each
          10 | _ZQ_ | ZQ /


          All these groups are stored as a single string of 31 characters:



          ____FHVWGDGD_K__BCMPEEEE_ZQ__XJ
          ^ ^ ^ ^ ^ ^ ^ ^
          0 4 8 12 16 20 24 28


          NB: We don't need to store the final "_" in "_XJ_", as it will never be accessed anyway.



          The number of points $n$ is converted to the correct index $i_n$ into this string with:



          $$i_n=((20times n)bmod 44)bmod 32$$



           n | *20 | mod 44 | mod 32 | group
          ----+-----+--------+--------+-------
          0 | 0 | 0 | 0 | ____
          1 | 20 | 20 | 20 | EEEE
          2 | 40 | 40 | 8 | GDGD
          3 | 60 | 16 | 16 | BCMP
          4 | 80 | 36 | 4 | FHVW
          5 | 100 | 12 | 12 | _K__
          8 | 160 | 28 | 28 | _XJ_
          10 | 200 | 24 | 24 | _ZQ_


          The current position in each group is stored in the object $o$.






          share|improve this answer











          $endgroup$



          JavaScript (ES6),  137 ... 84 78 77  76 bytes



          Saved 10 bytes by using Neil's cycling method



          Returns a list of tiles. Uses _ for blank tiles.



          a=>a.map(o=n=>"____FHVWGDGD_K__BCMPEEEE_ZQ__XJ"[n*20%44%32+(o[n]=-~o[n])%4])


          Try it online!



          How?



          For each number of points, we cycle through a group of exactly 4 tiles, starting with the second tile of each group (this is important for G vs D):



           points | group | max. sequence
          --------+-------+---------------
          0 | ____ | __
          1 | EEEE | EEEEEEE
          2 | GDGD | DGDGDGD
          3 | BCMP | CMPBCMP
          4 | FHVW | HVWFHVW
          5 | _K__ | K
          8 | _XJ_ | XJ }--- these letters may only appear once each
          10 | _ZQ_ | ZQ /


          All these groups are stored as a single string of 31 characters:



          ____FHVWGDGD_K__BCMPEEEE_ZQ__XJ
          ^ ^ ^ ^ ^ ^ ^ ^
          0 4 8 12 16 20 24 28


          NB: We don't need to store the final "_" in "_XJ_", as it will never be accessed anyway.



          The number of points $n$ is converted to the correct index $i_n$ into this string with:



          $$i_n=((20times n)bmod 44)bmod 32$$



           n | *20 | mod 44 | mod 32 | group
          ----+-----+--------+--------+-------
          0 | 0 | 0 | 0 | ____
          1 | 20 | 20 | 20 | EEEE
          2 | 40 | 40 | 8 | GDGD
          3 | 60 | 16 | 16 | BCMP
          4 | 80 | 36 | 4 | FHVW
          5 | 100 | 12 | 12 | _K__
          8 | 160 | 28 | 28 | _XJ_
          10 | 200 | 24 | 24 | _ZQ_


          The current position in each group is stored in the object $o$.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 7 hours ago

























          answered 10 hours ago









          ArnauldArnauld

          80.7k797334




          80.7k797334











          • $begingroup$
            Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
            $endgroup$
            – supercat
            25 mins ago










          • $begingroup$
            @supercat Sounds good! I'll have a closer look at it tomorrow.
            $endgroup$
            – Arnauld
            23 mins ago
















          • $begingroup$
            Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
            $endgroup$
            – supercat
            25 mins ago










          • $begingroup$
            @supercat Sounds good! I'll have a closer look at it tomorrow.
            $endgroup$
            – Arnauld
            23 mins ago















          $begingroup$
          Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
          $endgroup$
          – supercat
          25 mins ago




          $begingroup$
          Advancing o[n] by 8 each time would cost one extra character for the advancement, but allow one to replace %4 and %32 both with &31 for a net win. My best, based on yours, would be a=>a.map(o=n=>('?ED?BWQ?_EG?CFZ?_EDJMH?K?EGXPV'[n*9.4+(o[n]=7-~o[n])&31])). A shorter, "almost" version is a=>a.map(o=n=>("_EDBFK_EDCHJQEGMVXZEGPW"[n+(o[n]=5-~o[n])%24])) but that approach would needs a compact way to map the values 8 and 10 into 11 and 12, plus a slight adjustment to the string to fix an off-by-one problem.
          $endgroup$
          – supercat
          25 mins ago












          $begingroup$
          @supercat Sounds good! I'll have a closer look at it tomorrow.
          $endgroup$
          – Arnauld
          23 mins ago




          $begingroup$
          @supercat Sounds good! I'll have a closer look at it tomorrow.
          $endgroup$
          – Arnauld
          23 mins ago











          4












          $begingroup$

          Pyth - 92 86 83 81 80 75 60 52 49 42 36 bytes



          Loops through input, popping off the available letters. I just have one of each letter that together give 7 for that point category. Now using packed string encoding.



          K[M*L7c."B_êº çÑOÒ
          7âCkÑ"Lm.)@K

          K Assign to K
          [M Map list(for popping). Uses a quirk of M to splat each first
          *L7 Map repeating each string by 7
          c L Split on occurrences of 'L'
          ."..." Packed string encoding of the needed letters
          m (Q) Map on input (input is taken implicitly)
          .) Pop. This returns the first element after removing it
          @K Index into K
          (d) The loop variable is given implicitly


          Btw, this is the original letter string before encoding: "_ E DG BCMP FHVW K JX QZ".



          Try it online.






          share|improve this answer











          $endgroup$

















            4












            $begingroup$

            Pyth - 92 86 83 81 80 75 60 52 49 42 36 bytes



            Loops through input, popping off the available letters. I just have one of each letter that together give 7 for that point category. Now using packed string encoding.



            K[M*L7c."B_êº çÑOÒ
            7âCkÑ"Lm.)@K

            K Assign to K
            [M Map list(for popping). Uses a quirk of M to splat each first
            *L7 Map repeating each string by 7
            c L Split on occurrences of 'L'
            ."..." Packed string encoding of the needed letters
            m (Q) Map on input (input is taken implicitly)
            .) Pop. This returns the first element after removing it
            @K Index into K
            (d) The loop variable is given implicitly


            Btw, this is the original letter string before encoding: "_ E DG BCMP FHVW K JX QZ".



            Try it online.






            share|improve this answer











            $endgroup$















              4












              4








              4





              $begingroup$

              Pyth - 92 86 83 81 80 75 60 52 49 42 36 bytes



              Loops through input, popping off the available letters. I just have one of each letter that together give 7 for that point category. Now using packed string encoding.



              K[M*L7c."B_êº çÑOÒ
              7âCkÑ"Lm.)@K

              K Assign to K
              [M Map list(for popping). Uses a quirk of M to splat each first
              *L7 Map repeating each string by 7
              c L Split on occurrences of 'L'
              ."..." Packed string encoding of the needed letters
              m (Q) Map on input (input is taken implicitly)
              .) Pop. This returns the first element after removing it
              @K Index into K
              (d) The loop variable is given implicitly


              Btw, this is the original letter string before encoding: "_ E DG BCMP FHVW K JX QZ".



              Try it online.






              share|improve this answer











              $endgroup$



              Pyth - 92 86 83 81 80 75 60 52 49 42 36 bytes



              Loops through input, popping off the available letters. I just have one of each letter that together give 7 for that point category. Now using packed string encoding.



              K[M*L7c."B_êº çÑOÒ
              7âCkÑ"Lm.)@K

              K Assign to K
              [M Map list(for popping). Uses a quirk of M to splat each first
              *L7 Map repeating each string by 7
              c L Split on occurrences of 'L'
              ."..." Packed string encoding of the needed letters
              m (Q) Map on input (input is taken implicitly)
              .) Pop. This returns the first element after removing it
              @K Index into K
              (d) The loop variable is given implicitly


              Btw, this is the original letter string before encoding: "_ E DG BCMP FHVW K JX QZ".



              Try it online.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited 9 hours ago

























              answered 11 hours ago









              MaltysenMaltysen

              21.3k445116




              21.3k445116





















                  3












                  $begingroup$


                  Perl 5, 71 bytes





                  @a=(__,'E'x7,DDDDGGG,BBCCMMP,FFHHVVW,K,1,1,JX,1,QZ);say chop$a[$_]for<>


                  Try it online!






                  share|improve this answer









                  $endgroup$

















                    3












                    $begingroup$


                    Perl 5, 71 bytes





                    @a=(__,'E'x7,DDDDGGG,BBCCMMP,FFHHVVW,K,1,1,JX,1,QZ);say chop$a[$_]for<>


                    Try it online!






                    share|improve this answer









                    $endgroup$















                      3












                      3








                      3





                      $begingroup$


                      Perl 5, 71 bytes





                      @a=(__,'E'x7,DDDDGGG,BBCCMMP,FFHHVVW,K,1,1,JX,1,QZ);say chop$a[$_]for<>


                      Try it online!






                      share|improve this answer









                      $endgroup$




                      Perl 5, 71 bytes





                      @a=(__,'E'x7,DDDDGGG,BBCCMMP,FFHHVVW,K,1,1,JX,1,QZ);say chop$a[$_]for<>


                      Try it online!







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered 6 hours ago









                      XcaliXcali

                      5,505520




                      5,505520





















                          3












                          $begingroup$


                          Jelly,  31 30  27 bytes



                          “ÑṠX(YḤO⁻©Ɓḣ’ṃØA;⁶s2ɓṢĖUœị


                          A monadic Link accepting a list of integers which yields a list of characters.

                          - a mishmash of my previous, below, and my improvement of Nick Kennedy's



                          Try it online!



                          The output is not given in the same order as the input (this is allowed).



                          Using 2 of my own additions to the language in an answer does not happen often! ( and ɓ here).



                          How?



                          “...’ṃØA;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                          “...’ - 4249912893109453671990223738
                          ØA - 'ABC...XYZ'
                          ṃ - base decompress 'ENDGMPFYKKZZZZJXZZQZ'
                          ; - concatenate
                          ⁶ - a space 'ENDGMPFYKKZZZZJXZZQZ '
                          s2 - split into twos ['EN','DG','MP','FY','KK','ZZ','ZZ','JX','ZZ','QZ',' ']
                          ɓ - start a new dyadic chain with swapped arguments - i.e. f(V,that)
                          Ṣ - sort [0,1,1,2,3,10,10]
                          Ė - enumerate [[1,0],[2,1],[3,1],[4,2],[5,3],[6,10],[7,10]]
                          U - upend [[0,1],[1,2],[1,3],[2,4],[3,5],[10,6],[10,7]]
                          œị - multi-dimensional index into ' NWGMZQ'
                          (1-based and modular)



                          previous @ 30



                          “²rṛʂṂø5=Ɓṇ^N¥Y»⁾tky;⁶s2ɓṢĖUœị


                          A monadic Link accepting a list of integers which yields a list of characters.



                          Try it online!



                          This one's output is also mixed-case (this is allowed).



                          How?



                          “...»⁾tky;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                          “...» - compression of dictionary entries:
                          - 'end', 'GMP', 'fyttes', 'adj', and 'xci' and the string 'qz'
                          - 'endGMPfyttesadjxciqz'
                          y - translate with:
                          ⁾tk - ['t', 'k'] 'endGMPfykkesadjxciqz'
                          ;⁶s2ɓṢĖUœị - ...
                          - ...then like the above method ' neGMzq'





                          share|improve this answer











                          $endgroup$

















                            3












                            $begingroup$


                            Jelly,  31 30  27 bytes



                            “ÑṠX(YḤO⁻©Ɓḣ’ṃØA;⁶s2ɓṢĖUœị


                            A monadic Link accepting a list of integers which yields a list of characters.

                            - a mishmash of my previous, below, and my improvement of Nick Kennedy's



                            Try it online!



                            The output is not given in the same order as the input (this is allowed).



                            Using 2 of my own additions to the language in an answer does not happen often! ( and ɓ here).



                            How?



                            “...’ṃØA;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                            “...’ - 4249912893109453671990223738
                            ØA - 'ABC...XYZ'
                            ṃ - base decompress 'ENDGMPFYKKZZZZJXZZQZ'
                            ; - concatenate
                            ⁶ - a space 'ENDGMPFYKKZZZZJXZZQZ '
                            s2 - split into twos ['EN','DG','MP','FY','KK','ZZ','ZZ','JX','ZZ','QZ',' ']
                            ɓ - start a new dyadic chain with swapped arguments - i.e. f(V,that)
                            Ṣ - sort [0,1,1,2,3,10,10]
                            Ė - enumerate [[1,0],[2,1],[3,1],[4,2],[5,3],[6,10],[7,10]]
                            U - upend [[0,1],[1,2],[1,3],[2,4],[3,5],[10,6],[10,7]]
                            œị - multi-dimensional index into ' NWGMZQ'
                            (1-based and modular)



                            previous @ 30



                            “²rṛʂṂø5=Ɓṇ^N¥Y»⁾tky;⁶s2ɓṢĖUœị


                            A monadic Link accepting a list of integers which yields a list of characters.



                            Try it online!



                            This one's output is also mixed-case (this is allowed).



                            How?



                            “...»⁾tky;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                            “...» - compression of dictionary entries:
                            - 'end', 'GMP', 'fyttes', 'adj', and 'xci' and the string 'qz'
                            - 'endGMPfyttesadjxciqz'
                            y - translate with:
                            ⁾tk - ['t', 'k'] 'endGMPfykkesadjxciqz'
                            ;⁶s2ɓṢĖUœị - ...
                            - ...then like the above method ' neGMzq'





                            share|improve this answer











                            $endgroup$















                              3












                              3








                              3





                              $begingroup$


                              Jelly,  31 30  27 bytes



                              “ÑṠX(YḤO⁻©Ɓḣ’ṃØA;⁶s2ɓṢĖUœị


                              A monadic Link accepting a list of integers which yields a list of characters.

                              - a mishmash of my previous, below, and my improvement of Nick Kennedy's



                              Try it online!



                              The output is not given in the same order as the input (this is allowed).



                              Using 2 of my own additions to the language in an answer does not happen often! ( and ɓ here).



                              How?



                              “...’ṃØA;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                              “...’ - 4249912893109453671990223738
                              ØA - 'ABC...XYZ'
                              ṃ - base decompress 'ENDGMPFYKKZZZZJXZZQZ'
                              ; - concatenate
                              ⁶ - a space 'ENDGMPFYKKZZZZJXZZQZ '
                              s2 - split into twos ['EN','DG','MP','FY','KK','ZZ','ZZ','JX','ZZ','QZ',' ']
                              ɓ - start a new dyadic chain with swapped arguments - i.e. f(V,that)
                              Ṣ - sort [0,1,1,2,3,10,10]
                              Ė - enumerate [[1,0],[2,1],[3,1],[4,2],[5,3],[6,10],[7,10]]
                              U - upend [[0,1],[1,2],[1,3],[2,4],[3,5],[10,6],[10,7]]
                              œị - multi-dimensional index into ' NWGMZQ'
                              (1-based and modular)



                              previous @ 30



                              “²rṛʂṂø5=Ɓṇ^N¥Y»⁾tky;⁶s2ɓṢĖUœị


                              A monadic Link accepting a list of integers which yields a list of characters.



                              Try it online!



                              This one's output is also mixed-case (this is allowed).



                              How?



                              “...»⁾tky;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                              “...» - compression of dictionary entries:
                              - 'end', 'GMP', 'fyttes', 'adj', and 'xci' and the string 'qz'
                              - 'endGMPfyttesadjxciqz'
                              y - translate with:
                              ⁾tk - ['t', 'k'] 'endGMPfykkesadjxciqz'
                              ;⁶s2ɓṢĖUœị - ...
                              - ...then like the above method ' neGMzq'





                              share|improve this answer











                              $endgroup$




                              Jelly,  31 30  27 bytes



                              “ÑṠX(YḤO⁻©Ɓḣ’ṃØA;⁶s2ɓṢĖUœị


                              A monadic Link accepting a list of integers which yields a list of characters.

                              - a mishmash of my previous, below, and my improvement of Nick Kennedy's



                              Try it online!



                              The output is not given in the same order as the input (this is allowed).



                              Using 2 of my own additions to the language in an answer does not happen often! ( and ɓ here).



                              How?



                              “...’ṃØA;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                              “...’ - 4249912893109453671990223738
                              ØA - 'ABC...XYZ'
                              ṃ - base decompress 'ENDGMPFYKKZZZZJXZZQZ'
                              ; - concatenate
                              ⁶ - a space 'ENDGMPFYKKZZZZJXZZQZ '
                              s2 - split into twos ['EN','DG','MP','FY','KK','ZZ','ZZ','JX','ZZ','QZ',' ']
                              ɓ - start a new dyadic chain with swapped arguments - i.e. f(V,that)
                              Ṣ - sort [0,1,1,2,3,10,10]
                              Ė - enumerate [[1,0],[2,1],[3,1],[4,2],[5,3],[6,10],[7,10]]
                              U - upend [[0,1],[1,2],[1,3],[2,4],[3,5],[10,6],[10,7]]
                              œị - multi-dimensional index into ' NWGMZQ'
                              (1-based and modular)



                              previous @ 30



                              “²rṛʂṂø5=Ɓṇ^N¥Y»⁾tky;⁶s2ɓṢĖUœị


                              A monadic Link accepting a list of integers which yields a list of characters.



                              Try it online!



                              This one's output is also mixed-case (this is allowed).



                              How?



                              “...»⁾tky;⁶s2ɓṢĖUœị - Link: list of integers, V e.g. [10,1,0,3,2,1,10]
                              “...» - compression of dictionary entries:
                              - 'end', 'GMP', 'fyttes', 'adj', and 'xci' and the string 'qz'
                              - 'endGMPfyttesadjxciqz'
                              y - translate with:
                              ⁾tk - ['t', 'k'] 'endGMPfykkesadjxciqz'
                              ;⁶s2ɓṢĖUœị - ...
                              - ...then like the above method ' neGMzq'






                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited 1 hour ago

























                              answered 3 hours ago









                              Jonathan AllanJonathan Allan

                              54.1k537174




                              54.1k537174





















                                  2












                                  $begingroup$


                                  05AB1E, 70 52 39 38 bytes



                                  .•Mñ&Àû«ì₆v*Å+µ-•#ðšε7∍IvDyèн©?ε®õ.;


                                  -18 bytes thanks to @ExpiredData.

                                  -13 bytes by using the same extend to size 7 from @Maltysen's Pyth answer.



                                  Try it online or verify some more test cases.



                                  Explanation:





                                  .•Mñ&Àû«ì₆v*Å+µ-• # Push compressed string "e dg bcmp fhvw k jx qz"
                                  # # Split on spaces: ["e","dg","bcmp","fhvw","k","","","jx","","qz"]
                                  ðš # Prepend a space to this list
                                  ε7∍ # Extend each string to size 7:
                                  # [" ","eeeeeee","dgdgdgd","bcmpbcm","fhvwfhv","kkkkkkk","","","jxjxjxj","","qzqzqzq"]
                                  Iv # Loop `y` over the input-list:
                                  Dyè # Get the `y`'th string from a copy of the list
                                  н # Get it's first character
                                  ©? # Store it in the register, and print it without trailing newline
                                  ε # Then map each string in the list to:
                                  ®õ.; # Remove the first occurrence of the character from the register


                                  See this 05AB1E tip of mine (section How to compress strings not part of the dictionary?) to understand why .•Mñ&Àû«ì{₆v*Å+µ-• is "e dg bcmp fhvw k jx qz".






                                  share|improve this answer











                                  $endgroup$












                                  • $begingroup$
                                    Can't you use " 0eeeeeee0ddddggg0bbccmmp0ffhhvvw0k000jx00qz"?
                                    $endgroup$
                                    – Expired Data
                                    10 hours ago











                                  • $begingroup$
                                    @ExpiredData Ah, of course. You only draw 7 letter.. Thanks! Will change it.
                                    $endgroup$
                                    – Kevin Cruijssen
                                    10 hours ago















                                  2












                                  $begingroup$


                                  05AB1E, 70 52 39 38 bytes



                                  .•Mñ&Àû«ì₆v*Å+µ-•#ðšε7∍IvDyèн©?ε®õ.;


                                  -18 bytes thanks to @ExpiredData.

                                  -13 bytes by using the same extend to size 7 from @Maltysen's Pyth answer.



                                  Try it online or verify some more test cases.



                                  Explanation:





                                  .•Mñ&Àû«ì₆v*Å+µ-• # Push compressed string "e dg bcmp fhvw k jx qz"
                                  # # Split on spaces: ["e","dg","bcmp","fhvw","k","","","jx","","qz"]
                                  ðš # Prepend a space to this list
                                  ε7∍ # Extend each string to size 7:
                                  # [" ","eeeeeee","dgdgdgd","bcmpbcm","fhvwfhv","kkkkkkk","","","jxjxjxj","","qzqzqzq"]
                                  Iv # Loop `y` over the input-list:
                                  Dyè # Get the `y`'th string from a copy of the list
                                  н # Get it's first character
                                  ©? # Store it in the register, and print it without trailing newline
                                  ε # Then map each string in the list to:
                                  ®õ.; # Remove the first occurrence of the character from the register


                                  See this 05AB1E tip of mine (section How to compress strings not part of the dictionary?) to understand why .•Mñ&Àû«ì{₆v*Å+µ-• is "e dg bcmp fhvw k jx qz".






                                  share|improve this answer











                                  $endgroup$












                                  • $begingroup$
                                    Can't you use " 0eeeeeee0ddddggg0bbccmmp0ffhhvvw0k000jx00qz"?
                                    $endgroup$
                                    – Expired Data
                                    10 hours ago











                                  • $begingroup$
                                    @ExpiredData Ah, of course. You only draw 7 letter.. Thanks! Will change it.
                                    $endgroup$
                                    – Kevin Cruijssen
                                    10 hours ago













                                  2












                                  2








                                  2





                                  $begingroup$


                                  05AB1E, 70 52 39 38 bytes



                                  .•Mñ&Àû«ì₆v*Å+µ-•#ðšε7∍IvDyèн©?ε®õ.;


                                  -18 bytes thanks to @ExpiredData.

                                  -13 bytes by using the same extend to size 7 from @Maltysen's Pyth answer.



                                  Try it online or verify some more test cases.



                                  Explanation:





                                  .•Mñ&Àû«ì₆v*Å+µ-• # Push compressed string "e dg bcmp fhvw k jx qz"
                                  # # Split on spaces: ["e","dg","bcmp","fhvw","k","","","jx","","qz"]
                                  ðš # Prepend a space to this list
                                  ε7∍ # Extend each string to size 7:
                                  # [" ","eeeeeee","dgdgdgd","bcmpbcm","fhvwfhv","kkkkkkk","","","jxjxjxj","","qzqzqzq"]
                                  Iv # Loop `y` over the input-list:
                                  Dyè # Get the `y`'th string from a copy of the list
                                  н # Get it's first character
                                  ©? # Store it in the register, and print it without trailing newline
                                  ε # Then map each string in the list to:
                                  ®õ.; # Remove the first occurrence of the character from the register


                                  See this 05AB1E tip of mine (section How to compress strings not part of the dictionary?) to understand why .•Mñ&Àû«ì{₆v*Å+µ-• is "e dg bcmp fhvw k jx qz".






                                  share|improve this answer











                                  $endgroup$




                                  05AB1E, 70 52 39 38 bytes



                                  .•Mñ&Àû«ì₆v*Å+µ-•#ðšε7∍IvDyèн©?ε®õ.;


                                  -18 bytes thanks to @ExpiredData.

                                  -13 bytes by using the same extend to size 7 from @Maltysen's Pyth answer.



                                  Try it online or verify some more test cases.



                                  Explanation:





                                  .•Mñ&Àû«ì₆v*Å+µ-• # Push compressed string "e dg bcmp fhvw k jx qz"
                                  # # Split on spaces: ["e","dg","bcmp","fhvw","k","","","jx","","qz"]
                                  ðš # Prepend a space to this list
                                  ε7∍ # Extend each string to size 7:
                                  # [" ","eeeeeee","dgdgdgd","bcmpbcm","fhvwfhv","kkkkkkk","","","jxjxjxj","","qzqzqzq"]
                                  Iv # Loop `y` over the input-list:
                                  Dyè # Get the `y`'th string from a copy of the list
                                  н # Get it's first character
                                  ©? # Store it in the register, and print it without trailing newline
                                  ε # Then map each string in the list to:
                                  ®õ.; # Remove the first occurrence of the character from the register


                                  See this 05AB1E tip of mine (section How to compress strings not part of the dictionary?) to understand why .•Mñ&Àû«ì{₆v*Å+µ-• is "e dg bcmp fhvw k jx qz".







                                  share|improve this answer














                                  share|improve this answer



                                  share|improve this answer








                                  edited 6 hours ago

























                                  answered 10 hours ago









                                  Kevin CruijssenKevin Cruijssen

                                  42.6k571217




                                  42.6k571217











                                  • $begingroup$
                                    Can't you use " 0eeeeeee0ddddggg0bbccmmp0ffhhvvw0k000jx00qz"?
                                    $endgroup$
                                    – Expired Data
                                    10 hours ago











                                  • $begingroup$
                                    @ExpiredData Ah, of course. You only draw 7 letter.. Thanks! Will change it.
                                    $endgroup$
                                    – Kevin Cruijssen
                                    10 hours ago
















                                  • $begingroup$
                                    Can't you use " 0eeeeeee0ddddggg0bbccmmp0ffhhvvw0k000jx00qz"?
                                    $endgroup$
                                    – Expired Data
                                    10 hours ago











                                  • $begingroup$
                                    @ExpiredData Ah, of course. You only draw 7 letter.. Thanks! Will change it.
                                    $endgroup$
                                    – Kevin Cruijssen
                                    10 hours ago















                                  $begingroup$
                                  Can't you use " 0eeeeeee0ddddggg0bbccmmp0ffhhvvw0k000jx00qz"?
                                  $endgroup$
                                  – Expired Data
                                  10 hours ago





                                  $begingroup$
                                  Can't you use " 0eeeeeee0ddddggg0bbccmmp0ffhhvvw0k000jx00qz"?
                                  $endgroup$
                                  – Expired Data
                                  10 hours ago













                                  $begingroup$
                                  @ExpiredData Ah, of course. You only draw 7 letter.. Thanks! Will change it.
                                  $endgroup$
                                  – Kevin Cruijssen
                                  10 hours ago




                                  $begingroup$
                                  @ExpiredData Ah, of course. You only draw 7 letter.. Thanks! Will change it.
                                  $endgroup$
                                  – Kevin Cruijssen
                                  10 hours ago











                                  1












                                  $begingroup$


                                  C# (Visual C# Interactive Compiler), 104 90 bytes





                                  a=>a.OrderBy(x=>x).Select((x,i)=>(x="_ E DG BCMP FHVW K JX QZ".Split()[x])[i%x.Length])


                                  Try it online!






                                  share|improve this answer











                                  $endgroup$

















                                    1












                                    $begingroup$


                                    C# (Visual C# Interactive Compiler), 104 90 bytes





                                    a=>a.OrderBy(x=>x).Select((x,i)=>(x="_ E DG BCMP FHVW K JX QZ".Split()[x])[i%x.Length])


                                    Try it online!






                                    share|improve this answer











                                    $endgroup$















                                      1












                                      1








                                      1





                                      $begingroup$


                                      C# (Visual C# Interactive Compiler), 104 90 bytes





                                      a=>a.OrderBy(x=>x).Select((x,i)=>(x="_ E DG BCMP FHVW K JX QZ".Split()[x])[i%x.Length])


                                      Try it online!






                                      share|improve this answer











                                      $endgroup$




                                      C# (Visual C# Interactive Compiler), 104 90 bytes





                                      a=>a.OrderBy(x=>x).Select((x,i)=>(x="_ E DG BCMP FHVW K JX QZ".Split()[x])[i%x.Length])


                                      Try it online!







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited 9 hours ago

























                                      answered 9 hours ago









                                      Expired DataExpired Data

                                      708116




                                      708116





















                                          1












                                          $begingroup$


                                          C (gcc), 110 bytes





                                          _[]=0,7,14,21,0,0,22,0,24;f(char*s)for(;*s+1;s++)*s=*s?*s-1?"DDDDGGGBBCCMMPFFHHVVWKJXQZ"[_[*s-2]++]:69:32;


                                          Try it online!



                                          Uses the _ array as an index into the static string "DDDDGGGBBCCMMPFFHHVVWKJXQZ" dynamically with exceptions for 0 and 1.



                                          Argument is a -1-terminated array of scores which is transformed in-place into a -1-terminated string.






                                          share|improve this answer









                                          $endgroup$

















                                            1












                                            $begingroup$


                                            C (gcc), 110 bytes





                                            _[]=0,7,14,21,0,0,22,0,24;f(char*s)for(;*s+1;s++)*s=*s?*s-1?"DDDDGGGBBCCMMPFFHHVVWKJXQZ"[_[*s-2]++]:69:32;


                                            Try it online!



                                            Uses the _ array as an index into the static string "DDDDGGGBBCCMMPFFHHVVWKJXQZ" dynamically with exceptions for 0 and 1.



                                            Argument is a -1-terminated array of scores which is transformed in-place into a -1-terminated string.






                                            share|improve this answer









                                            $endgroup$















                                              1












                                              1








                                              1





                                              $begingroup$


                                              C (gcc), 110 bytes





                                              _[]=0,7,14,21,0,0,22,0,24;f(char*s)for(;*s+1;s++)*s=*s?*s-1?"DDDDGGGBBCCMMPFFHHVVWKJXQZ"[_[*s-2]++]:69:32;


                                              Try it online!



                                              Uses the _ array as an index into the static string "DDDDGGGBBCCMMPFFHHVVWKJXQZ" dynamically with exceptions for 0 and 1.



                                              Argument is a -1-terminated array of scores which is transformed in-place into a -1-terminated string.






                                              share|improve this answer









                                              $endgroup$




                                              C (gcc), 110 bytes





                                              _[]=0,7,14,21,0,0,22,0,24;f(char*s)for(;*s+1;s++)*s=*s?*s-1?"DDDDGGGBBCCMMPFFHHVVWKJXQZ"[_[*s-2]++]:69:32;


                                              Try it online!



                                              Uses the _ array as an index into the static string "DDDDGGGBBCCMMPFFHHVVWKJXQZ" dynamically with exceptions for 0 and 1.



                                              Argument is a -1-terminated array of scores which is transformed in-place into a -1-terminated string.







                                              share|improve this answer












                                              share|improve this answer



                                              share|improve this answer










                                              answered 2 hours ago









                                              LambdaBetaLambdaBeta

                                              2,229418




                                              2,229418





















                                                  1












                                                  $begingroup$


                                                  Jelly, 34 32 bytes



                                                  “¿RÇĊƈ⁸⁾%ỵṆþœsṀṂ’ṃØAṣ”A;⁶ẋ€7⁸ịḢ€


                                                  Try it online!



                                                  I hadn’t seen there was a shorter Jelly answer when I wrote this, and this uses a different approach so I thought was worth posting as well.



                                                  Thanks to @JonathanAllan for saving 2 bytes!






                                                  share|improve this answer











                                                  $endgroup$












                                                  • $begingroup$
                                                    By using base-decompression, , you can save 2 bytes
                                                    $endgroup$
                                                    – Jonathan Allan
                                                    2 hours ago















                                                  1












                                                  $begingroup$


                                                  Jelly, 34 32 bytes



                                                  “¿RÇĊƈ⁸⁾%ỵṆþœsṀṂ’ṃØAṣ”A;⁶ẋ€7⁸ịḢ€


                                                  Try it online!



                                                  I hadn’t seen there was a shorter Jelly answer when I wrote this, and this uses a different approach so I thought was worth posting as well.



                                                  Thanks to @JonathanAllan for saving 2 bytes!






                                                  share|improve this answer











                                                  $endgroup$












                                                  • $begingroup$
                                                    By using base-decompression, , you can save 2 bytes
                                                    $endgroup$
                                                    – Jonathan Allan
                                                    2 hours ago













                                                  1












                                                  1








                                                  1





                                                  $begingroup$


                                                  Jelly, 34 32 bytes



                                                  “¿RÇĊƈ⁸⁾%ỵṆþœsṀṂ’ṃØAṣ”A;⁶ẋ€7⁸ịḢ€


                                                  Try it online!



                                                  I hadn’t seen there was a shorter Jelly answer when I wrote this, and this uses a different approach so I thought was worth posting as well.



                                                  Thanks to @JonathanAllan for saving 2 bytes!






                                                  share|improve this answer











                                                  $endgroup$




                                                  Jelly, 34 32 bytes



                                                  “¿RÇĊƈ⁸⁾%ỵṆþœsṀṂ’ṃØAṣ”A;⁶ẋ€7⁸ịḢ€


                                                  Try it online!



                                                  I hadn’t seen there was a shorter Jelly answer when I wrote this, and this uses a different approach so I thought was worth posting as well.



                                                  Thanks to @JonathanAllan for saving 2 bytes!







                                                  share|improve this answer














                                                  share|improve this answer



                                                  share|improve this answer








                                                  edited 2 hours ago

























                                                  answered 2 hours ago









                                                  Nick KennedyNick Kennedy

                                                  1,50649




                                                  1,50649











                                                  • $begingroup$
                                                    By using base-decompression, , you can save 2 bytes
                                                    $endgroup$
                                                    – Jonathan Allan
                                                    2 hours ago
















                                                  • $begingroup$
                                                    By using base-decompression, , you can save 2 bytes
                                                    $endgroup$
                                                    – Jonathan Allan
                                                    2 hours ago















                                                  $begingroup$
                                                  By using base-decompression, , you can save 2 bytes
                                                  $endgroup$
                                                  – Jonathan Allan
                                                  2 hours ago




                                                  $begingroup$
                                                  By using base-decompression, , you can save 2 bytes
                                                  $endgroup$
                                                  – Jonathan Allan
                                                  2 hours ago











                                                  1












                                                  $begingroup$


                                                  Python 3, 178 142 135 127 112 117 bytes





                                                  def f(l):
                                                  d=list(map(list," _EEEEEEE_DDDDGGG_BBCCMMP_FFHHVVW_K___JX__QZ".split('_')))
                                                  return[d[i].pop()for i in l]


                                                  Try it online!



                                                  -1 byte thanks to cdlane



                                                  correct thanks to mathmandan






                                                  share|improve this answer











                                                  $endgroup$












                                                  • $begingroup$
                                                    in " -> in" for 111
                                                    $endgroup$
                                                    – cdlane
                                                    1 hour ago










                                                  • $begingroup$
                                                    d=list(map(list,"...".split('_'))) to save another byte
                                                    $endgroup$
                                                    – cdlane
                                                    59 mins ago











                                                  • $begingroup$
                                                    This function f probably doesn't need to be named, so you can save 2 bytes. However, f consumes the entries of d, so I'm not sure that it fits the consensus requirement that "the function has to be reusable arbitrarily often, without...restating...any other code accompanying the submission." (For example, running f([10,0,10,5,8,8,0]) more than once would result in an error.) Please see meta discussion here: codegolf.meta.stackexchange.com/a/7615/36885
                                                    $endgroup$
                                                    – mathmandan
                                                    45 mins ago















                                                  1












                                                  $begingroup$


                                                  Python 3, 178 142 135 127 112 117 bytes





                                                  def f(l):
                                                  d=list(map(list," _EEEEEEE_DDDDGGG_BBCCMMP_FFHHVVW_K___JX__QZ".split('_')))
                                                  return[d[i].pop()for i in l]


                                                  Try it online!



                                                  -1 byte thanks to cdlane



                                                  correct thanks to mathmandan






                                                  share|improve this answer











                                                  $endgroup$












                                                  • $begingroup$
                                                    in " -> in" for 111
                                                    $endgroup$
                                                    – cdlane
                                                    1 hour ago










                                                  • $begingroup$
                                                    d=list(map(list,"...".split('_'))) to save another byte
                                                    $endgroup$
                                                    – cdlane
                                                    59 mins ago











                                                  • $begingroup$
                                                    This function f probably doesn't need to be named, so you can save 2 bytes. However, f consumes the entries of d, so I'm not sure that it fits the consensus requirement that "the function has to be reusable arbitrarily often, without...restating...any other code accompanying the submission." (For example, running f([10,0,10,5,8,8,0]) more than once would result in an error.) Please see meta discussion here: codegolf.meta.stackexchange.com/a/7615/36885
                                                    $endgroup$
                                                    – mathmandan
                                                    45 mins ago













                                                  1












                                                  1








                                                  1





                                                  $begingroup$


                                                  Python 3, 178 142 135 127 112 117 bytes





                                                  def f(l):
                                                  d=list(map(list," _EEEEEEE_DDDDGGG_BBCCMMP_FFHHVVW_K___JX__QZ".split('_')))
                                                  return[d[i].pop()for i in l]


                                                  Try it online!



                                                  -1 byte thanks to cdlane



                                                  correct thanks to mathmandan






                                                  share|improve this answer











                                                  $endgroup$




                                                  Python 3, 178 142 135 127 112 117 bytes





                                                  def f(l):
                                                  d=list(map(list," _EEEEEEE_DDDDGGG_BBCCMMP_FFHHVVW_K___JX__QZ".split('_')))
                                                  return[d[i].pop()for i in l]


                                                  Try it online!



                                                  -1 byte thanks to cdlane



                                                  correct thanks to mathmandan







                                                  share|improve this answer














                                                  share|improve this answer



                                                  share|improve this answer








                                                  edited 36 mins ago

























                                                  answered 5 hours ago









                                                  Noodle9Noodle9

                                                  30137




                                                  30137











                                                  • $begingroup$
                                                    in " -> in" for 111
                                                    $endgroup$
                                                    – cdlane
                                                    1 hour ago










                                                  • $begingroup$
                                                    d=list(map(list,"...".split('_'))) to save another byte
                                                    $endgroup$
                                                    – cdlane
                                                    59 mins ago











                                                  • $begingroup$
                                                    This function f probably doesn't need to be named, so you can save 2 bytes. However, f consumes the entries of d, so I'm not sure that it fits the consensus requirement that "the function has to be reusable arbitrarily often, without...restating...any other code accompanying the submission." (For example, running f([10,0,10,5,8,8,0]) more than once would result in an error.) Please see meta discussion here: codegolf.meta.stackexchange.com/a/7615/36885
                                                    $endgroup$
                                                    – mathmandan
                                                    45 mins ago
















                                                  • $begingroup$
                                                    in " -> in" for 111
                                                    $endgroup$
                                                    – cdlane
                                                    1 hour ago










                                                  • $begingroup$
                                                    d=list(map(list,"...".split('_'))) to save another byte
                                                    $endgroup$
                                                    – cdlane
                                                    59 mins ago











                                                  • $begingroup$
                                                    This function f probably doesn't need to be named, so you can save 2 bytes. However, f consumes the entries of d, so I'm not sure that it fits the consensus requirement that "the function has to be reusable arbitrarily often, without...restating...any other code accompanying the submission." (For example, running f([10,0,10,5,8,8,0]) more than once would result in an error.) Please see meta discussion here: codegolf.meta.stackexchange.com/a/7615/36885
                                                    $endgroup$
                                                    – mathmandan
                                                    45 mins ago















                                                  $begingroup$
                                                  in " -> in" for 111
                                                  $endgroup$
                                                  – cdlane
                                                  1 hour ago




                                                  $begingroup$
                                                  in " -> in" for 111
                                                  $endgroup$
                                                  – cdlane
                                                  1 hour ago












                                                  $begingroup$
                                                  d=list(map(list,"...".split('_'))) to save another byte
                                                  $endgroup$
                                                  – cdlane
                                                  59 mins ago





                                                  $begingroup$
                                                  d=list(map(list,"...".split('_'))) to save another byte
                                                  $endgroup$
                                                  – cdlane
                                                  59 mins ago













                                                  $begingroup$
                                                  This function f probably doesn't need to be named, so you can save 2 bytes. However, f consumes the entries of d, so I'm not sure that it fits the consensus requirement that "the function has to be reusable arbitrarily often, without...restating...any other code accompanying the submission." (For example, running f([10,0,10,5,8,8,0]) more than once would result in an error.) Please see meta discussion here: codegolf.meta.stackexchange.com/a/7615/36885
                                                  $endgroup$
                                                  – mathmandan
                                                  45 mins ago




                                                  $begingroup$
                                                  This function f probably doesn't need to be named, so you can save 2 bytes. However, f consumes the entries of d, so I'm not sure that it fits the consensus requirement that "the function has to be reusable arbitrarily often, without...restating...any other code accompanying the submission." (For example, running f([10,0,10,5,8,8,0]) more than once would result in an error.) Please see meta discussion here: codegolf.meta.stackexchange.com/a/7615/36885
                                                  $endgroup$
                                                  – mathmandan
                                                  45 mins ago











                                                  0












                                                  $begingroup$


                                                  PHP, 114 bytes





                                                  function($a)$b=[' ',E,DG,BCMP,EFVW,K,8=>JX,0,QZ];foreach($a as$t)$b[$t]=substr($c=$b[$t],1).$o.=$c[0];return$o;


                                                  Try it online!



                                                  Uses a similar rotation/cycling method as some of the others.



                                                  Output



                                                  [10,0,10,5,8,8,0] "Q ZKJX "
                                                  [1,1,1,1,1,1,1] "EEEEEEE"
                                                  [1,2,3,4,5,8,0] "EDBEKJ "
                                                  [2,2,2,2,2,2,2] "DGDDGDG"





                                                  share|improve this answer









                                                  $endgroup$

















                                                    0












                                                    $begingroup$


                                                    PHP, 114 bytes





                                                    function($a)$b=[' ',E,DG,BCMP,EFVW,K,8=>JX,0,QZ];foreach($a as$t)$b[$t]=substr($c=$b[$t],1).$o.=$c[0];return$o;


                                                    Try it online!



                                                    Uses a similar rotation/cycling method as some of the others.



                                                    Output



                                                    [10,0,10,5,8,8,0] "Q ZKJX "
                                                    [1,1,1,1,1,1,1] "EEEEEEE"
                                                    [1,2,3,4,5,8,0] "EDBEKJ "
                                                    [2,2,2,2,2,2,2] "DGDDGDG"





                                                    share|improve this answer









                                                    $endgroup$















                                                      0












                                                      0








                                                      0





                                                      $begingroup$


                                                      PHP, 114 bytes





                                                      function($a)$b=[' ',E,DG,BCMP,EFVW,K,8=>JX,0,QZ];foreach($a as$t)$b[$t]=substr($c=$b[$t],1).$o.=$c[0];return$o;


                                                      Try it online!



                                                      Uses a similar rotation/cycling method as some of the others.



                                                      Output



                                                      [10,0,10,5,8,8,0] "Q ZKJX "
                                                      [1,1,1,1,1,1,1] "EEEEEEE"
                                                      [1,2,3,4,5,8,0] "EDBEKJ "
                                                      [2,2,2,2,2,2,2] "DGDDGDG"





                                                      share|improve this answer









                                                      $endgroup$




                                                      PHP, 114 bytes





                                                      function($a)$b=[' ',E,DG,BCMP,EFVW,K,8=>JX,0,QZ];foreach($a as$t)$b[$t]=substr($c=$b[$t],1).$o.=$c[0];return$o;


                                                      Try it online!



                                                      Uses a similar rotation/cycling method as some of the others.



                                                      Output



                                                      [10,0,10,5,8,8,0] "Q ZKJX "
                                                      [1,1,1,1,1,1,1] "EEEEEEE"
                                                      [1,2,3,4,5,8,0] "EDBEKJ "
                                                      [2,2,2,2,2,2,2] "DGDDGDG"






                                                      share|improve this answer












                                                      share|improve this answer



                                                      share|improve this answer










                                                      answered 41 mins ago









                                                      gwaughgwaugh

                                                      2,0931517




                                                      2,0931517



























                                                          draft saved

                                                          draft discarded
















































                                                          If this is an answer to a challenge…



                                                          • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                          • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                            Explanations of your answer make it more interesting to read and are very much encouraged.


                                                          • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                          More generally…



                                                          • …Please make sure to answer the question and provide sufficient detail.


                                                          • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                          draft saved


                                                          draft discarded














                                                          StackExchange.ready(
                                                          function ()
                                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182954%2fworn-tile-scrabble%23new-answer', 'question_page');

                                                          );

                                                          Post as a guest















                                                          Required, but never shown





















































                                                          Required, but never shown














                                                          Required, but never shown












                                                          Required, but never shown







                                                          Required, but never shown

































                                                          Required, but never shown














                                                          Required, but never shown












                                                          Required, but never shown







                                                          Required, but never shown







                                                          Popular posts from this blog

                                                          Category:Fedor von Bock Media in category "Fedor von Bock"Navigation menuUpload mediaISNI: 0000 0000 5511 3417VIAF ID: 24712551GND ID: 119294796Library of Congress authority ID: n96068363BnF ID: 12534305fSUDOC authorities ID: 034604189Open Library ID: OL338253ANKCR AUT ID: jn19990000869National Library of Israel ID: 000514068National Thesaurus for Author Names ID: 341574317ReasonatorScholiaStatistics

                                                          Reverse int within the 32-bit signed integer range: [−2^31, 2^31 − 1]Combining two 32-bit integers into one 64-bit integerDetermine if an int is within rangeLossy packing 32 bit integer to 16 bitComputing the square root of a 64-bit integerKeeping integer addition within boundsSafe multiplication of two 64-bit signed integersLeetcode 10: Regular Expression MatchingSigned integer-to-ascii x86_64 assembler macroReverse the digits of an Integer“Add two numbers given in reverse order from a linked list”

                                                          Kiel Indholdsfortegnelse Historie | Transport og færgeforbindelser | Sejlsport og anden sport | Kultur | Kendte personer fra Kiel | Noter | Litteratur | Eksterne henvisninger | Navigationsmenuwww.kiel.de54°19′31″N 10°8′26″Ø / 54.32528°N 10.14056°Ø / 54.32528; 10.14056Oberbürgermeister Dr. Ulf Kämpferwww.statistik-nord.deDen danske Stats StatistikKiels hjemmesiderrrWorldCat312794080n790547494030481-4