<commit_before>

/* Major problems that happened after my design
   More on this further below at actual functions

A. The algorthim for matching words -only- checked at last word played.
   This caused a problem when I missed the line in specifcations 
   where it gives a different prompt to the human.
B. The algorthim only orginally checked if the word was there not how many times.
   Silly mistake.

These two problems caused some grief! 
There were some small others along the way.
*/




/*


Doing this over 
1. I would of made only 1 player class 
human and computer would of been private classes within.
When I would create a player class I define it as human or computer
Then I could of made instances where computer can play against computer.

2. The player class would of used heavy polymorphism and the rest of the
   program would not even know it was dealing with a computer or player.

3.  I would of made the interfaces cleaner, my design had them clean
But as problems came up I had to add more methods and more methods.

4.  Rethink my word matching algorthim.
Maybe use hash tables(don't really know how to do this)
Or regular expressions would of been better.
In very large dictionary files it is slower.
It isn't terrible but could be better.

5.  Spend more time in design before I started programming.
    I started writing this fairly quickly after it was assigned.
    I was afraid of how long it would of taken me.
    There were some major design flaws I ran into during it.
    The addition of a slew more methods from the design shows this.

6.  I believe that I really could of made it this simple
    If I had forseen all the problems!

<commit_msg>Fixed Grammar<commit_after>

/* Major problems that happened after my design
   More on this further below at actual functions

A. The algorthim for matching words -only- checked at last word played.
   This caused a problem when I missed the line in specifcations 
   where it gives a different prompt to the human.
B. The algorthim only orginally checked if the word was there not how many times.
   Silly mistake.

These two problems caused some grief! 
There were some small others along the way.
*/




/*


Doing this over 
1. I would of made only 1 player class 
human and computer would of been private classes within.
When I would create a player class I define it as human or computer
Then I could have made instances where computer can play against computer.

2. The player class would of used heavy polymorphism and the rest of the
   program would not even know it was dealing with a computer or player.

3.  I would of made the interfaces cleaner, my design had them clean
But as problems came up I had to add more methods and more methods.

4.  Rethink my word matching algorthim.
Maybe use hash tables(don't really know how to do this)
Or regular expressions would of been better.
In very large dictionary files it is slower.
It isn't terrible but could be better.

5.  Spend more time in design before I started programming.
    I started writing this fairly quickly after it was assigned.
    I was afraid of how long it would of taken me.
    There were some major design flaws I ran into during it.
    The addition of a slew more methods from the design shows this.

6.  I believe that I really could have made it this simple
    If I had forseen all the problems!


{'fraction_non_alphanumeric': 0.026112759643916916, 'fraction_numerical': 0.004154302670623145, 'mean_word_length': 3.3893229166666665, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7072804', 'n_tokens_mistral': 863, 'n_tokens_neox': 829, 'n_words': 583}