Skip to content

Commit 33eb697

Browse files
committed
Updating game logic, user account and puzzles
1 parent 1359952 commit 33eb697

File tree

108 files changed

+3362
-604
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+3362
-604
lines changed

README.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@ VueChess
1717
Images
1818
------
1919

20-
![mostrando app](images/1.png "Vs PC")
21-
![mostrando app](images/2.png "Viewing a finished game")
22-
![mostrando app](images/3.png "Puzzle (White mates in a movement)")
20+
![mostrando app](images/game.png "users players")
21+
![mostrando app](images/invite.png "user invite")
22+
![mostrando app](images/invites.png "invites users")
23+
![mostrando app](images/init.png "init game")
24+
![mostrando app](images/puzzles.png "Puzzle (White mates in 3)")
25+
![mostrando app](images/create_puzzle.png "adding a puzzle type")
26+
![mostrando app](images/visor.png "visor")
27+
![mostrando app](images/user_account.png "user account")
2328

2429

2530
*in progress*

images/1.png

-503 KB
Binary file not shown.

images/2.png

-529 KB
Binary file not shown.

images/3.png

-479 KB
Binary file not shown.

images/create_puzzle.png

371 KB
Loading

images/game.png

428 KB
Loading

images/init.png

94.1 KB
Loading

images/invite.png

71 KB
Loading

images/invites.png

72 KB
Loading

images/puzzles.png

351 KB
Loading

images/user_account.png

138 KB
Loading

images/visor.png

329 KB
Loading

server/config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var config = {
88
// user: 'admin',
99
// pass: '123456'
1010
},
11-
uri: process.env.MONGO_URL || 'mongodb://127.0.0.1/vuexchess'
11+
uri: process.env.MONGO_URL || 'mongodb://127.0.0.1/vuegustchess'
1212
},
1313
porthttp: process.env.PORT || 3311,
1414
multicore: false,

server/controllers/board.server.controller.js

+145-5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var Board = mongoose.model('boards');
44
var boards= {};
55
var async = require('async');
66
var userController= require('./chat.server.controller');
7+
var useFork = false
78

