diff --git a/index.html b/index.html index 4eac06f..21cf56f 100644 --- a/index.html +++ b/index.html @@ -589,7 +589,12 @@ function ticMove(i){ const lines = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]]; for(const [a,b,c] of lines){ if(gameState.board[a]&&gameState.board[a]===gameState.board[b]&&gameState.board[a]===gameState.board[c]){ - gameState.over = true; gameState.winner = gameState.board[a]; break; + gameState.over = true; gameState.winner = gameState.board[a]; + // Award star for winning + const users = LS('users') || []; + const uidx = users.findIndex(u => u.id === uid()); + if (uidx >= 0 && !gameState.starGiven) { users[uidx].stars = (users[uidx].stars || 0) + 1; users[uidx].gamesWon = (users[uidx].gamesWon || 0) + 1; SS('users', users); currentUser = users[uidx]; gameState.starGiven = true; } + break; } } if(!gameState.over && gameState.board.every(c=>c)){ gameState.over = true; gameState.winner = 'draw'; } @@ -606,7 +611,7 @@ function renderGuessNumber(){ let h = `
Осталось попыток: ${g.max - g.attempts}
`; if(g.won){ - h += `🎉 Угадал! Это ${g.number}!
За ${g.attempts} попыток
`; + h += `🎉 Угадал! Это ${g.number}!
За ${g.attempts} попыток
${g.attempts<=5?'+2 ⭐ в рейтинг!
':''}`; h += ''; } else if(g.attempts >= g.max){ h += `Не угадал! Это было ${g.number}
`; @@ -622,7 +627,13 @@ function doGuess(){ const n = +document.getElementById('guessInput').value; if(!n||n<1||n>100)return; gameState.attempts++; - if(n === gameState.number){ gameState.won = true; renderGuessNumber(); return } + if(n === gameState.number){ gameState.won = true; + if(gameState.attempts <= 5) { + const users = LS('users') || []; + const idx = users.findIndex(u => u.id === uid()); + if(idx >= 0) { users[idx].stars = (users[idx].stars || 0) + 2; SS('users', users); currentUser = users[idx]; } + } + renderGuessNumber(); return } const hint = n < gameState.number ? '📈 Больше!' : '📉 Меньше!'; const tempDiv = document.createElement('div'); tempDiv.innerHTML = `${n} — ${hint}
${g.score} / ${g.questions.length}
${g.score>=6?'👑 Ты знаток спорта!':g.score>=4?'👍 Неплохо!':'📚 Учи матчасть!'}
${g.score} / ${g.questions.length}
${earned>0?`+${earned} ⭐ в рейтинг!
`:''}${g.score>=6?'👑 Ты знаток спорта!':g.score>=4?'👍 Неплохо!':'📚 Учи матчасть!'}
${q.q}
`; q.a.forEach((ans,i)=>{ @@ -796,7 +820,7 @@ function renderRanking(){ const users=LS('users')||[]; const sorted=[...users].filter(u=>u.stars>0).sort((a,b)=>b.stars-a.stars).slice(0,5); if(!sorted.length){el.innerHTML='Пока никто не проголосовал
';return} - el.innerHTML=sorted.map((u,i)=>`