Zitat von Raman im Beitrag #59You said that [Alternative_Categories] would just be ignored, but why the lines in them are showing along with the two categories 'Easy version' and 'Difficult version' long and filling the entire screen line?

I was wrong. Usually it's true but my implementation seems to be faulty.

Before I update again please reconsider the categories. Idea is to exclude words from the set. What I see in your dic is Tamil + Easy + Difficult and there are words in every of the three. What I understand is that a word "Foo" can be either easy or difficult. Meaning when excluding both categories you should have zero words to play.

Please give me with one more day of time. I will provide you with the final version of Tamil dictionary that is to be uploaded and updated in SourceForge tomorrow.

Please update the Tamil dictionary to version 1.0.4 from the below link. I have updated the Tamil dictionary with the best fit of all parameters to the best of my knowledge in all of individual categories and in all of combined categories and this may be the last update that I might ever make to the Tamil dictionary. https://drive.google.com/file/d/1_ubes0-...iew?usp=sharing

Here are the few changes that I made: (1) Removed [Alternative_Categories] completely. (2) Revised the tile values for some of the letters in the letter set. (3) Updated version number to 100004. (4) Updated release date to Friday, 26 March 2021. (5) Changed standard category from 'Tamil lexicon' to 'Common words' (words common to both categories). (6) Changed comments from 'The digital South Asia library' to 'Tamil lexicon - the digital South Asia library'.

Zitat von Scotty im Beitrag #61What I understand is that a word "Foo" can be either easy or difficult.

Your understanding is wrong. If you looked at both of my Tamil Scrabble game boards that I have attached along with my post 59 in this thread, then you would have understood it more clearly. If I have a trigraph like பொ (single Tamil letter), then in easy version, I have separate tiles for all three symbols and in difficult version, I have one single tile for all those trigraphs and also for digraphs, thereby giving one separate tile to each of the Tamil letters instead of separating each of the symbols. பொ is rarely used and has got higher tile value than each of the symbols separated (the case in which each separate symbol has got tile value of 1). [Left side] Easy version [Right side] Difficult version

Zitat von Scotty im Beitrag #61Meaning when excluding both categories you should have zero words to play.

There are 36664 out of 116448 Tamil words in the Tamil dictionary that do not contain any of these symbols: ஔ, ா, ெ, ே, ை, ொ, ோ and ௌ and so they belong to neither easy version nor difficult version as defined in the Tamil dictionary. If you think that every word should be either in easy version or in difficult version and there should be zero words to play when excluding both of the categories, then duplicate entries of all of those 36664 Tamil words need to be defined in the Tamil dictionary. Including duplicate entries of Tamil words in Tamil dictionary will make the Tamil dictionary to occupy more space. It also takes more time to load the Tamil Scrabble dictionary by the Scrabble3D application at the start of the program, eventhough 36664 Tamil words is not a huge number when compared to total number of words in the Tamil dictionary right now, which is 196232 = 36664 + (79784 × 2). 36664 + 79784 = 116448. The multiplier of 2 is for the two categories which are easy version and difficult version of the 79784 out of 116448 Tamil words in the Tamil dictionary.

On the top of all of that, duplicate entries of Tamil words in Tamil dictionary are always skipped by Scrabble3D application when it loads the Tamil dictionary, meaning that if all of those 36664 Tamil words are first defined in easy version and then also in difficult version later in the Tamil dictionary, then the Scrabble3D application discards away with all of those difficult version Tamil words and only keeps off with all of those easy version Tamil words when it loads the Tamil dictionary. On the other hand, if all of those 36664 Tamil words are first defined in difficult version and then also in easy version later in the Tamil dictionary, then the Scrabble3D application discards away with all of those easy version Tamil words and only keeps off with all of those difficult version Tamil words when it loads the Tamil dictionary.

tamil = codecs.open("C:\\Program Files (x86)\\Scrabble3D\\tamil\\tamil\\split.txt", "r", "utf-8") d = {} for line in tamil: s = line[:-1] t = s.find('=') d[s[:t]] = s[t+1:].split(',') tamil.close()

def expand(word): words = [word] index = [] for k in range(len(word)): if word[k] in d: index.append(k) for e in range(len(index) - 1, -1, -1): f = len(words) for c in range(f): for b in range(1, len(d[words[c][index[e]]])): words.append(words[c][:index[e]] + (d[words[c][index[e]]][b], d[words[c][index[e]]][b][:-1]) [d[words[c][index[e]]][b][-1] == '\r'] + words[c][index[e]+1:]) return words

