Tic tac toe works

This commit is contained in:
Jonatan Pålsson 2011-05-16 16:29:27 +02:00
parent f81fec6b9c
commit 620b19bff6
4 changed files with 50 additions and 29 deletions

@ -1 +1 @@
Subproject commit a94993dc5a626605bdf45c45f398270fe33eaaf1
Subproject commit 2d5eaad6fdeb6e07d8b7f86ba53cda3e6351835a

View file

@ -1,5 +1,5 @@
function playerCommand(player_id, command, args) {
if (commaned == "hi") {
if (command == "hi") {
hi(player_id);
} else if (command == "set") {
move(player_id, args);
@ -13,12 +13,14 @@ var ROWS = 3;
function hi(player_id) {
var p1_id = GGS.localStorage.getItem("p1_id");
var p2_id = GGS.localStorage.getItem("p2_id");
if (p1_id == "") {
if (!p1_id) {
GGS.localStorage.setItem("p1_id", player_id);
GGS.localStorage.setItem("next_player", 1);
GGS.sendCommand(player_id, "welcome", "1");
} else if (p2_id == "") {
} else if (!p2_id) {
GGS.localStorage.setItem("p2_id", player_id);
GGS.sendCommand(player_id, "welcome", "2");
newGame();
} else {
GGS.sendCommand(player_id, "not_welcome", "Already have 2 players on this table");
}
@ -37,7 +39,6 @@ function move(player_id, args) {
}
if (valid) {
var p = nextPlayer;
var props = JSON.parse(args);
var gameBoard = JSON.parse(GGS.localStorage.getItem("game_board"));
@ -65,9 +66,8 @@ function move(player_id, args) {
GGS.localStorage.setItem("next_player", 1);
GGS.sendCommand(p2_id, "yourturn", "");
}
} else {
GGS.sendCommand(plaer_id, "warning", "Already set, chose something else.");
GGS.sendCommand(player_id, "warning", "Already set, chose something else.");
}
} else {
@ -126,14 +126,14 @@ function newGame() {
// Initiate game with empty rows and columns
var gameBoard = [];
for (var i=0; i < ROWS; i++) {
gameBoard[i] = [];
for (var j=0; i < ROWS; i++) {
gameBoard[i][j] = '';
gameBoard[i] = [""];
for (var j=0; j < ROWS; j++) {
gameBoard[i][j] = "";
}
}
GGS.localStorage.setItem("game_board", JSON.stringify(gameBoard));
GGS.sendCommandToAll("new_game", "");
GGS.sendCommandToAll("new_game", "");
GGS.sendCommandToAll("game_board", boardAsString(gameBoard));
}

View file

@ -23,15 +23,15 @@ class GGSTTT:
#Create our dictionay and connect it
dic = { "on_window1_destroy_event" : gtk.main_quit
,"on_x0y0_clicked" : lambda x: self.sendMove("{'x':0,'y':0}")
,"on_x0y1_clicked" : lambda x: self.sendMove("{'x':0,'y':1}")
,"on_x0y2_clicked" : lambda x: self.sendMove("{'x':0,'y':2}")
,"on_x1y0_clicked" : lambda x: self.sendMove("{'x':1,'y':0}")
,"on_x1y1_clicked" : lambda x: self.sendMove("{'x':1,'y':1}")
,"on_x1y2_clicked" : lambda x: self.sendMove("{'x':1,'y':2}")
,"on_x2y0_clicked" : lambda x: self.sendMove("{'x':2,'y':0}")
,"on_x2y1_clicked" : lambda x: self.sendMove("{'x':2,'y':1}")
,"on_x2y2_clicked" : lambda x: self.sendMove("{'x':2,'y':2}")
,"on_x0y0_clicked" : lambda x: self.sendMove("{\"x\":0,\"y\":0}")
,"on_x0y1_clicked" : lambda x: self.sendMove("{\"x\":0,\"y\":1}")
,"on_x0y2_clicked" : lambda x: self.sendMove("{\"x\":0,\"y\":2}")
,"on_x1y0_clicked" : lambda x: self.sendMove("{\"x\":1,\"y\":0}")
,"on_x1y1_clicked" : lambda x: self.sendMove("{\"x\":1,\"y\":1}")
,"on_x1y2_clicked" : lambda x: self.sendMove("{\"x\":1,\"y\":2}")
,"on_x2y0_clicked" : lambda x: self.sendMove("{\"x\":2,\"y\":0}")
,"on_x2y1_clicked" : lambda x: self.sendMove("{\"x\":2,\"y\":1}")
,"on_x2y2_clicked" : lambda x: self.sendMove("{\"x\":2,\"y\":2}")
,"on_connectBtn_clicked" : lambda x: self.doConnect()
}
@ -53,10 +53,6 @@ class GGSTTT:
"Content-Length: %s\n" % len(token)+
"\n"+
token)
self.s.send("Game-Command: hi\n" +
"Content-Type: text\n" +
"Content-Length: 0\n"+
"\n")
def sendMove(self, move):
print "Sending move", move
@ -93,15 +89,39 @@ class GGSTTT:
if defined == "false":
print "Defining game"
js = open("server.js").read()
self.wTree.get_widget("token").set_text(table_token)
self.s.send("Server-Command: define\n"+
"Content-Type: text\n" +
("Content-Length: %s\n" % len(js))+
"\n%s" % js)
"Content-Length: %s\n" % str(len(js))+
"\n" +
js)
if defined == "true":
self.s.send("Game-Command: hi\n" +
"Content-Type: text\n" +
"Content-Length: 0\n"+
"\n")
elif msg["Client-Command"] == "welcome":
self.setStatus("You are player %s" % msg["data"])
elif msg["Client-Command"] == "chat":
gobject.idle_add(self.updateChatText, msg["DATA"])
self.setStatus("You are player %s" % msg["DATA"])
elif msg["Client-Command"] == "warning":
self.setStatus("Warning: %s" % msg["DATA"])
elif msg["Client-Command"] == "not_welcome":
self.setStatus("You are not welcome: %s" % msg["DATA"])
elif msg["Client-Command"] == "game_board":
self.wTree.get_widget("x0y0").set_label(msg["DATA"][0])
self.wTree.get_widget("x0y1").set_label(msg["DATA"][1])
self.wTree.get_widget("x0y2").set_label(msg["DATA"][2])
self.wTree.get_widget("x1y0").set_label(msg["DATA"][3])
self.wTree.get_widget("x1y1").set_label(msg["DATA"][4])
self.wTree.get_widget("x1y2").set_label(msg["DATA"][5])
self.wTree.get_widget("x2y0").set_label(msg["DATA"][6])
self.wTree.get_widget("x2y1").set_label(msg["DATA"][7])
self.wTree.get_widget("x2y2").set_label(msg["DATA"][8])
elif msg["Client-Command"] == "defined":
self.s.send("Game-Command: hi\n" +
"Content-Type: text\n" +
"Content-Length: 0\n"+
"\n")
elif msg["Client-Command"] == "lusers":
print msg
gobject.idle_add(self.updateUsers, msg["DATA"])

View file

@ -102,6 +102,7 @@ handle_cast({srv_cmd, "hello", _Headers, TableToken}, State) ->
{noreply, State#state{ table = TPid } }
end;
handle_cast({srv_cmd, "define", _Headers, Data}, #state { table = Table } = State) ->
erl:display(Data),
ggs_table:notify(Table, self(), {server, define, Data}),
{noreply, State};
handle_cast({game_cmd, Command, _Headers, Data}, #state { table = Table } = State) ->