Skip to content

Commit 07fe1bc

Browse files
committed
Improve performance by delaying solution generation
1 parent ebcff11 commit 07fe1bc

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/App.vue

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ const nextStep = ref('')
1818
const steps = reactive([])
1919
const showRules = ref(false)
2020
const hintIndex = ref(0)
21+
const ready = ref(false)
22+
let readyTimer = null
2123
2224
startNewGame()
2325
2426
const isCompleteStep = (step) => step.length === 3 && step.every(value => value)
2527
26-
const solution = computed(() => solve(startNumbers, target))
28+
const solution = computed(() => ready.value ? solve(startNumbers, target) : [target.value])
2729
const stillRemaining = computed(() => numbersRemaining(startNumbers, steps.filter(isCompleteStep)))
2830
const closestDistance = computed(() => distance(solution.value[0], target))
2931
const targetReached = computed(() => stillRemaining.value.some(num => distance(num, target) === closestDistance.value))
@@ -157,6 +159,7 @@ function pickOne(arr) {
157159
function startNewGame() {
158160
reset()
159161
hintIndex.value = 0
162+
ready.value = false
160163
161164
const nums = []
162165
@@ -180,6 +183,12 @@ function startNewGame() {
180183
startNumbers.value = nums
181184
182185
target.value = Math.floor(Math.random() * 900 + 100)
186+
187+
clearTimeout(readyTimer)
188+
189+
readyTimer = setTimeout(() => {
190+
ready.value = true
191+
}, DURATION * 1.25)
183192
}
184193
185194
function reset() {
@@ -263,7 +272,7 @@ function showHint() {
263272
</BaseCard>
264273
<BaseCard>
265274
<div class="bottom-button-bar">
266-
<BaseButton :disabled="hintIndex === allHints.length" @click="showHint">
275+
<BaseButton :disabled="!ready || hintIndex === allHints.length" @click="showHint">
267276
Show hint
268277
</BaseButton>
269278
<BaseButton @click="showRules = true">

0 commit comments

Comments
 (0)