Bocce più vere (lavoro di Codex): mira libera sul campo o nel dettaglio del pallino, forza regolabile senza tempismo, urti fra masse diverse, tira chi non ha il punto, distanze in centimetri, suoni di rotolamento e urto, comandi anche a pulsanti e tastiera; test aggiornati alle nuove regole
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
@@ -14,10 +14,11 @@ function throwTo(c, u) {
|
||||
assert.ok(release(c));
|
||||
}
|
||||
|
||||
test('la forza sale e scende: a metà giro è piena, a giro finito torna a zero', () => {
|
||||
test('la forza sale finché si tiene premuto, fino al massimo: niente tempismo da azzeccare', () => {
|
||||
assert.equal(powerAt(0), 0);
|
||||
assert.ok(Math.abs(powerAt(SWING / 2) - 1) < 1e-9);
|
||||
assert.ok(powerAt(SWING) < 1e-9);
|
||||
assert.ok(Math.abs(powerAt(SWING / 2) - 0.5) < 1e-9);
|
||||
assert.equal(powerAt(SWING), 1);
|
||||
assert.equal(powerAt(SWING * 3), 1, 'oltre il massimo resta piena, non ricomincia');
|
||||
});
|
||||
|
||||
test('una boccia va lontano quanto dice la forza, verso il pallino', () => {
|
||||
@@ -64,6 +65,7 @@ test('una mano intera: tre bocce a testa, a turno, poi il risultato', () => {
|
||||
assert.equal(c.balls.length, BALLS * 2);
|
||||
assert.ok(['player', 'cpu'].includes(c.result.winner));
|
||||
assert.equal(press(c), false, 'a mano finita non si tira più');
|
||||
assert.ok(['player', 'cpu'].includes(c.result.winner) || c.result.winner === null);
|
||||
});
|
||||
|
||||
test('la prospettiva: lontano è più in alto e più piccolo, al centro della pista', () => {
|
||||
@@ -95,8 +97,9 @@ test('al pallaio: Mariano sfida, la mano si gioca nel primo piano; vincere vale
|
||||
}
|
||||
assert.equal(c.step, 'result');
|
||||
c.result = { winner: 'player', points: 1 };
|
||||
for (let i = 0; i < 20 && g.closeup; i++) g.update(0.25);
|
||||
assert.equal(g.closeup, null, 'il risultato si chiude da solo');
|
||||
for (let i = 0; i < 20; i++) g.update(0.25);
|
||||
assert.equal(g.closeup, c, 'il risultato resta a schermo finché non si torna al pallaio');
|
||||
assert.ok(g.closeupClose());
|
||||
const after = settle(g).map(s => `${s.who}: ${s.text}`);
|
||||
assert.ok(after.includes('mariano: Hai vinto, ti ci porto!'));
|
||||
assert.ok(g.state.flags.bocce_vinte);
|
||||
|
||||
Reference in New Issue
Block a user