I would recommend enabling Turbo Mode while the game is loading to reduce the wait. Rules: To play this game, input a Pokemon such that the first letter of the Pokemon's name matches the first letter of the previous Pokemon's name, or such that the final letter of the name matches the previous Pokemon's name. A single Pokemon can be used only once between both players. An otherwise correct Pokemon may be declined if they have been used before. The first player to run out of time loses the game, with their opponent being the winner. A stalemated player loses. If there are no legal Pokemon to submit, that player immediately loses, regardless of how much time they have remaining. This is because having no legal moves would result in a loss anyway, as they cannot continue the game, so in this situation, the player loses before their time runs out to avoid unnecessary waiting. This project was meant to be used as a two-player game, where both players take turns on one device. However, I have included a computer (which, as someone who knows almost nothing about Pokemon, is very difficult to beat!) It's probably easy to beat, and I'm just bad. Here is what the input interface means: ⬜ / ⬛ means that it is that player's turn, and they have not entered anything yet. ✖ means that the player has entered something, but it is not a valid submission. ✅ means that the player has entered something valid and it is now the next player's turn. ▒ is the cursor. This indicates the area where you type. (n) The number in parentheses shows the engine's input. The built-in engine automatically evaluates the state of the game and shows the number of Pokemon that would be accepted. Keep in mind that this includes both accessible Pokemon (ones that can be typed) and inaccessible ones (like ones that contain symbols.) [n] The player's timer. Both timers are shown at the bottom of the screen, but the player who is on-move has their timer shown at the end of their input line. There are a few options. Here's what they do: Auto White: The built-in computer will play white for you. Auto Black: The built-in computer will play black for you. Assist: This shows you what the computer is thinking. CPU: This lets you change the CPU strength (how well it plays.) There are three levels, easy, difficult, and extreme. Easy is a bit difficult, difficult is quite difficult indeed, and extreme is nearly impossible, if not completely impossible, to beat! Game: You can pick the time control of the game, which is how much time each player has. You can choose slow (20 minutes), rapid (10 minutes), fast (5 minutes) and hectic (1 minute). You can have both Auto White and Auto Black on to make the engine play against itself, have one enabled to play against the computer, and have neither enabled to play against someone else.
I did not write every single Pokemon into a list. Thanks to https://pokemondb.net/tools/text-list for their Pokemon list. Here is some more information on how the computer difficulties work: Easy waits until the engine has fully evaluated the game, and responds with a random legal Pokemon once it is done. - Its weakness is that submitting its choice takes a lot of time. However, it does get slightly stronger as the game progresses. Difficult waits until the engine finds 15 legal Pokemon, then plays one of the 15 it found at random. - Its weakness is that it can be stumped very easily if there are fewer than 15 available Pokemon to choose from. Extreme plays the first legal Pokemon the engine finds. - Its weakness is that it is very predictable. The timers will sometimes look like they are behaving weirdly. This is because they live update every second, but individual fractions of a second are not changed until the end of a turn. So, if you use 2.9 seconds to submit, your timer will tick down 2 seconds until the end of your turn, where an additional 0.9 seconds will be lost upon submission to compensate for the extra time. This means that you could still have time on your clock, but lose after your submission (e.g. if you spent 0.7 seconds and had 0.4 seconds left on your clock right before submission.)