Commit Graph

15 Commits

Author SHA1 Message Date
Giancarmine Salucci
38f675eda5 fix(SCOPONE-0011): complete iteration 0 - tune ai and ui 2026-04-10 23:29:51 +02:00
Giancarmine Salucci
c107489b0a feat(SCOPONE-0010): improve capture pacing and settings 2026-04-09 23:00:59 +02:00
Giancarmine Salucci
77ab1f43a6 feat(SCOPONE-0009) improve ai, dealer, apparigliare e sparigliare 2026-04-09 22:30:27 +02:00
Giancarmine Salucci
d0a44d295a feat(SCOPONE-0009): complete iteration 0 dealer AI 2026-04-08 21:50:40 +02:00
Giancarmine Salucci
5b360bf191 fix(SCOPONE-0008): complete iteration 1 remove ai lag 2026-04-02 20:51:43 +02:00
Giancarmine Salucci
747da35190 feat(SCOPONE-0008): complete iteration 0 improve ai rules 2026-04-02 20:10:55 +02:00
Giancarmine Salucci
30897c5eb3 chore(SCOPONE-0006): complete iteration 0 — fix scopa rule and improve AI intelligence 2026-04-01 09:44:15 +02:00
Giancarmine Salucci
185f7c36c7 perf(ai): optimize AI decision speed — fast clone, reduced search, time budget
SCOPONE-0005 iteration 8

- Replace JSON.parse/stringify deepClone with hand-written cloneState() (~10-50x faster)
- Export cloneState from engine.ts, use in applyMove and generateSamples
- Master: reduce samples 24→10 (14 endgame), depth 8→6 (8 endgame)
- Add 1.5s time budget with early termination in masterMove and alphaBeta
- evaluateFast(): single-pass pile scan, zero array allocations at leaf nodes
- Simplified move ordering in alphaBeta (captures-first, no per-move eval)
- Skip countScopaThreats when tableSum >= 11 (impossible to clear)
- Remove unused calcPrimiera import from ai.ts
2026-03-31 23:34:22 +02:00
Giancarmine Salucci
a045efd798 feat(ai): improve all difficulty levels with race tracking, probabilistic threats, deeper search
SCOPONE-0005 iteration 7

Beginner:
- Random chance 15%→8%, noise ±40%→±25%
- Hard settebello protection, anti-scopa table management

Advanced:
- Race-aware scoring: adapt priorities per scoring category
- Partner scopa setup: +70 bonus for clearable table before partner
- Probabilistic two-opponent threat assessment (hypergeometric)
- Stronger anti-scopa penalties across all table states

Master:
- Samples 16→24 (28 endgame), exact solve ≤6 cards
- Depth 6→8 (10 endgame, full depth ≤6 cards)
- Better evaluation: scope 350, settebello 400, table awareness
- Improved move ordering: settebello + anti-scopa factors
2026-03-31 23:26:42 +02:00
Giancarmine Salucci
0b1c7f6386 feat(SCOPONE-0005): iteration 6 — rewrite AI with team cooperation and deeper search 2026-03-31 23:15:45 +02:00
Giancarmine Salucci
0a030d0f01 feat(SCOPONE-0005): complete iteration 0 — AI mastery levels, score bar fix, difficulty selection 2026-03-31 22:22:24 +02:00
Giancarmine Salucci
54a55b9269 Merge branch 'feature/SCOPONE-0003_choose_capture_target' into feature/SCOPONE-0002_rotate_round_starter 2026-03-31 21:07:44 +02:00
Giancarmine Salucci
9524161481 feat(SCOPONE-0003): allow player to choose capture target
- findCaptures() returns each direct match as separate option plus sum subsets
- highlightMultipleCaptures() uses distinct colors per capture option
- clicking highlighted table cards confirms that option's capture
2026-03-31 19:59:38 +02:00
Giancarmine Salucci
529b93e662 feat(SCOPONE-0002): rotate starting player clockwise each round 2026-03-31 19:31:00 +02:00
Giancarmine Salucci
3d1f3e5eb4 chore: initial commit 2026-03-31 18:38:34 +02:00