89
var userIsPlayed = (user) => {
910
for (var i in boards) {
@@ -23,6 +24,17 @@ var changeBoards = (someBoard, method) => {
2324
process.send(send)
2425
}
2526

27+
exports.confirmGame = (io,socket,dta,next) => {
28+
// usuario invitado confirma que quiere juegar la partida indicada
29+
var nicknames = userController.getNicknames(io)
30+
var otherUser = dta.u1 === socket.nickname.nickname ? dta.u2 : dta.u1
31+
if(nicknames[otherUser]){
32+
dta.event = 'confirmGame'
33+
dta.confirm = true
34+
io.sockets.connected[nicknames[otherUser].socket].emit("event", dta);
35+
}
36+
nicknames = {}
37+
}
2638

2739
exports.addBoard = (io,socket,dta,next) => {
2840
// crear nuevo tablero
@@ -65,13 +77,14 @@ exports.addBoard = (io,socket,dta,next) => {
6577
if (dta.u2 !== 'PC' && nicknames[dta.u2]) {
6678
io.sockets.connected[nicknames[dta.u2].socket].join(board._id);
6779
}
68-
socket.join(board._id)
80+
socket.join(board._id)
6981
// iniciar juego de sala
7082
var data= {
7183
event: 'initGame',
7284
data: board
7385
}
7486
io.sockets.in(board._id).emit('event', data);
87+
nicknames = {}
7588
return next(null,board)
7689
});
7790
}
@@ -81,6 +94,7 @@ exports.inviteGame = (io,socket,dta,next) => {
8194
if(nicknames[dta.data.recibe]){
8295
io.sockets.connected[nicknames[dta.data.recibe].socket].emit("event", dta);
8396
}
97+
nicknames = {}
8498
}
8599

86100
var closeGame = (io, dta, next) => {
@@ -150,7 +164,6 @@ var isFinishTime = (idBoard, io) => {
150164
}
151165
exports.move = (io,socket,board,next) => {
152166
// salvar estado de tablero
153-
154167
if (boards[board.data.idBoard]) {
155168
if (board.data.pgn) {
156169
boards[board.data.idBoard].pgn = board.data.pgn;
@@ -178,7 +191,6 @@ exports.getBoard = (io,socket,board,next) => {
178191
return next('not_found')
179192
}
180193
// en el servidor se llevan los tiempos reales de cada partida
181-
182194
if (!timesBoards[board._id]){
183195
// inicializacion de tiempos de juego
184196
timesBoards[board._id] =
@@ -215,7 +227,7 @@ exports.getBoard = (io,socket,board,next) => {
215227
next(null,{board:boards[board._id] ,times: timesBoards[board._id].times})
216228
setTimeout(function() {
217229
isFinishTime(board._id, io);
218-
},1000)
230+
},1000)
219231
}
220232

221233
exports.filterViews = (req, res) => {
@@ -243,4 +255,132 @@ exports.filterViews = (req, res) => {
243255
return res.status(200).send(results)
244256
}
245257
});
246-
}
258+
}
259+
260+
exports.stats = (req, res) => {
261+
var parms = req.query;
262+
getStaticticsUser(parms.user, (err,results) => {
263+
// dar formato al resultado
264+
results = formatResultStatis(results)
265+
if (err) {
266+
return res.status(500).send(err);
267+
} else {
268+
return res.status(200).send(results)
269+
}
270+
})
271+
272+
273+
}
274+
275+
var getStaticticsUser = (user,next) => {
276+
async.parallel({
277+
whitevsPC: function(callback) {
278+
Board.count(
279+
{
280+
u1: user,
281+
u2: 'PC',
282+
wins: 'white'
283+
}
284+
, function(err, count) {
285+
callback(null, count);
286+
})
287+
},
288+
blackvsPC: function(callback) {
289+
Board.count(
290+
{
291+
u2: user,
292+
u1: 'PC',
293+
wins: 'black'
294+
}
295+
, function(err, count) {
296+
callback(null, count);
297+
})
298+
},
299+
totalWhitevsPC: function(callback) {
300+
Board.count(
301+
{
302+
u1: user,
303+
u2: 'PC'
304+
}
305+
, function(err, count) {
306+
callback(null, count);
307+
})
308+
},
309+
totalvsPC: function(callback) {
310+
Board.count(
311+
{
312+
u1: {$in: ['PC',user]},
313+
u2: {$in: ['PC',user]}
314+
}
315+
, function(err, count) {
316+
callback(null, count);
317+
})
318+
},
319+
320+
// vs user no pc
321+
whitevsOthersUsers: function(callback) {
322+
Board.count(
323+
{
324+
u1: user,
325+
u2: {$nin: ['PC']},
326+
wins: 'white'
327+
}
328+
, function(err, count) {
329+
callback(null, count);
330+
})
331+
},
332+
blackvsOthersUsers: function(callback) {
333+
Board.count(
334+
{
335+
u2: user,
336+
u1: {$nin: ['PC']},
337+
wins: 'black'
338+
}
339+
, function(err, count) {
340+
callback(null, count);
341+
})
342+
},
343+
totalvsOthersUsers: function(callback) {
344+
Board.count(
345+
{$or:
346+
[{u1: user, u2: {$nin: ['PC']}},
347+
{u1: {$nin: ['PC']}, u2: user}]
348+
}
349+
, function(err, count) {
350+
callback(null, count);
351+
})
352+
},
353+
totalWhitevsOthersUsers: function(callback) {
354+
Board.count(
355+
{
356+
u1: user,
357+
u2: {$nin: ['PC']}
358+
}
359+
, function(err, count) {
360+
callback(null, count);
361+
})
362+
}
363+
},
364+
function(err, results){
365+
if (err) {
366+
return next(err);
367+
} else {
368+
return next(null,results)
369+
}
370+
});
371+
}
372+
373+
var formatResultStatis = (results) => {
374+
var result= {}
375+
for(var key in results) {
376+
if (Array.isArray(results[key])) {
377+
for(var n in results[key]) {
378+
result[key] = {}
379+
result[key][results[key][n]._id]=results[key][n].nums
380+
}
381+
}else {
382+
result[key] = results[key]
383+
}
384+
}
385+
return result
386+
}

server/controllers/chat.server.controller.js

+20-9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ exports.username = (io,socket,dta,next) => {
1919
}
2020
var _user = {
2121
nickname: user.username,
22+
name: user.name,
23+
image: user.image,
2224
id: user._id,
2325
socket:socket.id
2426
}
@@ -138,21 +140,17 @@ var loadConver = (user1, user2, range, next) => {
138140
.sort({created: -1})
139141
.limit(range.limit)
140142
.skip(range.skip)
141-
.exec(function(err, men) {
142-
if (err) {
143-
return next(err);
144-
} else {
145-
return next(men);
146-
}
143+
.exec(function(err, mens) {
144+
next(err,mens)
147145
})
148146
}
149147

150148
exports.loadUserConvert = (io,socket,dta,next) => {
151149
if (socket.nickname)
152-
loadConver(socket.nickname.nickname, dta.user, dta.range, function (log) {
153-
next(null,log)
150+
loadConver(socket.nickname.nickname, dta.user, dta.range, function (err,log) {
151+
next(err,log)
154152
})
155-
}
153+
}
156154

157155
var userLog = (user, next) => {
158156
var losgs_retorn = new Array();
@@ -240,4 +238,17 @@ exports.uploadFile = (req, res) => {
240238
});
241239
// parse the incoming request containing the form data
242240
form.parse(req);
241+
}
242+
243+
exports.deleteImage = function(req, res) {
244+
var parms = req.body
245+
var dir = path.join(__dirname, '../public/uploads')
246+
fs.unlink(dir+'/'+parms.name, function(err){
247+
if(err){
248+
console.log(err)
249+
return res.send(500, err);
250+
}
251+
console.log('eliminando', parms)
252+
return res.status(200).send('ok')
253+
})
243254
}

0 commit comments

Comments
 (0)