TSK is an R Shiny app developed by Toh Weibin. It is designed to allow:
TSK uses the Collins Official Scrabble Words 2022 © HarperCollins Publishers 2022.
Weibin would like to thank Scrabble Singapore, especially Andy Kurnia and Ricky Purnomo for their valuable comments and feedback. The TSK icon is modified from Bag O Tiles Icons by barkerbaggies and shared under a CC Attribution-Share Alike 4.0 license. TSK is free to use, but you can show appreciation by making a donation to your preferred cause. Suggested donation portals include GlobalGiving, Give.asia or Giving.sg.
Q: Why did you develop this?
A: Compiling tournament statistics can be a laborious task, and I wanted to create something to aggregate the data more efficiently and present it more attractively. This is just an amateur coding project to achieve that objective.
Q: Are you aware of cross-tables and randomracer? What differentiates this from them?
A: Yes! I have been a longtime user of Seth Lipkin's cross-tables. I found out about Joshua Castellano's fantastic randomracer effort after I had developed something which could read .gcg files and spit out some output (a predecessor of this app). This is more of a tool that allows one to quickly visualise tournament and game statistics.
Q: Does TSK store the games that I upload?
A: Not unless you upload them to a collection (see next question). If you want to share your games with the wider public, you may upload them to the collection "public", which is open to all.
Q: Could you explain the "collections" feature?
A: The collections feature allows games to be shared with a wider audience. The functionalities are as follows:
Q: How do tags work?
A: The tagging feature allows one to tag games within a collection. This is useful to differentiate between games within a collection, for example, betweeen the different rounds of a multi-stage tournament. To tag a game, visit the 'Games' tab, select the games you wish to tag, typing in the tag and clicking on 'Set Tag'.
Tags are useful as you can load the statistics for the tagged games specifically keying in the collection name and tag before clicking on 'View collection'. You can also filter the games in a full collection by the tag, under the 'Games' tab. The tag functionality allows one to search for a string that matches any part of the tag, e.g. just searching for the tag "Q" will find all tags containing "Q".
Q: How does the team function work?
A: The team function is designed to allow visual comparisons both within and across teams. To add players to a team, simply select their names in the players' list of the "Player/Team" tab (to select >1 player, ensure that "Allow multiple player selection" is checked), type the team's name in the "Name" field and click "Set Team Name". You may also use the same button to rename a selected team. Feel free to explore!
Q: My game files don't seem to be listed in the correct order in the "Games" tab. How can I fix that?
A: For simplicity, the character strings containing embedded numbers are sorted such that the numbers are numerically sorted rather than sorted by character value. This is similar to how Windows Explorer sorts filenames i.e. it will sort "1", "2", "3"... "10, "11" in that order, rather than "1", "10", "11", "2", "3"... please adapt accordingly!
Q: I don't see my game recorded in the games played under my name in the "Player/Team" tab, or in the list of games (under the "Games" tab). What gives?
A: TSK should display warning/error messages if there are issues with files, e.g. if they are incomplete, if the typical .gcg headers are missing, if file size exceeds size of typical .gcg (arbitrarily defined as 32768 bytes) etc. Do also note that TSK is sensitive to player naming, i.e. you should (and it is good practice to) name your players consistently for easy identification. Nevertheless, inadvertent extra spaces are removed from player names, and there is an option to set player names using the "Set Player Name" button.
If your player names are spelled accurately and are consistent but your game is still not shown, please submit a bug report and attach the missing file.
Q: I can't see some/any words in the word cloud (in the "Player/Team" tab). What happened?
A: It might have to do with the size of the words - try adjusting in the "Options" box. If you're still facing problems, you can take a screenshot of it, and submit a bug report with the screenshot, the games you used, as well as information on your device and browser.
Q: Could you incorporate simulations or other Quackle analysis into your app?
A: Not really - the purpose of this is to extract as much useful information as is possible from the machine readable .gcg format in a lightweight manner. This app doesn't have simulation capabilities, which I'm leaving to the more skilled coders among us. Nevertheless, it may be possible to incorporate information from Speedy/Championship Player reports into the app in a future update, but those would have to be generated separately. It is not my priority at the moment.
Q: I have a feature request. How do I contact you?
A: You can submit a suggestion. Generally, I'd like to include features which provide the maximum utility in comparing player performances. Questions of a more theoretical nature (e.g. What percent of games are won with no blanks drawn? How many % of games will a person win on average if he scores x? How many moves on average does it take before the first triple word score is reached?) may be considered as well, but are not an immediate priority. The reason for this is that these statistics are less immediately relevant when comparing across players. Please also know that I am not a coding or software professional, so there are things that will be difficult for me to do (though I can try).
Q: I would like to report a bug. How do I contact you?
A: Great! I'm always trying to make the app better. You can submit a bug report with the screenshots of the error, and/or the game(s) that caused the error. You can isolate the game(s) that caused the error if you are sensitive with sharing them.
Definitions used
Most of the metrics used should be self-explanatory. Where there may be doubt, I've explained the terms used in the table below.
Location | Item | Definition |
---|---|---|
"Player/Team" tab; "Stats" | Triple-triples | List of triple-triples played, including non-bingo triple-triples. |
"Player/Team" tab; "Tiles" | Tile count in tile chart | Based on tiles played, i.e. excluding tiles remaining and tiles exchanged. |
"Player/Team" tab; "Turnover" | Average turnover | Total number of tiles played (either on the board or exchanged) divided by number of moves. Unchallenged phonies are included in count of tiles played; challenged phonies count as zero tiles played. |
"Player/Team" tab; "Turnover" | Average length of main word formed | Total length of all main words played, divided by number of main words played (i.e. excluding passes, exchanges or challenged phonies). Unchallenged phonies are considered as words played; challenged phonies count as zero word length. |
"Tournament" tab; "Streakiness" | How "streaky" a player is | Number from 0 to 1 - 0 means no streaks (alternates between winning and losing); 1 means full streak (either win all or lose all). Calculated by taking 1 minus the (number of streaks minus 1) divided by the (number of rounds played minus 1). |
"Tournament" tab; Mean Opp Rank | Average rank of opponent played during tournament | The rank of the opponent is computed prior to the match. Players who have a lower mean opponent rank would likely have faced "stronger" opposition, as their opponents were ranked higher. |
"Tournament" tab; Median Rank - Final Rank | How far away a player finished from his median ranking over the tournament | Positive number means that a player finished above his median ranking - could be due to a winning streak towards the end. Negative number means that a player finished below his median ranking. |
"Games" tab; Table of games | Close1 | Absolute of the sum of the mean score differences before and after a player's turn (excluding passes and lost turns due to challenge), used as an estimate of how close a game is. To be used together with Close2. |
"Games" tab; Table of games | Close2 | Square root of the sum of the squares of the mean score differences before and after a player's turn, used as an estimate of how close a game is. To be used together with Close1. |
"Games" tab; Table of games | Disco words | List of plays through disconnected letters. |
"Games" tab; Move display | Remaining letters | Based on the unseen tiles from the point of view of the player on turn. If no player is on turn (i.e. at the end of the game), it will show the remaining tiles of both players and what is in the bag (if any). |
"Games" tab; Table of moves | Score adj |
This reflects the point adjustments which arise from 5-point challenges*, challenged phonies and endgame adjustments (add or subtract tile scores).
*See known issue #2. |
Known issues