score feature finished in back still need front

main
Vincent ASTOLFI 8 months ago
parent ed1452bfc0
commit 2e3d9f7845

@ -1,4 +1,3 @@
const uuid = require("uuid");
const { Grid } = require("./Grid.js");
const { Piece } = require("./Piece.js");
@ -14,11 +13,11 @@ class Player {
createPiece() {
this.pieces.push(new Piece(1, { x: 0, y: 0 }, { x: 0, y: 0 }));
//this.pieces.push(new Piece(1, { x: 0, y: 3 }, { x: 0, y: 3 }));
//this.pieces.push(new Piece(2, { x: 2, y: 2 }, { x: 2, y: 3 }));
//this.pieces.push(new Piece(2, { x: 8, y: 2 }, { x: 8, y: 3 }));
//this.pieces.push(new Piece(3, { x: 4, y: 3 }, { x: 4, y: 5 }));
//this.pieces.push(new Piece(4, { x: 6, y: 6 }, { x: 6, y: 9 }));
this.pieces.push(new Piece(1, { x: 0, y: 3 }, { x: 0, y: 3 }));
this.pieces.push(new Piece(2, { x: 2, y: 2 }, { x: 2, y: 3 }));
this.pieces.push(new Piece(2, { x: 8, y: 2 }, { x: 8, y: 3 }));
this.pieces.push(new Piece(3, { x: 4, y: 3 }, { x: 4, y: 5 }));
this.pieces.push(new Piece(4, { x: 6, y: 6 }, { x: 6, y: 9 }));
this.pieces.forEach((piece) => {
for (let i = piece.startPos.x; i <= piece.endPos.x; i++) {

@ -38,7 +38,7 @@ class Room {
ret = {isMove: true, players: this.players, isHit: playedCase.isShip,
isWin: this.checkWin()}
if(!ret.isHit || ret.isWin) {
if(!ret.isHit) {
let tmp = this.actualPlayer;
this.actualPlayer = this.ennemy;
this.ennemy = tmp;

@ -1,12 +1,27 @@
CREATE DATABASE IF NOT EXISTS battleship;
USE battleship;
CREATE TABLE IF NOT EXISTS users (
id INT PRIMARY KEY AUTO_INCREMENT,
pseudo VARCHAR(255) UNIQUE NOT NULL,
hashed_password VARCHAR(255) NOT NULL
);
CREATE USER 'root' IDENTIFIED WITH mysql_native_password BY 'rootpassword';
GRANT ALL PRIVILEGES ON battleship.* TO 'root';
FLUSH PRIVILEGES;
CREATE TABLE IF NOT EXISTS scoreboards (
id INT PRIMARY KEY AUTO_INCREMENT,
player1 INT NOT NULL,
player2 INT NOT NULL,
player1Win INT NOT NULL DEFAULT 0,
player2Win INT NOT NULL DEFAULT 0,
FOREIGN KEY (player1) REFERENCES users(id),
FOREIGN KEY (player2) REFERENCES users(id)
);
CREATE TABLE IF NOT EXISTS score (
id INT PRIMARY KEY AUTO_INCREMENT,
playerId INT NOT NULL,
wins INT NOT NULL DEFAULT 0,
loses INT NOT NULL DEFAULT 0,
FOREIGN KEY (playerId) REFERENCES users(id)
);

@ -87,13 +87,30 @@ app.post('/register', async (req, res) => {
}
});
const query = 'INSERT INTO users (pseudo, hashed_password) VALUES (?, ?)';
var query = 'INSERT INTO users (pseudo, hashed_password) VALUES (?, ?)';
db.query(query, [pseudo, hashedPassword], (err, results) => {
if (err) {
console.error('Error inserting user into the database:', err);
return res.status(500).send('Internal server error.');
}
query = 'SELECT id FROM users WHERE pseudo = ?'
db.query(query, [pseudo], (err, results) => {
if (err) {
console.error('Error inserting user into the database:', err);
return res.status(500).send('Internal server error.');
}
if (results.length === 1) {
query = 'INSERT INTO score (playerId) VALUES (?)';
db.query(query, [results[0].id], (err, results) => {
if (err) {
console.error('Error inserting user into the database:', err);
return res.status(500).send('Internal server error.');
}
})
}
});
const token = jwt.sign({ pseudo }, secretKey, { expiresIn: '1h' });
res.cookie('authToken', token, { httpOnly: true, secure: false });
@ -300,17 +317,27 @@ io.on("connection", (socket) => {
if (results.isWin) {
const winner = results.players.find((p) => p.id === results.player)
const loser = results.players.find((p) => p.id !== winner.id)
const alteredRow = "player" + winner.dbId + "Win"
const alteredRow = "player" + (winner.dbId > loser.dbId ? 2 : 1) + "Win"
const ids = [winner.dbId, loser.dbId].sort((a, b) => a - b)
const getPseudoQuery = `UPDATE scoreboards SET ${alteredRow} = ${alteredRow} + 1 WHERE player1 = ? AND player2 = ?`
db.query(getPseudoQuery, [ids[0], ids[1]], (err, results) => {
var query = 'UPDATE score SET wins = wins + 1 WHERE playerId = ?'
db.query(query, [winner.dbId], (err, results) => {
if (err) {
console.log(err)
}
console.log(results)
if (results.length === 1) {
console.log("Scoreboards update")
})
query = 'UPDATE score SET loses = loses + 1 WHERE playerId = ?'
db.query(query, [loser.dbId], (err, results) => {
if (err) {
console.log(err)
}
})
query = `UPDATE scoreboards SET ${alteredRow} = ${alteredRow} + 1 WHERE player1 = ? AND player2 = ?`
db.query(query, [ids[0], ids[1]], (err, results) => {
if (err) {
console.log(err)
}
});
}

@ -16,4 +16,12 @@ CREATE TABLE IF NOT EXISTS scoreboards (
player2Win INT NOT NULL DEFAULT 0,
FOREIGN KEY (player1) REFERENCES users(id),
FOREIGN KEY (player2) REFERENCES users(id)
)
);
CREATE TABLE IF NOT EXISTS score (
id INT PRIMARY KEY AUTO_INCREMENT,
playerId INT NOT NULL,
wins INT NOT NULL DEFAULT 0,
loses INT NOT NULL DEFAULT 0,
FOREIGN KEY (playerId) REFERENCES users(id)
);
Loading…
Cancel
Save