serveur pour le jeu presque fini

pull/73/head
Thomas Chazot 1 year ago
parent 6399f162a3
commit 63a4850898

@ -13,7 +13,6 @@ const ChoiceBar = () => {
function askPlayer(playerId: string){ function askPlayer(playerId: string){
if (nodeId !== null){ if (nodeId !== null){
console.log("CLICK")
socket.emit("ask player", nodeId, playerId, players.find((p) => p.id === socket.id)) socket.emit("ask player", nodeId, playerId, players.find((p) => p.id === socket.id))
} }
} }
@ -23,29 +22,28 @@ const ChoiceBar = () => {
const person = personNetwork?.getPersons().find((p) => p.getId() == nodeId) const person = personNetwork?.getPersons().find((p) => p.getId() == nodeId)
if (person != undefined){ if (person != undefined){
const indiceTester = IndiceTesterFactory.Create(indices[actualPlayerIndex]) const indiceTester = IndiceTesterFactory.Create(indices[actualPlayerIndex])
let nextPlayerIndex = actualPlayerIndex + 1
if (nextPlayerIndex == players.length){
nextPlayerIndex = 0
}
let playerIndex = actualPlayerIndex + 1 let playerIndex = actualPlayerIndex + 1
if (indiceTester.Works(person)){ if (indiceTester.Works(person)){
socket.emit("node checked", nodeId, true, positionToColor(actualPlayerIndex), room, actualPlayerIndex + 1) socket.emit("node checked", nodeId, true, positionToColor(actualPlayerIndex), room, nextPlayerIndex)
while(playerIndex != actualPlayerIndex){ while(playerIndex != actualPlayerIndex){
if (playerIndex == players.length){
playerIndex = 0
}
const tester = IndiceTesterFactory.Create(indices[playerIndex]) const tester = IndiceTesterFactory.Create(indices[playerIndex])
const works = tester.Works(person) const works = tester.Works(person)
socket.emit("node checked", nodeId, works, positionToColor(playerIndex), room, actualPlayerIndex + 1) socket.emit("node checked", nodeId, works, positionToColor(playerIndex), room, nextPlayerIndex)
if (!works){ if(!works){
break return
} }
playerIndex ++ playerIndex ++
if (playerIndex == players.length){
playerIndex = 0
}
} }
} }
else{
console.log("Ne marche pas")
console.log(person)
}
} }
console.log("CLICK")
//socket.emit("ask player", nodeId, playerId, players.find((p) => p.id === socket.id))
} }
} }

