@@ -18,12 +18,14 @@ const nextStep = ref('')
18
18
const steps = reactive ([])
19
19
const showRules = ref (false )
20
20
const hintIndex = ref (0 )
21
+ const ready = ref (false )
22
+ let readyTimer = null
21
23
22
24
startNewGame ()
23
25
24
26
const isCompleteStep = (step ) => step .length === 3 && step .every (value => value)
25
27
26
- const solution = computed (() => solve (startNumbers, target))
28
+ const solution = computed (() => ready . value ? solve (startNumbers, target) : [ target . value ] )
27
29
const stillRemaining = computed (() => numbersRemaining (startNumbers, steps .filter (isCompleteStep)))
28
30
const closestDistance = computed (() => distance (solution .value [0 ], target))
29
31
const targetReached = computed (() => stillRemaining .value .some (num => distance (num, target) === closestDistance .value ))
@@ -157,6 +159,7 @@ function pickOne(arr) {
157
159
function startNewGame () {
158
160
reset ()
159
161
hintIndex .value = 0
162
+ ready .value = false
160
163
161
164
const nums = []
162
165
@@ -180,6 +183,12 @@ function startNewGame() {
180
183
startNumbers .value = nums
181
184
182
185
target .value = Math .floor (Math .random () * 900 + 100 )
186
+
187
+ clearTimeout (readyTimer)
188
+
189
+ readyTimer = setTimeout (() => {
190
+ ready .value = true
191
+ }, DURATION * 1.25 )
183
192
}
184
193
185
194
function reset () {
@@ -263,7 +272,7 @@ function showHint() {
263
272
</BaseCard >
264
273
<BaseCard >
265
274
<div class =" bottom-button-bar" >
266
- <BaseButton :disabled =" hintIndex === allHints.length" @click =" showHint" >
275
+ <BaseButton :disabled =" !ready || hintIndex === allHints.length" @click =" showHint" >
267
276
Show hint
268
277
</BaseButton >
269
278
<BaseButton @click =" showRules = true" >
0 commit comments