Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
Echecs
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Elarouti Adam
Echecs
Commits
49efcd0e
Commit
49efcd0e
authored
2 months ago
by
Elarouti Adam
Browse files
Options
Downloads
Patches
Plain Diff
code de l'echec
parent
6b8da139
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
app.js
+4
-2
4 additions, 2 deletions
app.js
htdocs/index.js
+51
-45
51 additions, 45 deletions
htdocs/index.js
htdocs/page_acceuil2.html
+1
-0
1 addition, 0 deletions
htdocs/page_acceuil2.html
with
56 additions
and
47 deletions
app.js
+
4
−
2
View file @
49efcd0e
...
...
@@ -5,7 +5,7 @@ const express = require('express');
const
app
=
express
();
const
http
=
require
(
'
http
'
).
createServer
(
app
);
const
path
=
require
(
'
path
'
);
const
port
=
80
8
0
;
const
port
=
80
6
0
;
const
io
=
require
(
'
socket.io
'
)(
http
);
...
...
@@ -67,7 +67,9 @@ io.on('connection', (socket) => {
socket
.
broadcast
.
emit
(
'
play
'
,
data
);
// On diffuse à tous les clients
});
socket
.
on
(
'
echec
'
,
()
=>
{
socket
.
broadcast
.
emit
(
'
echec
'
);
});
socket
.
on
(
'
play again
'
,
(
roomId
)
=>
{
const
room
=
rooms
.
find
(
r
=>
r
.
id
===
roomId
);
...
...
This diff is collapsed.
Click to expand it.
htdocs/index.js
+
51
−
45
View file @
49efcd0e
...
...
@@ -108,18 +108,20 @@ socket.on('join room', (roomId) => {
});
socket
.
on
(
'
start game
'
,
(
players
)
=>
{
console
.
log
(
players
,
"
Le jeu commence
"
);
//
console.log(players, "Le jeu commence");
startGame
(
players
);
console
.
log
(
player
.
isBlackPlayer
)
//
console.log(player.isBlackPlayer)
if
(
player
.
isBlackPlayer
)
{
document
.
getElementById
(
'
chessboard
'
).
classList
.
add
(
'
black-perspective
'
);
console
.
log
(
"
échiquier inversé
"
)
//
console.log("échiquier inversé")
}
});
socket
.
on
(
'
echec
'
,
()
=>
{
// Fonction de callback correcte
document
.
getElementById
(
"
echec-message
"
).
classList
.
remove
(
"
d-none
"
);
});
socket
.
on
(
'
play
'
,
(
moveData
)
=>
{
console
.
log
(
"
[Client] Mouvement reçu :
"
,
moveData
.
move
.
to
.
x
,
'
et
'
,
moveData
.
move
.
to
.
y
,
'
et
'
,
tour
,
'
et
'
,
selectedPosition
);
//
console.log("[Client] Mouvement reçu : ", moveData.move.to.x, 'et', moveData.move.to.y,'et', tour, 'et', selectedPosition);
selectedPiece
=
moveData
.
move
.
piece
;
row
=
moveData
.
move
.
from
.
x
;
col
=
moveData
.
move
.
from
.
y
;
...
...
@@ -181,7 +183,7 @@ function startGame(players) {
draw
();
ennemyUsername
=
ennemyPlayer
.
username
;
tour
=
{
currentPlayer
:
player
,
ennemyPlayer
:
ennemyPlayer
};
console
.
log
(
ennemyPlayer
);
//
console.log(ennemyPlayer);
if
(
player
.
host
&&
player
.
turn
)
{
setTurnMessage
(
'
alert-info
'
,
'
alert-success
'
,
"
C'est ton tour de jouer
"
);
}
else
{
...
...
@@ -332,7 +334,8 @@ function highlightMoves(tour,piece, row, col) {
ennemyPieces
=
[
"
t
"
,
"
c
"
,
"
f
"
,
"
q
"
,
"
k
"
,
"
p
"
];
}
let
moves
=
[];
console
.
log
(
piece
.
toLowerCase
()
===
"
p
"
);
if
(
piece
.
toLowerCase
()
===
"
p
"
)
{
if
(
row
===
6
&&
player
.
isBlackPlayer
===
false
){
if
(
board
[
row
+
2
*
direction
][
col
]
===
""
)
{
...
...
@@ -604,38 +607,38 @@ function find_pieces(piece,board){
}
}
// function echec(tour, board) {
// // Trouve la position du roi ennemi
// let kingRow, kingCol;
// if (player.turn === true) {
// attackingPlayer = player;
// [kingRow, kingCol] = find_pieces('k', board); // Roi noir (adverse) si c'est au joueur blanc de jouer
// } else {
// attackingPlayer = ennemyPlayer;
// [kingRow, kingCol] = find_pieces('K', board); // Roi blanc (adverse) si c'est au joueur noir de jouer
// }
function
echec
(
board
)
{
// let allPositions = [];
// Trouve la position du roi ennemi
let
piecesAttaquant
=
[];
let
kingRow
,
kingCol
;
let
allPositions
=
[];
// for (let i = 0; i < board.length; i++) {
// for (let j = 0; j < board[i].length; j++) {
// const piece = board[i][j];
// if (piece) {
// const moves = highlightMoves(piece, board, i, j);
// allPositions.push({ piece, position: { i, j }, moves });
if
(
player
.
isBlackPlayer
===
false
)
{
[
kingRow
,
kingCol
]
=
find_pieces
(
"
K
"
,
board
);
// Roi noir (adverse) si c'est au joueur blanc de jouer
piecesAttaquant
=
[
"
t
"
,
"
c
"
,
"
f
"
,
"
q
"
,
"
k
"
,
"
p
"
];
}
else
{
[
kingRow
,
kingCol
]
=
find_pieces
(
"
k
"
,
board
);
// Roi blanc (adverse) si c'est au joueur noir de jouer
piecesAttaquant
=
[
"
T
"
,
"
C
"
,
"
F
"
,
"
Q
"
,
"
K
"
,
"
P
"
];
}
// // 🔍 Vérifie si un des mouvements possibles atteint le roi
// for (let move of moves) {
// if (move.i === kingRow && move.j === kingCol) {
// console.log(`Le roi est en échec par la pièce ${piece} en position (${i}, ${j})`);
// return true; // Roi est en échec
// }
// }
// }
// }
// }
// }
for
(
let
i
=
0
;
i
<
board
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
board
[
i
].
length
;
j
++
)
{
const
pieceAttack
=
board
[
i
][
j
];
if
(
pieceAttack
!==
""
&&
piecesAttaquant
.
includes
(
pieceAttack
))
{
moves
=
highlightMoves
(
board
,
pieceAttack
,
i
,
j
)
for
(
k
=
0
;
k
<
moves
.
length
;
k
++
){
if
(
moves
[
k
].
row
===
kingRow
&&
moves
[
k
].
col
===
kingCol
)
return
true
;
}
}
}
}
return
false
;
}
function
movePiece
(
piece
,
newRow
,
newCol
)
{
document
.
getElementById
(
"
echec-message
"
).
classList
.
add
(
"
d-none
"
);
if
(
!
piece
)
return
;
// Vérifier si le mouvement est valide
...
...
@@ -648,9 +651,9 @@ function movePiece(piece, newRow, newCol) {
// Déplacer la pièce
board
[
newRow
][
newCol
]
=
piece
;
board
[
selectedPosition
.
row
][
selectedPosition
.
col
]
=
""
;
console
.
log
(
echec
(
board
));
// Réinitialiser la pièce sélectionnée
console
.
log
(
selectedPosition
.
row
,
selectedPosition
.
col
)
//currentPlayer=(currentPlayer+1)%2;
socket
.
emit
(
'
play
'
,
{
...
...
@@ -661,15 +664,18 @@ function movePiece(piece, newRow, newCol) {
piece
:
selectedPiece
// Nom de la pièce (ex: "pion", "tour", etc.)
}
});
if
(
echec
(
board
)){
socket
.
emit
(
'
echec
'
);
}
setTurnMessage
(
'
alert-success
'
,
'
alert-info
'
,
`C'est au tour de <b>
${
ennemyUsername
}
</b> de jouer`
)
player
.
turn
=
false
;
selectedPiece
=
null
;
selectedPosition
=
null
;
[
tour
.
currentPlayer
,
tour
.
ennemyPlayer
]
=
[
tour
.
ennemyPlayer
,
tour
.
currentPlayer
];
// if (echec(tour,board)===true){
// console.log('echeeeeeeeeecs')
// }
// Redessiner le plateau
draw
();
}
else
{
...
...
This diff is collapsed.
Click to expand it.
htdocs/page_acceuil2.html
+
1
−
0
View file @
49efcd0e
...
...
@@ -88,6 +88,7 @@
</div>
</div>
</div>
<div
id=
"echec-message"
class=
"d-none"
>
Échec !
</div>
<canvas
id=
"chessboard"
class=
"board"
width=
"480"
height=
"480"
></canvas>
<script
src=
"./jquery/jquery.min.js"
></script>
<script
src=
"./bootstrap/js/bootstrap.min.js"
></script>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment