feat: add session score display and refactor Jenkinsfile

Score tracks X wins, O wins, draws in-memory for current session.
Jenkinsfile rewritten as scripted pipeline with named execute functions
and per-branch strategy closures (mirrors BasePipeline pattern).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 14:53:42 +07:00
parent 9c5243290d
commit 474545b24e
4 changed files with 97 additions and 36 deletions

View File

@@ -6,9 +6,13 @@
];
let board, current, over;
const score = { X: 0, O: 0, draw: 0 };
const cells = document.querySelectorAll('.cell');
const status = document.getElementById('status');
const resetBtn = document.getElementById('reset');
const scoreX = document.getElementById('score-x');
const scoreO = document.getElementById('score-o');
const scoreDraw = document.getElementById('score-draw');
function init() {
board = Array(9).fill(null);
@@ -43,8 +47,12 @@
if (result) {
over = true;
if (result.draw) {
score.draw++;
scoreDraw.textContent = score.draw;
status.textContent = "It's a draw!";
} else {
score[result.winner]++;
(result.winner === 'X' ? scoreX : scoreO).textContent = score[result.winner];
result.line.forEach(i => cells[i].classList.add('winner'));
status.textContent = `Player ${result.winner} wins!`;
}