possibilité de faire égalité

This commit is contained in:
Didictateur 2025-03-29 22:13:38 +01:00
parent 4293a1b49b
commit 4a155a0ab6

View file

@ -25,6 +25,7 @@ export class Game {
private lastPlayed: number = Date.now(); private lastPlayed: number = Date.now();
private chooseChii: boolean = false; private chooseChii: boolean = false;
private end: boolean = false; private end: boolean = false;
private result: number = -1;
// display parameter // display parameter
private BG_RECT = {color: "#007730", x: 0, y: 0, w: 1050, h: 1050}; private BG_RECT = {color: "#007730", x: 0, y: 0, w: 1050, h: 1050};
@ -67,10 +68,6 @@ export class Game {
this.pick(0); this.pick(0);
} }
public isFinished(): boolean {
return this.end;
}
public draw(mp: mousePos) { public draw(mp: mousePos) {
// background // background
this.staticCtx.clearRect(0, 0, this.cv.width, this.cv.height); this.staticCtx.clearRect(0, 0, this.cv.width, this.cv.height);
@ -97,6 +94,10 @@ export class Game {
return this.hands; return this.hands;
} }
public isFinished(): boolean {
return this.end;
}
public click( public click(
mp: mousePos, mp: mousePos,
): void { ): void {
@ -205,9 +206,10 @@ export class Game {
this.discard(this.turn, n); this.discard(this.turn, n);
this.hasPlayed = true; this.hasPlayed = true;
if (this.deck.length() <= 0) { if (this.deck.length() <= 0) {
this.result = 0;
this.end = true; this.end = true;
} }
if (!this.isFinished()) { if (!this.end) {
this.checkPon(); this.checkPon();
if (this.turn !== 3 && this.canDoAChii(this.turn + 1).length > 0) { if (this.turn !== 3 && this.canDoAChii(this.turn + 1).length > 0) {
let chiis = this.canDoAChii(this.turn + 1); let chiis = this.canDoAChii(this.turn + 1);
@ -370,6 +372,9 @@ export class Game {
drawState(this.staticCtx, this.turn); drawState(this.staticCtx, this.turn);
this.drawDiscardSize(); this.drawDiscardSize();
// draw result
this.drawResult();
// hands // hands
this.drawHands(); this.drawHands();
@ -534,10 +539,21 @@ export class Game {
private drawDiscardSize() { private drawDiscardSize() {
this.staticCtx.fillStyle = "#f070f0"; this.staticCtx.fillStyle = "#f070f0";
this.staticCtx.font = "40px garamond"; this.staticCtx.font = "40px garamond";
this.staticCtx.fillText(this.deck.length().toString(), 507, 537); this.staticCtx.fillText(this.deck.length().toString(), 507, 537);
} }
private drawResult(): void {
if (this.result === 0) {
this.staticCtx.fillStyle = "#e0e0f0";
this.staticCtx.fillRect(500, 500, 50, 50);
this.staticCtx.fillStyle = "#ff0000";
this.staticCtx.font = "35px garamond";
this.staticCtx.fillText("Égalité!", 475, 535);
}
}
public async preload(): Promise<void> { public async preload(): Promise<void> {
await this.deck.preload(); await this.deck.preload();
await Promise.all(this.hands.map(h => h.preload())); await Promise.all(this.hands.map(h => h.preload()));