From cecbf060661a3cf47e876f8dec0207e0f082c3d4 Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Mon, 25 Aug 2014 22:24:47 +0200 Subject: Added icons : - restart level Added transitions --- qml/pages/Goban.qml | 80 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 20 deletions(-) (limited to 'qml/pages/Goban.qml') diff --git a/qml/pages/Goban.qml b/qml/pages/Goban.qml index 64475ec..baffa39 100644 --- a/qml/pages/Goban.qml +++ b/qml/pages/Goban.qml @@ -25,6 +25,47 @@ Item { */ property bool currentPlayer: true; + property variant tree; + + /* + * Start the game. + * + * Initialize the board with the stones, and set player color. + */ + function start() { + + currentPlayer = true; + + for (var i = 0; i < goban.rows * goban.columns; i++) { + repeater.itemAt(i).clear(); + } + + var initial + + i = 0; + + while (tree[i].AW === undefined && tree[i].AB === undefined) { + i++; + } + + initial = tree[i] + + var aw = initial.AW; + if (aw !== undefined) { + aw.forEach(function (pos) { + goban.getItemAt(pos[0], pos[1]).setColor(currentPlayer); + }); + } + + var ab = initial.AB; + if (ab !== undefined) { + ab.forEach(function (pos) { + goban.getItemAt(pos[0], pos[1]).setColor(!currentPlayer); + + }); + } + } + function setGoban(ret) { limitTop = ret.side.TOP; @@ -35,7 +76,6 @@ Item { goban.columns = ret.size[0] goban.rows = ret.size[1] - currentPlayer = true; var maxWidth = width / ret.size[0] var maxHeight = height / ret.size[1] @@ -49,22 +89,8 @@ Item { /* * Put the initials stones */ - var initial = ret.tree[0] - - var aw = initial.AW; - if (aw !== undefined) { - aw.forEach(function (pos) { - goban.getItemAt(pos[0], pos[1]).setColor(currentPlayer); - }); - } - - var ab = initial.AB; - if (ab !== undefined) { - ab.forEach(function (pos) { - goban.getItemAt(pos[0], pos[1]).setColor(!currentPlayer); - - }); - } + tree = ret.tree; + start(); } /** @@ -113,7 +139,7 @@ Item { // return; // } - point.setColor(currentPlayer); + point.put(currentPlayer); if (neighbors.length !== 0) { @@ -235,16 +261,30 @@ Item { Item { + function put(isWhite) { + piece.type = isWhite ? "white" : "black"; + piece.state = "shown"; + } + function setColor(isWhite) { - piece.type = isWhite ? "white" : "black" + piece.init(isWhite ? "white" : "black"); } function remove() { + piece.state = "remove" + } + + function clear() { piece.type = ""; + piece.state = ""; } function getType() { - return piece.type; + if (piece.state == "remove") { + return ""; + } else { + return piece.type; + } } width: caseSize; height: caseSize -- cgit v1.2.3