Explorar el Código

Support du fichier de configuration (params.cfg)

Brendan Abolivier hace 9 años
padre
commit
eabe2f5a26
Se han modificado 7 ficheros con 55 adiciones y 31 borrados
  1. 7
    5
      web/api/model/class.connector.php
  2. 2
    1
      web/index.htm
  3. 8
    6
      web/js/game.js
  4. 14
    9
      web/js/multi.js
  5. 9
    10
      web/multi.php
  6. 10
    0
      web/multi/server/server.js
  7. 5
    0
      web/params.cfg

+ 7
- 5
web/api/model/class.connector.php Ver fichero

@@ -5,12 +5,14 @@ class Connector {
5 5
 	private $bdd;
6 6
 
7 7
 	function __construct() {
8
-		$host = "localhost";
9
-		$db = "burgerquizz";
10
-		$user = "alain";
11
-		$pass = "chabat";
8
+		$params = file_get_contents("../params.cfg");
9
+		preg_match_all('/db_(.+)\: (.+)/', $params, $matches);
10
+		$dbconnect = array();
11
+		for($i = 0; $i < sizeof($matches[0]); $i++) {
12
+			$dbconnect[$matches[1][$i]] = $matches[2][$i];
13
+		}
12 14
 
13
-		$this->bdd = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
15
+		$this->bdd = new PDO("mysql:host=".$dbconnect["host"].";dbname=".$dbconnect["dbname"], $dbconnect["user"], $dbconnect["pass"]);
14 16
 		$this->bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
15 17
 	}
16 18
 

+ 2
- 1
web/index.htm Ver fichero

@@ -16,7 +16,8 @@
16 16
   </head>
17 17
   <body>
18 18
     <div id="game"></div>
19
-    <input type="submit" id="play" value="Play" /><br />
19
+    <input type="submit" id="play" value="Solo (un joueur)" /><br />
20
+    <form action="multi.php"><input type="submit" id="multi" value="Multi (deux joueurs)" /></form>
20 21
     <script type="text/javascript">
21 22
       $("#play").click(function() {
22 23
         play();

+ 8
- 6
web/js/game.js Ver fichero

@@ -114,6 +114,7 @@ function nextQuestion() {
114 114
 
115 115
 function play() {
116 116
   $("#play").remove();
117
+  $("#multi").remove();
117 118
   apiReq();
118 119
   loadCat(id_cat);
119 120
 }
@@ -144,6 +145,7 @@ function endGame() {
144 145
 }
145 146
 
146 147
 function scoreConfirm() {
148
+  console.log("qsfd");
147 149
   addScore($("#login").val(), score);
148 150
   var message = json.message;
149 151
   $("#registerScore").fadeOut();
@@ -162,13 +164,13 @@ function scoreConfirm() {
162 164
         +"Essayez avec un autre pseudonyme : <input type=\"text\" id=\"login\" placeholder=\"Nom ou pseudonyme\" />"
163 165
         +"<input type=\"submit\" id=\"sendScore\" value=\"Valider\" /><br />"
164 166
         +"<a href=\"palmares.htm\">Voir les meilleurs scores</a>");
167
+        $("#sendScore").on('click', scoreConfirm);
168
+        $("#login").on('keypress', function(event) {
169
+          if(event.which == 13) {
170
+            scoreConfirm();
171
+          }
172
+        });
165 173
       }, 400);
166
-      $("#sendScore").on('click', scoreConfirm);
167
-      $("#login").on('keypress', function(event) {
168
-        if(event.which == 13) {
169
-          scoreConfirm();
170
-        }
171
-      });
172 174
     } else {
173 175
       window.setTimeout(function() {
174 176
         $("#registerScore").addClass("error");

web/multi/client/js/game.js → web/js/multi.js Ver fichero

@@ -11,29 +11,32 @@ var gameInfos;
11 11
 var disconnect = true;
12 12
 var scoreAdversaire = 0;
13 13
 var pseudo ='';
14
+var reponseUser = -1, bonneReponse;
14 15
 
15 16
 function init() {
16 17
 
18
+    var hostname = $('script')[1]['src'].match(/http:\/\/(.+)\:/)[1];
19
+
17 20
     // Connexion à socket.io
18
-    socket = io.connect('http://172.17.7.66:8000');
21
+    socket = io.connect('http://'+hostname+':8000');
19 22
 
20 23
     // Gestion des evenements
21 24
     setEventHandlers();
22 25
 
23 26
     // On demande le pseudo a l'utilisateur, on l'envoie au serveur et on l'affiche dans le titre
24
-    $("#game").html("<input type=\"text\" id=\"pseudo\" /><input type=\"submit\" id=\"start\" value=\"Valider\" />");
27
+    $("#game").html("<input type=\"text\" id=\"pseudo\" placeholder=\"Nom ou pseudonyme\" /><input type=\"submit\" id=\"start\" value=\"Valider\" />");
25 28
     $("#start").on("click", function() {
26 29
       pseudo = $("#pseudo").val();
27 30
       socket.emit('nouveau', pseudo);
28 31
       document.title = $("#pseudo").val() + ' - ' + document.title;
29
-      $("#game").html("Recherche d'un adversare...");
32
+      $("#game").html("Recherche d'un adversaire...");
30 33
     });
31 34
     $("#pseudo").on('keypress', function(event) {
32 35
       if(event.which == 13) {
33 36
         pseudo = $("#pseudo").val();
34 37
         socket.emit('nouveau', pseudo);
35 38
         document.title = $("#pseudo").val() + ' - ' + document.title;
36
-        $("#game").html("Recherche d'un adversare...");
39
+        $("#game").html("Recherche d'un adversaire...");
37 40
       }
38 41
     });
39 42
 };
@@ -48,6 +51,10 @@ var setEventHandlers = function() {
48 51
   socket.on("questions", play);
49 52
   socket.on("lolheded", endGame);
50 53
   socket.on("end", onEnd);
54
+  socket.on("qpass", function() {
55
+    reponseUser = -1;
56
+    checkAnswer();
57
+  })
51 58
 };
52 59
 
53 60
 function onEnd(score) {
@@ -85,7 +92,6 @@ var timing = 5, secRestantes, timer;
85 92
 var baseWidth;
86 93
 
87 94
 var score = 0;
88
-var reponseUser = -1, bonneReponse;
89 95
 var canClick = true;
90 96
 
91 97
 function apiReq() {
@@ -126,11 +132,11 @@ function quest(id) {
126 132
     +theme.questions[id].intitule);
127 133
   if(canClick) {
128 134
     $("#rep1").off('click');
129
-    $("#rep1").one("click", function() { reponseUser = 1; checkAnswer(); });
135
+    $("#rep1").one("click", function() { reponseUser = 1; checkAnswer(); socket.emit('nextQuestion'); });
130 136
     $("#rep2").off('click');
131
-    $("#rep2").one("click", function() { reponseUser = 2; checkAnswer(); });
137
+    $("#rep2").one("click", function() { reponseUser = 2; checkAnswer(); socket.emit('nextQuestion'); });
132 138
     $("#both").off('click');
133
-    $("#both").one("click", function() { reponseUser = 0; checkAnswer(); });
139
+    $("#both").one("click", function() { reponseUser = 0; checkAnswer(); socket.emit('nextQuestion'); });
134 140
   }
135 141
 }
136 142
 
@@ -191,7 +197,6 @@ function nextQuestion() {
191 197
 }
192 198
 
193 199
 function play(questions) {
194
-  console.log(questions);
195 200
   json = questions;
196 201
   loadCat(id_cat);
197 202
 }

web/multi/client/index.html → web/multi.php Ver fichero

@@ -12,20 +12,19 @@
12 12
           }
13 13
         </style>
14 14
     </head>
15
-
16 15
     <body>
17
-        <h1>Burger temps réel !</h1>
18
-
19 16
         <div id="game">
20 17
           Connexion au serveur...
21 18
         </div>
22
-
23 19
         <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
24
-        <script src="http://172.17.7.66:8000/socket.io/socket.io.js"></script>
25
-        <script src="js/game.js"></script>
26
-        <script>
27
-            init();
28
-
29
-        </script>
20
+        <?php
21
+          $params = file_get_contents("./params.cfg");
22
+    		  preg_match_all('/node_host\: (.+)/', $params, $matches);
23
+          echo '<script src="http://'.$matches[1][0].':8000/socket.io/socket.io.js"></script>';
24
+         ?>
25
+         <script src="js/multi.js"></script>
26
+         <script>
27
+          init();
28
+          </script>
30 29
     </body>
31 30
 </html>

+ 10
- 0
web/multi/server/server.js Ver fichero

@@ -88,6 +88,16 @@ function onSocketConnection(client) {
88 88
           row.joueur1.socket.emit('lolheded');
89 89
         }
90 90
       });
91
+    });
92
+
93
+    client.on('nextQuestion', function() {
94
+      games.forEach(function(row) {
95
+        if(row.joueur1.socket.id === client.id) {
96
+          row.joueur2.socket.emit('qpass');
97
+        } else if(row.joueur2.socket.id === client.id) {
98
+          row.joueur1.socket.emit('qpass');
99
+        }
100
+      });
91 101
     })
92 102
 };
93 103
 

+ 5
- 0
web/params.cfg Ver fichero

@@ -0,0 +1,5 @@
1
+node_host: localhost
2
+db_host: localhost
3
+db_dbname: burgerquizz
4
+db_user: alain
5
+db_pass: chabat