Skip to content

Commit e591fb5

Browse files
authored
Merge pull request #281 from mcdemarco/develop
Test and fix for turn completion issue
2 parents 891c141 + 6b03975 commit e591fb5

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/games/frogger.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1320,10 +1320,16 @@ export class FroggerGame extends GameBase {
13201320
result.valid = false;
13211321
result.message = i18next.t("apgames:validation.frogger.INVALID_MARKET_CARD");
13221322
return result;
1323+
} else {
1324+
// If we have a card, a move back is complete.
1325+
complete = true;
13231326
}
13241327
} else if (subIFM.card) {
13251328
// When backing up to start you can pick any market card.
13261329
// We already checked it was in the market.
1330+
1331+
// If we have a card, a move back is complete.
1332+
complete = true;
13271333
} else if (!complete && cloned.market.length > 0) {
13281334
// No card. May be a partial move, or can back up without a card.
13291335
result.valid = true;
@@ -1374,7 +1380,7 @@ export class FroggerGame extends GameBase {
13741380

13751381
//Really really done.
13761382
result.valid = true;
1377-
result.complete = allcomplete ? 1 : 0;
1383+
result.complete = (allcomplete && moves.length === this.nummoves) ? 1 : 0;
13781384
result.message = i18next.t("apgames:validation._general.VALID_MOVE");
13791385
return result;
13801386
}

test/games/frogger.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,14 @@ describe("Frogger", () => {
127127
expect(g.validateMove("8YK:a3-c2/c2-b2,1S!/b2-a3,7SK/")).to.have.deep.property("valid", false); //Can't refill.
128128
expect(g.validateMove("8YK:a3-c2/c2-b2,1S/b2-a3,7SK/")).to.have.deep.property("valid", true); //A legal sequence.
129129
expect(g.validateMove("8YK:a3-c2/c2-b2,1S/b2-a3,7SK/")).to.have.deep.property("complete", 1); //A legal sequence, for completeness.
130+
expect(g.validateMove("8YK:a3-c2/c2-b2,1S/b2-a3,7SK")).to.have.deep.property("complete", 1); //A legal sequence, for completeness.
130131
expect(g.validateMove("8YK:a3-c2/c2-b2,1S/b2-a3")).to.have.deep.property("complete", 0); //A legal sequence, for completeness.
131132
expect(g.validateMove("8YK:a3-c2/c2-b2,1S/b2-")).to.have.deep.property("complete", -1); //A legal sequence, for completeness.
133+
expect(g.validateMove("8YK:a3-c2/c2-b2,1S/")).to.have.deep.property("complete", 0); //A legal sequence, for completeness.
132134
expect(g.validateMove("8YK:a3-c2/c2-b2,1S")).to.have.deep.property("complete", 0); //A legal sequence, for completeness.
133135
expect(g.validateMove("8YK:a3-c2/c2-b2")).to.have.deep.property("complete", 0); //A legal sequence, for completeness.
134136
expect(g.validateMove("8YK:a3-c2/c2-")).to.have.deep.property("complete", -1); //A legal sequence, for completeness.
137+
expect(g.validateMove("8YK:a3-c2/")).to.have.deep.property("complete", 0); //A legal sequence, for completeness.
135138
expect(g.validateMove("8YK:a3-c2")).to.have.deep.property("complete", 0); //A legal sequence, for completeness.
136139
expect(g.validateMove("8YK:a3-")).to.have.deep.property("complete", -1); //A legal sequence, for completeness.
137140
expect(g.validateMove("8YK:")).to.have.deep.property("complete", -1); //A legal sequence, for completeness.
@@ -187,6 +190,9 @@ describe("Frogger", () => {
187190
expect(g.validateMove("1V//")).to.have.deep.property("valid", true); //A legal sequence (market card).
188191
expect(g.validateMove("1V/")).to.have.deep.property("valid", true); //A legal sequence (market card).
189192
expect(g.validateMove("1V")).to.have.deep.property("valid", true); //A legal sequence (market card).
193+
expect(g.validateMove("1V//")).to.have.deep.property("complete", 1); //A legal sequence (market card).
194+
expect(g.validateMove("1V/")).to.have.deep.property("complete", 1); //A legal sequence (market card).
195+
expect(g.validateMove("1V")).to.have.deep.property("complete", 1); //A legal sequence (market card).
190196
g.move("1V");
191197

192198
expect(g.validateMove("3MV//")).to.have.deep.property("valid", false); //Player 2 isn't blocked.

0 commit comments

Comments
 (0)