permet la modification du nombre d'indice
continuous-integration/drone/push Build is failing Details

changeGraphSize
Thomas Chazot 2 years ago
parent 94219e01d3
commit 712e85ed97

@ -1,7 +1,6 @@
{ {
"name": "cryptide", "name": "cryptide",
"version": "1.0.0", "version": "1.0.0",
"homepage": "/containers/Crypteam-website/",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-regular-svg-icons": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2",

@ -9,7 +9,7 @@ const tmp2 = ADRESSE_WEBSERVER
const ADRESSE_WEBSITE = "" const ADRESSE_WEBSITE = ""
const basePath = process.env.REACT_APP_BASE_PATH || '/containers/Crypteam-website'; const basePath = process.env.REACT_APP_BASE_PATH || '';
const tmp3 = basePath const tmp3 = basePath

@ -53,14 +53,13 @@ interface MyGraphComponentProps {
putGreyBackground : () => void putGreyBackground : () => void
putCorrectBackground : () => void putCorrectBackground : () => void
putImposssibleGrey : () => void putImposssibleGrey : () => void
setChangeGraph : (func: (nbNodes: number) => void) => void setChangeGraph : (func: (nbNodes: number, nbIndices: number) => void) => void
nbNodes: number
handleTurn :() => void handleTurn :() => void
} }
let askedWrongBot = false
let lastSocketId= ""
let lastAskingPlayer = 0 let lastAskingPlayer = 0
let lastNodeId = -1 let lastNodeId = -1
let first = true let first = true
@ -68,14 +67,10 @@ let askedWrongLocal = false
let mapIndexPersons: Map<number, Person[]> = new Map<number, Person[]>() let mapIndexPersons: Map<number, Person[]> = new Map<number, Person[]>()
let touchedPlayer = -1 let touchedPlayer = -1
let botIndex = -1 let botIndex = -1
let askedWrongBot = false
let lastSocketId= ""
let firstLap = true let firstLap = true
let cptHistory = 0 let cptHistory = 0
let lastNodes: NodePerson[] = [] let lastNodes: NodePerson[] = []
let cptEndgame = 0 let cptEndgame = 0
let firstEnigme = true
let firstIndex = true
let endgame= false let endgame= false
let firstHistory = true let firstHistory = true
let cptSquare = 0 let cptSquare = 0
@ -83,21 +78,20 @@ let cptOnAskedWrong = 0
let cptPlayerLeft = 0 let cptPlayerLeft = 0
let firstPlayer = 0 let firstPlayer = 0
let cptBug = 0 let cptBug = 0
let cptUseEffect = 0
let testPlayers: Player[] = [] let testPlayers: Player[] = []
let testTemps = 0 let testTemps = 0
let testFirst = false let testFirst = false
let testFirst2 = true let gameStartTmp = true
let index = 0
const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar, handleTurnBarTextChange, playerTouched, setPlayerTouched, changecptTour, solo, isDaily, difficulty, addToHistory, showLast, setNetwork, setNetworkEnigme, setPlayerIndex, askedWrong, setAskedWrong, importToPdf, setImportToPdf, importToJSON, setImportToJSON, setPutCorrectBackground, setPutGreyBackground, setPutImposssibleGrey, putCorrectBackground, putGreyBackground, putImposssibleGrey, handleTurn, setChangeGraph}) => {
const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleShowTurnBar, handleTurnBarTextChange, playerTouched, setPlayerTouched, changecptTour, solo, isDaily, difficulty, addToHistory, showLast, setNetwork, setNetworkEnigme, setPlayerIndex, askedWrong, setAskedWrong, importToPdf, setImportToPdf, importToJSON, setImportToJSON, setPutCorrectBackground, setPutGreyBackground, setPutImposssibleGrey, putCorrectBackground, putGreyBackground, putImposssibleGrey, handleTurn, nbNodes, setChangeGraph}) => {
let cptTour: number = 1 let cptTour: number = 1
//* Gestion du temps : //* Gestion du temps :
let initMtn = 0 let initMtn = 0
const {isLoggedIn, user, manager} = useAuth(); const {isLoggedIn, user, manager} = useAuth();
const { indices, indice, person, personNetwork, setNodeIdData, players, setPlayersData, askedPersons, setActualPlayerIndexData, room, actualPlayerIndex, turnPlayerIndex, setIndicesData, setWinnerData, dailyEnigme, setNbCoupData, settempsData, setNetworkDataData, setSeedData, nodesC, temps, setPersonData, setPersonNetworkData, setDailyEnigmeData} = useGame(); const { indices, indice, person, personNetwork, setNodeIdData, players, setPlayersData, askedPersons, setActualPlayerIndexData, room, actualPlayerIndex, turnPlayerIndex, setIndicesData, setWinnerData, dailyEnigme, setNbCoupData, settempsData, setNetworkDataData, setSeedData, nodesC, temps, setPersonData, setPersonNetworkData, setDailyEnigmeData, gameStart, setGameStartData} = useGame();
const params = new URLSearchParams(window.location.search); const params = new URLSearchParams(window.location.search);
const navigate = useNavigate(); const navigate = useNavigate();
@ -140,12 +134,10 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
useEffect(() => { useEffect(() => {
testPlayers = players testPlayers = players
console.log(testPlayers)
}, [players]) }, [players])
useEffect(() =>{ useEffect(() =>{
touchedPlayer=playerTouched touchedPlayer=playerTouched
console.log(playerTouched)
if (touchedPlayer == -1){ if (touchedPlayer == -1){
if (!askedWrongLocal){ if (!askedWrongLocal){
putCorrectBackground() putCorrectBackground()
@ -184,17 +176,45 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
let playerIndex: number = turnPlayerIndex let playerIndex: number = turnPlayerIndex
if (firstIndex){ useEffect(() => {
firstIndex=false gameStartTmp=gameStart
setPlayerIndex(playerIndex) if (gameStartTmp){
} setGameStartData(false)
let index = 0 console.log(gameStart)
for (let i=0; i<players.length; i++){ setLastIndex(turnPlayerIndex)
if(players[i].id == socket.id){ setPlayerIndex(playerIndex)
index=i
break
} }
} for (let i=0; i<players.length; i++){
if(players[i].id == socket.id){
index=i
break
}
}
first = false
endgame= false
if (!solo){
for(let i = 0; i<indices.length; i++){
mapIndexPersons.set(i, [])
}
if (actualPlayerIndex==0){
players.forEach((p, index) =>{
if (p instanceof Bot && personNetwork!=null){
p.index=index
p.initiateMap(personNetwork)
}
})
}
setActualPlayerIndexData(index)
if (playerIndex == actualPlayerIndex){
handleTurnBarTextChange("À vous de jouer")
handleShowTurnBar(true)
}
}
}, [gameStart])
useEffect(() =>{ useEffect(() =>{
//* Gestion du sound des tours : //* Gestion du sound des tours :
@ -311,31 +331,6 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
} }
}, [lastIndex]) }, [lastIndex])
if (first){
first = false
endgame= false
if (!solo){
for(let i = 0; i<indices.length; i++){
mapIndexPersons.set(i, [])
}
if (actualPlayerIndex==0){
players.forEach((p, index) =>{
if (p instanceof Bot && personNetwork!=null){
p.index=index
p.initiateMap(personNetwork)
}
})
}
setActualPlayerIndexData(index)
if (playerIndex == actualPlayerIndex){
handleTurnBarTextChange("À vous de jouer")
handleShowTurnBar(true)
}
}
}
useEffect(() => { useEffect(() => {
if (importToPdf){ if (importToPdf){
setImportToPdf(false) setImportToPdf(false)
@ -374,9 +369,9 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
} }
}, [importToJSON]) }, [importToJSON])
const changeGraph = (nbNodes: number) => { const changeGraph = (nbNodes: number, nbIndices: number) => {
//todo différencier les deux //todo différencier les deux
const [networkPerson, choosenPerson, choosenIndices] = GameCreator.CreateGame(3, nbNodes) const [networkPerson, choosenPerson, choosenIndices] = GameCreator.CreateGame(nbIndices, nbNodes)
setPersonData(choosenPerson) setPersonData(choosenPerson)
setPersonNetworkData(networkPerson) setPersonNetworkData(networkPerson)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
@ -596,7 +591,6 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}) })
socket.on("node checked",(id, works, askedIndex, newPlayerIndex, socketId) => { socket.on("node checked",(id, works, askedIndex, newPlayerIndex, socketId) => {
console.log("coucou")
cptBug=0 cptBug=0
//@ts-ignore //@ts-ignore
const node = nodes.get().find((n) => id == n.id) const node = nodes.get().find((n) => id == n.id)
@ -605,7 +599,6 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
playerIndex = newPlayerIndex playerIndex = newPlayerIndex
setPlayerIndex(playerIndex) setPlayerIndex(playerIndex)
setLastIndex(newPlayerIndex) setLastIndex(newPlayerIndex)
console.log(newPlayerIndex)
//@ts-ignore //@ts-ignore
if (mapIndexPersons.get(askedIndex)?.find((p) => p.getId() == id) == undefined){ if (mapIndexPersons.get(askedIndex)?.find((p) => p.getId() == id) == undefined){
//@ts-ignore //@ts-ignore

@ -26,6 +26,8 @@ interface GameContextProps {
networkData: any networkData: any
seed: number | string; seed: number | string;
nodesC: NodePerson[] nodesC: NodePerson[]
gameStart: boolean
setGameStartData : (newStart: boolean) => void
setIndicesData: (newIndices: Indice[]) => void; setIndicesData: (newIndices: Indice[]) => void;
setIndiceData: (newIndice: Indice) => void; setIndiceData: (newIndice: Indice) => void;
setPersonData: (newPerson: Person) => void; setPersonData: (newPerson: Person) => void;
@ -72,8 +74,13 @@ export const GameProvider: React.FC<GameProviderProps> = ({ children }) => {
const [networkData, setNetworkData] = useState<any>(null); const [networkData, setNetworkData] = useState<any>(null);
const [seed, setSeed] = useState<number | string>(0); const [seed, setSeed] = useState<number | string>(0);
const [nodesC, setNodes] = useState<NodePerson[]>([]); const [nodesC, setNodes] = useState<NodePerson[]>([]);
const [gameStart, setGameStart] = useState<boolean>(true)
const setGameStartData = (newStart: boolean) => {
setGameStart(newStart)
}
const setNodesData = (nodes: NodePerson[]) => { const setNodesData = (nodes: NodePerson[]) => {
setNodes(nodes) setNodes(nodes)
} }
@ -165,7 +172,7 @@ export const GameProvider: React.FC<GameProviderProps> = ({ children }) => {
} }
return ( return (
<GameContext.Provider value={{ indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, nodeId, setNodeIdData, askedPersons, setAskedPersonsData, actualPlayerIndex, setActualPlayerIndexData, turnPlayerIndex, setTurnPlayerIndexData, room, setRoomData, onlyFalse, setOnlyFalseData, winner, setWinnerData, reset, dailyEnigme, setDailyEnigmeData, nbCoup, setNbCoupData, temps, settempsData, setNetworkDataData, networkData, seed, setSeedData, nodesC, setNodesData}}> <GameContext.Provider value={{ indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, nodeId, setNodeIdData, askedPersons, setAskedPersonsData, actualPlayerIndex, setActualPlayerIndexData, turnPlayerIndex, setTurnPlayerIndexData, room, setRoomData, onlyFalse, setOnlyFalseData, winner, setWinnerData, reset, dailyEnigme, setDailyEnigmeData, nbCoup, setNbCoupData, temps, settempsData, setNetworkDataData, networkData, seed, setSeedData, nodesC, setNodesData, gameStart, setGameStartData}}>
{children} {children}
</GameContext.Provider> </GameContext.Provider>
); );

@ -108,7 +108,7 @@ const InGame = ({locale, changeLocale}) => {
const [putCorrectBackground, setPutCorrectBackground] = useState<() => void>(() => {}); const [putCorrectBackground, setPutCorrectBackground] = useState<() => void>(() => {});
const [putGreyBackgroud, setPutGreyBackground] = useState<() => void>(() => {}); const [putGreyBackgroud, setPutGreyBackground] = useState<() => void>(() => {});
const [putImposssibleGrey, setPutImposssibleGrey] = useState<() => void>(() => {}); const [putImposssibleGrey, setPutImposssibleGrey] = useState<() => void>(() => {});
const [changeGraph, setChangeGraph] = useState<(nbNodes: number) => void>(() => {}); const [changeGraph, setChangeGraph] = useState<(nbNodes: number, nbIndices: number) => void>(() => {});
@ -124,7 +124,7 @@ const InGame = ({locale, changeLocale}) => {
setPutImposssibleGrey(func) setPutImposssibleGrey(func)
} }
const setChangeGraphData = (func: (nbNodes: number) => void) => { const setChangeGraphData = (func: (nbNodes: number, nbIndices: number) => void) => {
setChangeGraph(func) setChangeGraph(func)
} }
@ -325,13 +325,21 @@ const InGame = ({locale, changeLocale}) => {
const [soundPreference, setSoundPreference] = useState(true); // utilisateur const [soundPreference, setSoundPreference] = useState(true); // utilisateur
const [enteredNumber, setEnteredNumber] = useState(25); const [enteredNumber, setEnteredNumber] = useState(25);
const [enteredNumberIndices, setEnteredNumberIndices] = useState(3);
//@ts-ignore //@ts-ignore
const handleNumberChange = (event) => { const handleNumberChange = (event) => {
const newNumber = Math.max(20, Math.min(60, parseInt(event.target.value, 10))); const newNumber = Math.max(20, Math.min(50, parseInt(event.target.value, 10)));
setEnteredNumber(newNumber); setEnteredNumber(newNumber);
}; };
//@ts-ignore
const handleNumberIndicesChange = (event) => {
const newNumber = Math.max(3, Math.min(6, parseInt(event.target.value, 10)));
setEnteredNumberIndices(newNumber);
};
const handleSoundPreferenceChange = () => { const handleSoundPreferenceChange = () => {
setSoundPreference(!soundPreference); setSoundPreference(!soundPreference);
console.log("changement des options du son : "+ soundPreference) console.log("changement des options du son : "+ soundPreference)
@ -381,8 +389,7 @@ const InGame = ({locale, changeLocale}) => {
putGreyBackground={putGreyBackgroud} putGreyBackground={putGreyBackgroud}
putImposssibleGrey={putImposssibleGrey} putImposssibleGrey={putImposssibleGrey}
handleTurn={handleTurn} handleTurn={handleTurn}
setChangeGraph={setChangeGraphData} setChangeGraph={setChangeGraphData}/>
nbNodes={enteredNumber}/>
</div> </div>
{playTurnSound && <audio src={turnSound} autoPlay />} {playTurnSound && <audio src={turnSound} autoPlay />}
@ -533,7 +540,7 @@ const InGame = ({locale, changeLocale}) => {
<Offcanvas show={showS} <Offcanvas show={showS}
onHide={handleCloseS} onHide={handleCloseS}
placement='top' placement='top'
style={{height: '40%', width: '30%', left: '70%' }}> style={{height: '60%', width: '30%', left: '70%' }}>
<Offcanvas.Header closeButton> <Offcanvas.Header closeButton>
<Offcanvas.Title><img src={Param} alt='param'/> Paramètres</Offcanvas.Title> <Offcanvas.Title><img src={Param} alt='param'/> Paramètres</Offcanvas.Title>
</Offcanvas.Header> </Offcanvas.Header>
@ -546,7 +553,7 @@ const InGame = ({locale, changeLocale}) => {
{IsSolo && {IsSolo &&
<div className='nbNodeDiv'> <div className='nbNodeDiv'>
<label htmlFor="numberInput">Sélectionner le nombre de noeud (entre 20 et 50) :</label> <label htmlFor="numberInput">Sélectionner le nombre de noeuds (entre 20 et 50) :</label>
<div> <div>
<button className='valuebutton' onClick={() => { if (enteredNumber>20) setEnteredNumber(enteredNumber-1)}} <button className='valuebutton' onClick={() => { if (enteredNumber>20) setEnteredNumber(enteredNumber-1)}}
style={{borderColor:theme.colors.secondary}}> - </button> style={{borderColor:theme.colors.secondary}}> - </button>
@ -562,7 +569,32 @@ const InGame = ({locale, changeLocale}) => {
<button className='valuebutton' onClick={() => { if (enteredNumber<50) setEnteredNumber(enteredNumber+1)}} <button className='valuebutton' onClick={() => { if (enteredNumber<50) setEnteredNumber(enteredNumber+1)}}
style={{borderColor:theme.colors.secondary}}> + </button> style={{borderColor:theme.colors.secondary}}> + </button>
</div> </div>
<button onClick={() => {setHistory([]); changeGraph(enteredNumber)}} <button onClick={() => {setHistory([]); changeGraph(enteredNumber, enteredNumberIndices)}}
style={{
backgroundColor: theme.colors.tertiary,
borderColor: theme.colors.secondary,
}}>Valider</button>
</div>}
{IsSolo &&
<div className='nbNodeDiv'>
<label htmlFor="numberInput">Sélectionner le nombre d'indices (entre 3 et 6) :</label>
<div>
<button className='valuebutton' onClick={() => { if (enteredNumberIndices>3) setEnteredNumberIndices(enteredNumberIndices-1)}}
style={{borderColor:theme.colors.secondary}}> - </button>
<input
// type="number"
style={{textAlign:'center'}}
id="numberInput"
disabled
value={enteredNumberIndices}
onChange={handleNumberIndicesChange}
min={3}
max={6}/>
<button className='valuebutton' onClick={() => { if (enteredNumberIndices<6) setEnteredNumberIndices(enteredNumberIndices+1)}}
style={{borderColor:theme.colors.secondary}}> + </button>
</div>
<button onClick={() => {setHistory([]); changeGraph(enteredNumber, enteredNumberIndices)}}
style={{ style={{
backgroundColor: theme.colors.tertiary, backgroundColor: theme.colors.tertiary,
borderColor: theme.colors.secondary, borderColor: theme.colors.secondary,

@ -57,7 +57,7 @@ function Lobby() {
const theme=useTheme(); const theme=useTheme();
const navigate = useNavigate(); const navigate = useNavigate();
const { indices, setIndicesData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, setActualPlayerIndexData, setTurnPlayerIndexData, setRoomData, setNodesData } = useGame(); const { indices, setIndicesData, setGameStartData, indice, setIndiceData, person, setPersonData, personNetwork, setPersonNetworkData, players, setPlayersData, setActualPlayerIndexData, setTurnPlayerIndexData, setRoomData, setNodesData } = useGame();
const {user, setUserData, manager, login} = useAuth() const {user, setUserData, manager, login} = useAuth()
let first = true let first = true
@ -138,6 +138,7 @@ function Lobby() {
setPersonData(choosenOne) setPersonData(choosenOne)
setPersonNetworkData(network) setPersonNetworkData(network)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setGameStartData(true)
first = true first = true
gameStarted = true gameStarted = true
//socket.off("player left") //socket.off("player left")
@ -176,6 +177,7 @@ function Lobby() {
setPersonData(choosenOne) setPersonData(choosenOne)
setPersonNetworkData(networkPerson) setPersonNetworkData(networkPerson)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setGameStartData(true)
first = true first = true
gameStarted = true gameStarted = true
navigate(`${basePath}/game?solo=false&daily=false`) navigate(`${basePath}/game?solo=false&daily=false`)
@ -186,7 +188,6 @@ function Lobby() {
for (const p of tab.tab){ for (const p of tab.tab){
tmpTab.push(JSONParser.JSONToPlayer(p)) tmpTab.push(JSONParser.JSONToPlayer(p))
} }
console.log(tmpTab);
setPlayersData(tmpTab); setPlayersData(tmpTab);
}); });
@ -211,7 +212,6 @@ function Lobby() {
for (const p of tab.tab){ for (const p of tab.tab){
tmpTab.push(JSONParser.JSONToPlayer(p)) tmpTab.push(JSONParser.JSONToPlayer(p))
} }
console.log(tmpTab)
setPlayersData(tmpTab) setPlayersData(tmpTab)
}) })

@ -42,7 +42,7 @@ function NewPlay() {
const theme=useTheme() const theme=useTheme()
const {isLoggedIn, login, user, setUserData, manager } = useAuth(); const {isLoggedIn, login, user, setUserData, manager } = useAuth();
const {setDailyEnigmeData, setIndicesData, setPersonData, setPersonNetworkData } = useGame() const {setDailyEnigmeData, setIndicesData, setPersonData, setPersonNetworkData, setGameStartData } = useGame()
const target = useRef(null); const target = useRef(null);
@ -100,6 +100,7 @@ function NewPlay() {
setPersonNetworkData(networkPerson) setPersonNetworkData(networkPerson)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setGameStartData(true)
navigate(`${basePath}/game?solo=true&daily=false`); navigate(`${basePath}/game?solo=true&daily=false`);
} }
@ -162,7 +163,7 @@ function NewPlay() {
setPersonNetworkData(networkPerson) setPersonNetworkData(networkPerson)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setGameStartData(true)
navigate(`${basePath}/game?solo=true&daily=true&difficulty=easy`); navigate(`${basePath}/game?solo=true&daily=true&difficulty=easy`);
setShowOverlay(false); setShowOverlay(false);
}; };
@ -175,7 +176,8 @@ function NewPlay() {
setPersonData(choosenPerson) setPersonData(choosenPerson)
setPersonNetworkData(networkPerson) setPersonNetworkData(networkPerson)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setIndicesData(choosenIndices) setGameStartData(true)
navigate(`${basePath}/game?solo=true&daily=true&difficulty=intermediate`); navigate(`${basePath}/game?solo=true&daily=true&difficulty=intermediate`);
if (first){ if (first){
@ -194,7 +196,7 @@ function NewPlay() {
setPersonData(choosenPerson) setPersonData(choosenPerson)
setPersonNetworkData(networkPerson) setPersonNetworkData(networkPerson)
setIndicesData(choosenIndices) setIndicesData(choosenIndices)
setIndicesData(choosenIndices) setGameStartData(true)
if (first){ if (first){
first = false first = false
const map = EnigmeDuJourCreator.createEnigme(networkPerson, choosenIndices, choosenPerson, Stub.GenerateIndice()) const map = EnigmeDuJourCreator.createEnigme(networkPerson, choosenIndices, choosenPerson, Stub.GenerateIndice())

Loading…
Cancel
Save