-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
64 lines (40 loc) · 1.11 KB
/
index.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
57
58
59
60
61
62
63
64
var alg = require("alg");
var colors = require("colors");
var express = require("express");
var prompt = require("prompt");
var scrambo = new (require("scrambo"))();
var app = express();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var port = 5250;
var currentState = scrambo.get(1).toString();
app.use(express.static(__dirname + "/public"));
io.on("connection", function(socket) {
socket.emit("message", "Hello World!");
socket.emit("alg", {type: "scramble", alg: currentState});
socket.on("moves", function(msg) {
try {
alg.cube.fromString(msg); //Validate input here
sendAlg(msg);
}
catch (err) {
// Bad Input
}
})
});
http.listen(port, function() {
console.log("Listening on " + ("*:" + port).green);
prompt.start();
getAlg();
});
function getAlg() {
prompt.get(["alg"], function (err, result) {
sendAlg(result.alg);
getAlg();
});
}
function sendAlg(algo) {
currentState = alg.cube.simplify(currentState + " " + algo);
console.log("Current State: " + currentState.red);
io.emit("alg", {type: "move", alg: algo});
}