@ -33,9 +33,9 @@ let first = true
const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar}) => { const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar}) => {
const { indices, indice, person, personNetwork, setNodeIdData, players, askedPersons, setActualPlayerIndexData, room, actualPlayerIndex } = useGame(); const { indices, indice, person, personNetwork, setNodeIdData, players, askedPersons, setActualPlayerIndexData, room, actualPlayerIndex, turnPlayerIndex } = useGame();
let playerIndex: number = actualPlayerIndex let playerIndex: number = turnPlayerIndex
let index = 0 let index = 0
for (let i=0; i<players.length; i++){ for (let i=0; i<players.length; i++){
if(players[i].id == socket.id){ if(players[i].id == socket.id){
@ -44,14 +44,14 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
} }
} }
let thisPlayerIndex = index let thisPlayerIndex = index
if (playerIndex == thisPlayerIndex){
handleShowTurnBar(true)
}
if (first){ if (first){
first = false first = false
console.log(indice) setActualPlayerIndexData(index)
if (playerIndex == thisPlayerIndex){
handleShowTurnBar(true)
}
indices.forEach(i => { indices.forEach(i => {
console.log(i.ToString("en")) console.log(i.ToString("en"))
}); });
@ -104,11 +104,13 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
onNodeClick(false) onNodeClick(false)
playerIndex = newPlayerIndex playerIndex = newPlayerIndex
networkData.nodes.update({id: id, label: node.label + colorToEmoji(color, works)}) networkData.nodes.update({id: id, label: node.label + colorToEmoji(color, works)})
if (playerIndex == thisPlayerIndex){ console.log(playerIndex + " => " + thisPlayerIndex)
if (playerIndex === thisPlayerIndex){
handleShowTurnBar(true) handleShowTurnBar(true)
} }
else{ else{
handleShowTurnBar(false) handleShowTurnBar(false)
console.log("je passe bien ici ?????")
} }
} }
lastAskingPlayer = 0 lastAskingPlayer = 0

@ -13,6 +13,7 @@ interface GameContextProps {
nodeId: number | null nodeId: number | null
askedPersons: Person[]; askedPersons: Person[];
actualPlayerIndex: number; actualPlayerIndex: number;
turnPlayerIndex: number;
room: string; room: string;
setIndicesData: (newIndices: Indice[]) => void; setIndicesData: (newIndices: Indice[]) => void;
setIndiceData: (newIndice: Indice) => void; setIndiceData: (newIndice: Indice) => void;
@ -22,6 +23,7 @@ interface GameContextProps {
setNodeIdData: (newId: number) => void; setNodeIdData: (newId: number) => void;
setAskedPersonsData: (newAskedPersons: Person[]) => void; setAskedPersonsData: (newAskedPersons: Person[]) => void;
setActualPlayerIndexData: (newActualPlayerIndex: number) => void; setActualPlayerIndexData: (newActualPlayerIndex: number) => void;
setTurnPlayerIndexData: (newTurnPlayerIndex: number) => void;
setRoomData: (newRoom: string) => void; setRoomData: (newRoom: string) => void;
} }
@ -40,6 +42,7 @@ export const GameProvider: React.FC<GameProviderProps> = ({ children }) => {
const [nodeId, setNodeId] = useState<number | null>(null); const [nodeId, setNodeId] = useState<number | null>(null);
const [askedPersons, setAskedPersons] = useState<Person[]>([]) const [askedPersons, setAskedPersons] = useState<Person[]>([])
const [actualPlayerIndex, setActualPlayerIndex] = useState<number>(-1) const [actualPlayerIndex, setActualPlayerIndex] = useState<number>(-1)
const [turnPlayerIndex, setTurnPlayerIndex] = useState<number>(-1)
const [room, setRoom] = useState<string>("") const [room, setRoom] = useState<string>("")
@ -76,12 +79,16 @@ export const GameProvider: React.FC<GameProviderProps> = ({ children }) => {
setActualPlayerIndex(newActualPlayerIndex) setActualPlayerIndex(newActualPlayerIndex)
} }
const setTurnPlayerIndexData = (newTurnPlayerIndex: number) =>{
setTurnPlayerIndex(newTurnPlayerIndex)
}
const setRoomData = (newRoom: string) =>{ const setRoomData = (newRoom: string) =>{
setRoom(newRoom) setRoom(newRoom)
} }
return ( return (
<GameContext.Provider value={{ indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, nodeId, setNodeIdData, askedPersons, setAskedPersonsData, actualPlayerIndex, setActualPlayerIndexData, room, setRoomData }}> <GameContext.Provider value={{ indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, nodeId, setNodeIdData, askedPersons, setAskedPersonsData, actualPlayerIndex, setActualPlayerIndexData, turnPlayerIndex, setTurnPlayerIndexData, room, setRoomData }}>
{children} {children}
</GameContext.Provider> </GameContext.Provider>
); );

@ -50,8 +50,10 @@ const InGame = ({locale, changeLocale}) => {
const handleShowTurnBar = (shouldShowTurnBar: boolean) => { const handleShowTurnBar = (shouldShowTurnBar: boolean) => {
console.log("je passe bien ici avec : " + shouldShowTurnBar)
setShowTurnBar(shouldShowTurnBar); setShowTurnBar(shouldShowTurnBar);
}; };
/* offcanvas */ /* offcanvas */
//? faire une fonction pour close et show en fonction de l'etat du canva ? //? faire une fonction pour close et show en fonction de l'etat du canva ?
//? comment faire pour eviter la recopie de tout le code a chaque canvas boostrap ? //? comment faire pour eviter la recopie de tout le code a chaque canvas boostrap ?
@ -107,7 +109,7 @@ const InGame = ({locale, changeLocale}) => {
return ( return (
<div id="mainDiv"> <div id="mainDiv">
{showTurnBar && <TurnBar />} {showTurnBar && <TurnBar/>}
<div id='graphDiv'> <div id='graphDiv'>
<GraphContainer onNodeClick={handleNodeClick} handleShowTurnBar={handleShowTurnBar} /> <GraphContainer onNodeClick={handleNodeClick} handleShowTurnBar={handleShowTurnBar} />
</div> </div>

@ -31,7 +31,7 @@ function Lobby() {
const navigate = useNavigate(); const navigate = useNavigate();
const { indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, setActualPlayerIndexData, setRoomData } = useGame(); const { indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, setActualPlayerIndexData, setTurnPlayerIndexData, setRoomData } = useGame();
let first = true let first = true
@ -65,7 +65,8 @@ function Lobby() {
if (room != null){ if (room != null){
setRoomData(room) setRoomData(room)
} }
setActualPlayerIndexData(playerIndex) setTurnPlayerIndexData(playerIndex)
setActualPlayerIndexData(index)
setIndiceData(choosenIndices[index]) setIndiceData(choosenIndices[index])
setPersonData(choosenOne) setPersonData(choosenOne)
setPersonNetworkData(network) setPersonNetworkData(network)

Loading…
Cancel
Save