/
TicTacToe.js
56 lines (49 loc) · 1.29 KB
/
TicTacToe.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Game = new Meteor.Collection('game');
if (Meteor.isClient) {
function createMyFunction(position) {
return function() {
var temp = Game.findOne({position: position});
if (temp) {
return new Handlebars.SafeString('<a class="spot' + position + '" href="#">' + temp.content + '</a>');
} else {
return new Handlebars.SafeString('<a href="#"> </a>');
}
}
}
for (var i = 0; i < 9; i++) {
Template.ticTacToe['spot' + i] = createMyFunction(i);
}
var lookup = {
spot0: 0,
spot1: 1,
spot2: 2,
spot3: 3,
spot4: 4,
spot5: 5,
spot6: 6,
spot7: 7,
spot8: 8
};
Template.ticTacToe.events({
'click a': function() {
console.log(lookup[event.target.className]);
var temp = Game.findOne({position: lookup[event.target.className]});
if (temp) {
console.log(temp._id);
Game.update({_id: temp._id}, {$set: {content: 'X'}});
console.log(temp);
}
}
});
}
if (Meteor.isServer) {
Meteor.startup(function() {
if (Game.find().count() === 0) {
var values = ['_', '_', '_', '_', '_', '_', '_', '_', '_'];
for (var i = 0; i < values.length; i++) {
Game.insert({position: i, content: values[i]});
}
// code to run on server at startup
}
});
}