Commit 9f813a6e authored by Robin Borgogno's avatar Robin Borgogno

commentaire frontend

parent 8a2eaabf
...@@ -38,13 +38,14 @@ ...@@ -38,13 +38,14 @@
color:#403d39; color:#403d39;
font-size:28px; font-size:28px;
padding:16px 31px; padding:16px 31px;
font-weight: bold; font-weight: bold;
white-space: nowrap; white-space: nowrap;
margin-left: 1%; margin-left: 1%;
} }
</style> </style>
<script> <script>
// Appel des variables globales user et game
const user = require("../model/user.js") const user = require("../model/user.js")
const game = require("../model/game.js") const game = require("../model/game.js")
...@@ -52,6 +53,7 @@ export default { ...@@ -52,6 +53,7 @@ export default {
name: 'AdminPrivate', name: 'AdminPrivate',
methods: { methods: {
createIdGame: async function(){ createIdGame: async function(){
// L'admin crée une partie privée
const url = sessionStorage.getItem('APIURL') + "/game" const url = sessionStorage.getItem('APIURL') + "/game"
let data = { let data = {
...@@ -62,30 +64,20 @@ export default { ...@@ -62,30 +64,20 @@ export default {
var params = { var params = {
method: 'POST', method: 'POST',
body : JSON.stringify(data) }; body : JSON.stringify(data) };
// console.log(user)
let response = await fetch(url, params) let response = await fetch(url, params)
let result = await response.json() let result = await response.json()
document.getElementById("codeGame").innerHTML = result[0].id; document.getElementById("codeGame").innerHTML = result[0].id;
game.id = result[0].id; game.id = result[0].id;
// console.log(game.id)
}, },
gameID: async function(){ gameID: async function(){
// Fonction appelé dans le HTML et qui éxécute les fonctions dans l'ordre
await this.createIdGame() await this.createIdGame()
await this.ajoutAdminGame() await this.ajoutAdminGame()
await this.JoueurPresent() await this.JoueurPresent()
}, },
returnUserID: function(){
return user.id
},
returnGameID: function(){
return game.id
},
JoueurPresentAppel: async function(){
await this.JoueurPresent()
},
ajoutAdminGame: async function(){ ajoutAdminGame: async function(){
// Ajout l'admin (user) à la partie
const url = sessionStorage.getItem('APIURL') + "/gameuser" const url = sessionStorage.getItem('APIURL') + "/gameuser"
let data = { let data = {
"GAME_ID": game.id, "GAME_ID": game.id,
...@@ -99,6 +91,8 @@ export default { ...@@ -99,6 +91,8 @@ export default {
await fetch(url,params) await fetch(url,params)
}, },
JoueurPresent: async function(){ JoueurPresent: async function(){
// Fonction appelé toute les secondes et qui récupère les nouveaux joueurs de la partie
// Si il y a la présence de joueurs suffisant, la partie se lance
let url = sessionStorage.getItem('APIURL') + "/gameuser/game" let url = sessionStorage.getItem('APIURL') + "/gameuser/game"
url += "/" + game.id; url += "/" + game.id;
var params = { var params = {
...@@ -115,21 +109,23 @@ export default { ...@@ -115,21 +109,23 @@ export default {
this.$router.push(`/game/${game.id}`) this.$router.push(`/game/${game.id}`)
return return
} }
setTimeout(() => {if(game.id){this.JoueurPresent()}}, 3000) setTimeout(() => {if(game.id){this.JoueurPresent()}}, 1000)
}, },
retour: async function() { retour: async function() {
let data = { // Function éxécuté lors de l'appui sur le bouton retour qui supprime l'user de la game et qui le renvoi à l'accueil
let data = {
"GAME_ID": game.id "GAME_ID": game.id
} }
await fetch( await fetch(
sessionStorage.getItem('APIURL') + `/online/${user.id}`, sessionStorage.getItem('APIURL') + `/online/${user.id}`,
{ {
method: "DELETE", method: "DELETE",
body : JSON.stringify(data) body : JSON.stringify(data)
} }
) )
this.$router.push('/') this.$router.push('/')
} }
}, },
......
...@@ -47,6 +47,8 @@ ...@@ -47,6 +47,8 @@
<script> <script>
let havePlayed = false let havePlayed = false
// Appel de la variable globale user
const user = require("../model/user.js") const user = require("../model/user.js")
export default { export default {
...@@ -56,6 +58,9 @@ export default { ...@@ -56,6 +58,9 @@ export default {
}, },
methods: { methods: {
select: async function (value) { select: async function (value) {
// Fonction éxécuté lors de l'appui sur une des réponses et inscrit le résultat dans la base de donnée
// Appel de la fonction récupérant les résultat dans un second temps
const gameID = window.location.href.split("/").slice(-1)[0] const gameID = window.location.href.split("/").slice(-1)[0]
if (havePlayed) if (havePlayed)
...@@ -76,6 +81,9 @@ export default { ...@@ -76,6 +81,9 @@ export default {
}, },
getResult: async function(gameID,value) { getResult: async function(gameID,value) {
// Fonction appelée pour la première fois par "select" puis ensuite par elle meme tout les quarts de seconde
// Cette fonction récupère les résultats de la manche en cours
const res = await fetch( const res = await fetch(
sessionStorage.getItem('APIURL') + `/result/${gameID}`, sessionStorage.getItem('APIURL') + `/result/${gameID}`,
{ {
...@@ -83,10 +91,12 @@ export default { ...@@ -83,10 +91,12 @@ export default {
} }
) )
const result = await res.json() const result = await res.json()
// Si on récupère deux résultats (donc que les deux joueurs ont joué)
if (result.length >= 2) { if (result.length >= 2) {
this.updateScore(result, value) this.updateScore(result, value)
this.resetStyle() this.resetStyle()
havePlayed = false havePlayed = false
// Attente avant la suppression de la valeur adverse afin de s'assurer que l'autre joueur est prêt pour le rond suivant
setTimeout(async () => {this.resetGame(result)},700) setTimeout(async () => {this.resetGame(result)},700)
return return
} }
...@@ -97,6 +107,7 @@ export default { ...@@ -97,6 +107,7 @@ export default {
}, },
updateScore: function (result, value) { updateScore: function (result, value) {
// Fonction mettant à jour le score et calculant si la partie est gagnée par un des deux joueurs
let i = 0; let i = 0;
if(result[0]['USER_ID'] == user.id){ if(result[0]['USER_ID'] == user.id){
i = 1 i = 1
...@@ -144,6 +155,7 @@ export default { ...@@ -144,6 +155,7 @@ export default {
} }
}, },
updateUser: async function(win, lost){ updateUser: async function(win, lost){
// Fonction appelée en fin de partie et qui met à jour les statistiques du joueur dans la base de donnée
if(user.id<1000000){ if(user.id<1000000){
let rock = this.rock let rock = this.rock
let paper = this.paper let paper = this.paper
...@@ -164,6 +176,7 @@ export default { ...@@ -164,6 +176,7 @@ export default {
, ,
resetGame: async function(result) { resetGame: async function(result) {
// Fonction appelée à la fin d'un round et qui supprime le résultat adverse du round
let i = 0; let i = 0;
if(result[0]['USER_ID'] == user.id){ if(result[0]['USER_ID'] == user.id){
i = 1 i = 1
...@@ -178,6 +191,7 @@ export default { ...@@ -178,6 +191,7 @@ export default {
}, },
resetStyle: function () { resetStyle: function () {
// Fonction appelée en fin de round et qui remet à zéro le style des boutons de jeu
document.getElementById("rock").classList.remove("selected") document.getElementById("rock").classList.remove("selected")
document.getElementById("paper").classList.remove("selected") document.getElementById("paper").classList.remove("selected")
document.getElementById("scissors").classList.remove("selected") document.getElementById("scissors").classList.remove("selected")
......
...@@ -108,6 +108,7 @@ export default { ...@@ -108,6 +108,7 @@ export default {
}, },
methods: { methods: {
check: function(){ check: function(){
// Fonction vérifiant et mettant en forme les données pour la fonction call
let firstname = this.firstname let firstname = this.firstname
let lastname = this.lastname let lastname = this.lastname
let login = this.login let login = this.login
...@@ -137,6 +138,7 @@ export default { ...@@ -137,6 +138,7 @@ export default {
}, },
call: function(data){ call: function(data){
// Fonction permetant d'ajouter l'utilisateur à la base
const url = sessionStorage.getItem('APIURL') + "/user" const url = sessionStorage.getItem('APIURL') + "/user"
var params = { var params = {
......
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
</style> </style>
<script> <script>
// Appel des variables globales user et game
const user = require("../model/user.js") const user = require("../model/user.js")
const game = require("../model/game.js") const game = require("../model/game.js")
export default { export default {
...@@ -62,6 +63,7 @@ export default { ...@@ -62,6 +63,7 @@ export default {
}, },
methods: { methods: {
rejoindre: async function(){ rejoindre: async function(){
// Fonction inscrivant le joueur au code de game rentré et le redirigeant vers la page d'attente privée
if((Number(this.idgame) != this.idgame || Number(this.idgame) < 0 )){ if((Number(this.idgame) != this.idgame || Number(this.idgame) < 0 )){
return return
} }
......
...@@ -77,12 +77,13 @@ ...@@ -77,12 +77,13 @@
</style> </style>
<script> <script>
// Appel des variables globales user
const user = require("../model/user.js") const user = require("../model/user.js")
export default { export default {
name: 'Login', name: 'Login',
data(){ // the data, declared as function data(){
return{ // we return all the properties that should be react on. return{
log: '', log: '',
pass: '' pass: ''
...@@ -90,6 +91,7 @@ export default { ...@@ -90,6 +91,7 @@ export default {
}, },
methods: { methods: {
check: function(){ check: function(){
// Fonction vérifiant et mettant en forme les données pour la fonction call
let login = this.log let login = this.log
let password = this.pass let password = this.pass
var bcrypt = require('bcryptjs'); var bcrypt = require('bcryptjs');
...@@ -99,6 +101,8 @@ export default { ...@@ -99,6 +101,8 @@ export default {
}, },
call: function(login, password){ call: function(login, password){
// Fonction vérifiant les valeurs transmise par l'utilsateur et enregistre ses informations dans la variable "user" en cas de réponse positive
// Fonction redirigeant à l'accueil une fois la connexion réussi
const url = sessionStorage.getItem('APIURL') + "/login" const url = sessionStorage.getItem('APIURL') + "/login"
let data = { let data = {
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
<script> <script>
// Appel des variables globales user et game
const user = require("../model/user.js") const user = require("../model/user.js")
const game = require("../model/game.js") const game = require("../model/game.js")
...@@ -45,6 +46,8 @@ export default { ...@@ -45,6 +46,8 @@ export default {
methods: { methods: {
ajouterUser: async function() { ajouterUser: async function() {
// Fonction ajoutant l'utilisateur à la fil d'attente des perosnnes en ligne
// Elle appelle ensuite la fonction "findGame"
await fetch( await fetch(
sessionStorage.getItem('APIURL') + `/online/${user.id}`, sessionStorage.getItem('APIURL') + `/online/${user.id}`,
{ {
...@@ -55,6 +58,8 @@ export default { ...@@ -55,6 +58,8 @@ export default {
}, },
findGame: async function(){ findGame: async function(){
// Fonction appeler la première fois par "ajouterUser" puis par elle même toute les secondes en cas de non affectation à une partie
// Fonction permetant de récupéré le code la game auquel le user est affecté
const res = await fetch( const res = await fetch(
sessionStorage.getItem('APIURL') + `/online/${user.id}`, sessionStorage.getItem('APIURL') + `/online/${user.id}`,
{ {
...@@ -73,6 +78,8 @@ export default { ...@@ -73,6 +78,8 @@ export default {
}, },
goGame: async function(gameID) { goGame: async function(gameID) {
// Fonction vérifiant que deux personne sont bien dans la partie avant de lancer la partie
// Si il est tout seul dans la partie, la fonction se rapelle toute les secondes
let url = sessionStorage.getItem('APIURL') + "/gameuser/game" let url = sessionStorage.getItem('APIURL') + "/gameuser/game"
url += "/" + gameID; url += "/" + gameID;
var params = { var params = {
...@@ -85,10 +92,12 @@ export default { ...@@ -85,10 +92,12 @@ export default {
this.$router.push(`/game/${gameID}`) this.$router.push(`/game/${gameID}`)
return return
} }
setTimeout(() => {this.goGame(gameID)}, 2000) setTimeout(() => {this.goGame(gameID)}, 1000)
}, },
retour: async function() { retour: async function() {
// Fonction permettant de retourner à l'accueil en cas d'appui sur le bouton retour
// La fonction supprime l'user de la liste d'attente online avant de le rediriger vers l'accueil
let data = { let data = {
"GAME_ID": game.id "GAME_ID": game.id
} }
...@@ -105,6 +114,7 @@ export default { ...@@ -105,6 +114,7 @@ export default {
}, },
beforeMount(){ beforeMount(){
// Appel de la fonction "ajouterUser" lors du chargement de la page
this.ajouterUser(); this.ajouterUser();
}, },
} }
......
...@@ -28,15 +28,13 @@ ...@@ -28,15 +28,13 @@
</style> </style>
<script> <script>
// const user = require("../model/user.js") // Appel des variables globales game
const game = require("../model/game.js") const game = require("../model/game.js")
export default { export default {
name: 'PlayerPrivate', name: 'PlayerPrivate',
methods: { methods: {
gameID: function(){
return game.id
},
JoueurPresent: async function(){ JoueurPresent: async function(){
// Fonction permettant d'afficher les joueurs présent et de rediger vers la partie lors de l'obtention du nombre de joueurs souhaités
let url = sessionStorage.getItem('APIURL') + "/gameuser/game" let url = sessionStorage.getItem('APIURL') + "/gameuser/game"
url += "/" + game.id; url += "/" + game.id;
var params = { var params = {
......
...@@ -83,6 +83,7 @@ ...@@ -83,6 +83,7 @@
</style> </style>
<script> <script>
// Appel des variables globales user
const user = require("../model/user.js") const user = require("../model/user.js")
export default { export default {
...@@ -101,6 +102,7 @@ export default { ...@@ -101,6 +102,7 @@ export default {
}, },
methods: { methods: {
check: function(){ check: function(){
// Fonction vérifiant et mettant en forme les données pour la fonction call
if(this.firstname == ""){ if(this.firstname == ""){
var first = user.first var first = user.first
...@@ -139,6 +141,10 @@ export default { ...@@ -139,6 +141,10 @@ export default {
}, },
call: function(data){ call: function(data){
// Fonction mettant à jour les infos de l'utilisateur dans la base de donnée
// La fonction met également à jour la variable globale "user"
// Renvoi à l'accueil une fois la fonction terminée
const url = sessionStorage.getItem('APIURL') + `/user/${user.id}` const url = sessionStorage.getItem('APIURL') + `/user/${user.id}`
var params = { var params = {
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
</style> </style>
<script> <script>
// Appel des variables globales user
const user = require("../model/user.js") const user = require("../model/user.js")
export default { export default {
...@@ -64,6 +65,7 @@ export default { ...@@ -64,6 +65,7 @@ export default {
}, },
methods: { methods: {
getStats: async function() { getStats: async function() {
// Fonction récupérant les stats d'un user et qui met la variable "user" à jour
await fetch( await fetch(
sessionStorage.getItem('APIURL') + `/user/${user.id}`, sessionStorage.getItem('APIURL') + `/user/${user.id}`,
{ {
...@@ -84,6 +86,7 @@ export default { ...@@ -84,6 +86,7 @@ export default {
}, },
beforeMount(){ beforeMount(){
// Appel de la fonction "getStats" au chargement de la page
this.getStats(); this.getStats();
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment