1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1" name="viewport">
<title>BlankPlays</title>
<link rel="icon" href="/icon.png">
<link rel="stylesheet" href="/index.css?v=1">
<script src="/blankplays.js?v=5" id="main-script" async></script>
</head>
<body>
<script blocking="render">
// this is a separate inline script to prevent a
// light-mode flash when loading the page
window.darkMode = localStorage.getItem('color-mode') === 'dark'
|| (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);
if (window.darkMode) {
document.body.classList.add('dark-mode');
}
</script>
<noscript>
<b>You must enable JavaScript in your browser to do these puzzles.</b><br>
</noscript>
<p id="no-grid" style="font-weight:bold;">
Your browser is too old. You’ll have to update to a newer version to
do these puzzles.
</p>
<div class="links">
<a href="#" id="report-issue-button">Report an issue</a> ·
<a href="https://github.com/pommicket/blankplays" target="_blank">Code</a> ·
<a href="#" id="credits-button">Credits</a> ·
<a href="#" id="how-to-play-button">How to Play</a>
</div>
<h2>BlankPlays</h2>
Find all possible plays with a single blank! Daily challenge #<span id="challenge-num">(loading)</span> <a href="#" id="today"></a><br>
<label>Lexicon: <select id="lexicon">
<option value="nwl23">🇨🇦🇺🇸NWL23</option>
<option value="csw24">🇬🇧 CSW24</option>
</select></label>
<label><input type="checkbox" id="skip-2s"> Skip 2’s</label>
<label><input type="checkbox" id="skip-3s"> Skip 3’s</label>
<label><input type="checkbox" id="skip-4s"> Skip 4’s</label>
<label><input type="radio" name="color-mode" id="light-mode">☀️ Light</label>
<label><input type="radio" name="color-mode" id="dark-mode">🌙 Dark</label>
<button id="submit">All done!</button>
<div id="board"></div>
<div id="select-heading" style="display: none;">
Select which letters can go here:
</div>
<div id="place-heading">
Choose a letter and click where it goes:
</div>
<div id="select-container"></div>
<div id="stats" style="display:none;">
Score: <progress id="score-meter" max="100"></progress>
<span id="score-ratio"><span id="score-span"></span>/100</span><br>
Correct plays identified: <span id="correct-plays"></span><br>
Incorrect plays guessed: <span id="incorrect-plays"></span><br>
Missed plays: <span id="missed-plays"></span><br>
<textarea id="share" cols="50" rows="3"></textarea><br>
<button id="share-copy">Copy to clipboard</button>
</div>
<div id="past-container">
<b>Past challenges:</b>
<ul id="past"></ul>
</div>
<dialog id="how-to-play">
<h3>How to Play</h3>
<p>
BlankPlays is a puzzle where you try to find all legal plays
from a given Scrabble™* position, where the only tile
on your rack is a single blank.
</p>
<p>
To begin, click/tap on a square on the board that is highlighted with a gray outline.
Then click/tap on the tiles below the board, or press the corresponding keys on your keyboard,
to select which letters you think can go in that position.
You can also start by clicking a tile at the bottom of the board, then click on all positions
where you think it can go.
</p>
<p>
If you think no letters play on a square, you can right-click it, or use the ø tile below the board,
to mark it in red (this doesn’t affect scoring but might help you keep track of things).
You can also select the square and press the Tab key.
</p>
<p>
When you’re done, click the “All done!” button. This will show you which plays you missed,
which of your guesses were incorrect (form illegal words), and which were correct.
You’ll get a score out of 100 based on how well you did.
</p>
<p>
By default, squares which only allow for 2 letter words are disabled.
You can change this by turning off the “Skip 2’s” checkbox,
or go even further and disable squares which only make 3/4 letter words
with the “Skip 3/4’s” checkboxes.
</p>
<p>
You can select the lexicon (word list) to use with the little selector at the top.
NWL is typically used in Canada and the United States,
and CSW is used in the rest of the English-speaking world.
</p>
<p>
<small>* BlankPlays is not an official or approved Scrabble product and is not associated
with Hasbro or Mattel in any way.</small>
</p>
<form method="dialog">
<button>OK</button>
</form>
</dialog>
<dialog id="credits">
<h3>Credits</h3>
<p>
These game positions were generated using the
<a href="https://github.com/domino14/macondo" target="_blank">Macondo</a>
program’s <code>autoplay</code> feature, courtesy of César del Solar.
</p>
<p>
The NWL lexicon is by the North American Scrabble Players’ Association (NASPA),
and the CSW lexicon is by HarperCollins.
</p>
<p>
Design/programming by pommicket.
</p>
<form method="dialog">
<button>OK</button>
</form>
</dialog>
<dialog id="report-issue">
<h3>Report an issue</h3>
<p>
Found something that can be fixed or improved? Please let me know!
You can report an issue on the
<a href="https://github.com/pommicket/blankplays/issues/new" target="_blank">GitHub page</a>
or by sending an e-mail to
<a href="mailto:pommicket%40pommicket.com" target="_blank">pommicket@pommicket.com</a>.
</p>
<form method="dialog">
<button>OK</button>
</form>
</dialog>
</body>
</html>
|