out = codecs.open("C:\\Program Files (x86)\\Scrabble3D\\tamil\\tamil\\tamil.dic", "w", "utf-8") file = codecs.open("C:\\Program Files (x86)\\Scrabble3D\\tamil\\tamil\\tamil_final.dic", "r", "utf-8") for i in range(215): r = file.readline() out.write(r[:-1]) for line in file: st = line[:-1] idx = st.find('=') word = st[:idx] meaning = (st[idx+1:], st[idx+1:-1]) [st[-1] == '\r'] l = expand(word) if len(l) == 1: out.write(l[0] + '=' + meaning + '\n') else: for j in range(len(l)): if j == 0: out.write(l[j] + '=' + meaning + ';2\n') elif j == len(l) - 1: out.write(l[j] + '=' + meaning + ';1\n') else: out.write(l[j] + '=' + meaning + ';3\n') file.close() out.close()

Zitat von Scotty im Beitrag #56Add the letter set to the dictionary. For example, Math looks like this: Letters=⁼,0,1,2,3,4,5,6,7,8,9,−,×,÷,+,.,!,^,²,³,√,∜,∞,>,< Values=0,3,1,2,4,3,3,4,5,4,4,6,6,7,6,8,10,9,10,10,7,10,10,10,10 Counts=18,6,10,8,7,7,7,7,6,6,6,4,4,3,4,3,1,1,1,1,3,1,1,1,1

If you want to, then you can change the letter set in Math dictionary to the following.

This is the best fit of parameters to the best of my knowledge after my analysis having played several games of Math Scrabble.

(1) This reduces the total number of tiles to 98 (excluding two blank tiles) instead of 117 (excluding three blank tiles?). (2) This removes useless mathematical symbols like >, < and ∞. Don't you think that ∞ cannot be part of any meaningful mathematical equation? Don't you think that > and < will allow players to form with wild mathematical equations at player's own wishes instead of restricting with possibilities? (3) This reduces average tile value for each letter. Like conventional English Scrabble, there are limited number of tiles with tile value > 5. (4) This increases tile value of ⁼ letter from 0 to 1. Every tile is worth at least one point. (5) ∛ or mod may be better replacements for ∜ but I do not change with ∜ because the Math dictionary created by Jouni Tolonen contains words containing ∜ (although only ∜16⁼2 and 2⁼∜16) but not ∛ or mod.

Zitat von Scotty im Beitrag Unfixed bugs in Scrabble3D application.Sure, ideally you get in contact with the original author. Otherwise I would take your "much better version" opinion without hesitation if there is another user's word. In case of math.dic it's not too difficult to check myself.

Replacing the Math dictionary with a robust letter set is a quick way of removing the major flaw without having the need to create entire long Math dictionary again by making use of computer program. And computer will take long time to play each turn with long Math dictionary with board sizes > 21×21.

Loading a long Math dictionary every time the Scrabble3D application restarts will take a long time but not verifying the presence of each word once they are placed on the Math Scrabble board during each of player's turns and displaying their meaning and category, if not general category. Even a Math dictionary allowing mathematical equations upto length 11 can be very long, assuming that there are 10 tiles in rack and even not allowing connecting two Math Scrabble tiles that are already present in Math Scrabble board.

Even then multiplication by 0 and 1 should not be allowed with numbers greater than 4 digits because there are 8 forms of mathematical equations possible for each multiplication math equation with 0 and 1 only (when computer program runs for addition and multiplication only and not for subtraction and division): A×B=C, B×A=C, C÷A=B, C÷B=A, C=A×B, C=B×A, B=C÷A, A=C÷B. If an intelligent parsing algorithm for playing the best mathematical equation from the Math Scrabble rack by making use of one or more Math Scrabble tiles that are already present in the Math Scrabble board and checking their correctness along with displaying their meaning and category, if not general category, then there is no need to create an exhaustive Math dictionary with endless number of mathematical equations.

This applies only to Math dictionary in which number of mathematical equations are unlimited and it does not apply to other language dictionaries. Instead of the classical Math Scrabble letter set that is listed above, that intelligent parsing above that is mentioned above can also be used for fractional tiles in Equate style Math Scrabble, or equations of Set Theory, Mathematical Logic, etc.