diff options
Diffstat (limited to 'examples/declarative/tic-tac-toe')
-rw-r--r-- | examples/declarative/tic-tac-toe/content/Button.qml | 37 | ||||
-rw-r--r-- | examples/declarative/tic-tac-toe/content/TicTac.qml | 20 | ||||
-rw-r--r-- | examples/declarative/tic-tac-toe/content/pics/board.png | bin | 12258 -> 0 bytes | |||
-rw-r--r-- | examples/declarative/tic-tac-toe/content/pics/o.png | bin | 1470 -> 0 bytes | |||
-rw-r--r-- | examples/declarative/tic-tac-toe/content/pics/x.png | bin | 1331 -> 0 bytes | |||
-rw-r--r-- | examples/declarative/tic-tac-toe/content/tic-tac-toe.js | 145 | ||||
-rw-r--r-- | examples/declarative/tic-tac-toe/tic-tac-toe.qml | 77 | ||||
-rw-r--r-- | examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject | 16 |
8 files changed, 0 insertions, 295 deletions
diff --git a/examples/declarative/tic-tac-toe/content/Button.qml b/examples/declarative/tic-tac-toe/content/Button.qml deleted file mode 100644 index ecf18cd0f7..0000000000 --- a/examples/declarative/tic-tac-toe/content/Button.qml +++ /dev/null @@ -1,37 +0,0 @@ -import Qt 4.7 - -Rectangle { - id: container - - property string text: "Button" - property bool down: false - property string mainCol: "lightgray" - property string darkCol: "darkgray" - property string lightCol: "white" - - width: buttonLabel.width + 20; height: buttonLabel.height + 6 - border { width: 1; color: Qt.darker(mainCol) } - radius: 8; - color: mainCol - smooth: true - - gradient: Gradient { - GradientStop { - id: topGrad; position: 0.0 - color: if (container.down) { darkCol } else { lightCol } - } - GradientStop { position: 1.0; color: mainCol } - } - - signal clicked - - MouseArea { id: mr; anchors.fill: parent; onClicked: container.clicked() } - - Text { - id: buttonLabel - - anchors.centerIn: container - text: container.text; - font.pixelSize: 14 - } -} diff --git a/examples/declarative/tic-tac-toe/content/TicTac.qml b/examples/declarative/tic-tac-toe/content/TicTac.qml deleted file mode 100644 index d2479430ff..0000000000 --- a/examples/declarative/tic-tac-toe/content/TicTac.qml +++ /dev/null @@ -1,20 +0,0 @@ -import Qt 4.7 - -Item { - signal clicked - - states: [ - State { name: "X"; PropertyChanges { target: image; source: "pics/x.png" } }, - State { name: "O"; PropertyChanges { target: image; source: "pics/o.png" } } - ] - - Image { - id: image - anchors.centerIn: parent - } - - MouseArea { - anchors.fill: parent - onClicked: parent.clicked() - } -} diff --git a/examples/declarative/tic-tac-toe/content/pics/board.png b/examples/declarative/tic-tac-toe/content/pics/board.png Binary files differdeleted file mode 100644 index 7e5b7ba27c..0000000000 --- a/examples/declarative/tic-tac-toe/content/pics/board.png +++ /dev/null diff --git a/examples/declarative/tic-tac-toe/content/pics/o.png b/examples/declarative/tic-tac-toe/content/pics/o.png Binary files differdeleted file mode 100644 index abc7ee020b..0000000000 --- a/examples/declarative/tic-tac-toe/content/pics/o.png +++ /dev/null diff --git a/examples/declarative/tic-tac-toe/content/pics/x.png b/examples/declarative/tic-tac-toe/content/pics/x.png Binary files differdeleted file mode 100644 index ddc65c83b8..0000000000 --- a/examples/declarative/tic-tac-toe/content/pics/x.png +++ /dev/null diff --git a/examples/declarative/tic-tac-toe/content/tic-tac-toe.js b/examples/declarative/tic-tac-toe/content/tic-tac-toe.js deleted file mode 100644 index f8d6d9ff20..0000000000 --- a/examples/declarative/tic-tac-toe/content/tic-tac-toe.js +++ /dev/null @@ -1,145 +0,0 @@ -function winner(board) -{ - for (var i=0; i<3; ++i) { - if (board.children[i].state!="" - && board.children[i].state==board.children[i+3].state - && board.children[i].state==board.children[i+6].state) - return true - - if (board.children[i*3].state!="" - && board.children[i*3].state==board.children[i*3+1].state - && board.children[i*3].state==board.children[i*3+2].state) - return true - } - - if (board.children[0].state!="" - && board.children[0].state==board.children[4].state!="" - && board.children[0].state==board.children[8].state!="") - return true - - if (board.children[2].state!="" - && board.children[2].state==board.children[4].state!="" - && board.children[2].state==board.children[6].state!="") - return true - - return false -} - -function restart() -{ - // No moves left - start again - for (var i=0; i<9; ++i) - board.children[i].state = "" -} - -function makeMove(pos,player) -{ - board.children[pos].state = player - if (winner(board)) { - win(player + " wins") - return true - } else { - return false - } -} - -function computerTurn() -{ - var r = Math.random(); - if(r < game.difficulty){ - smartAI(); - }else{ - randAI(); - } -} - -function smartAI() -{ - function boardCopy(a){ - var ret = new Object; - ret.children = new Array(9); - for(var i = 0; i<9; i++){ - ret.children[i] = new Object; - ret.children[i].state = a.children[i].state; - } - return ret; - } - for(var i=0; i<9; i++){ - var simpleBoard = boardCopy(board); - if (board.children[i].state == "") { - simpleBoard.children[i].state = "O"; - if(winner(simpleBoard)){ - makeMove(i,"O") - return - } - } - } - for(var i=0; i<9; i++){ - var simpleBoard = boardCopy(board); - if (board.children[i].state == "") { - simpleBoard.children[i].state = "X"; - if(winner(simpleBoard)){ - makeMove(i,"O") - return - } - } - } - function thwart(a,b,c){//If they are at a, try b or c - if (board.children[a].state == "X") { - if (board.children[b].state == "") { - makeMove(b,"O") - return true - }else if (board.children[c].state == "") { - makeMove(c,"O") - return true - } - } - return false; - } - if(thwart(4,0,2)) return; - if(thwart(0,4,3)) return; - if(thwart(2,4,1)) return; - if(thwart(6,4,7)) return; - if(thwart(8,4,5)) return; - if(thwart(1,4,2)) return; - if(thwart(3,4,0)) return; - if(thwart(5,4,8)) return; - if(thwart(7,4,6)) return; - for(var i =0; i<9; i++){//Backup - if (board.children[i].state == "") { - makeMove(i,"O") - return - } - } - restart(); -} - -function randAI() -{ - var open = 0; - for (var i=0; i<9; ++i) - if (board.children[i].state == "") { - open += 1; - } - if(open == 0){ - restart(); - return; - } - var openA = new Array(open);//JS doesn't have lists I can append to (i think) - var acc = 0; - for (var i=0; i<9; ++i) - if (board.children[i].state == "") { - openA[acc] = i; - acc += 1; - } - var choice = openA[Math.floor(Math.random() * open)]; - makeMove(choice, "O"); -} - -function win(s) -{ - msg.text = s - msg.opacity = 1 - endtimer.running = true -} - diff --git a/examples/declarative/tic-tac-toe/tic-tac-toe.qml b/examples/declarative/tic-tac-toe/tic-tac-toe.qml deleted file mode 100644 index dd13052891..0000000000 --- a/examples/declarative/tic-tac-toe/tic-tac-toe.qml +++ /dev/null @@ -1,77 +0,0 @@ -import Qt 4.7 -import "content" -import "content/tic-tac-toe.js" as Logic - -Item { - id: game - - property bool show: false - property real difficulty: 1.0 //chance it will actually think - - width: 440 - height: 480 - anchors.fill: parent - - Image { - id: boardimage - anchors { verticalCenter: parent.verticalCenter; horizontalCenter: parent.horizontalCenter } - source: "content/pics/board.png" - } - - Grid { - id: board - anchors.fill: boardimage - columns: 3 - - Repeater { - model: 9 - TicTac { - width: board.width/3 - height: board.height/3 - onClicked: { - if (!endtimer.running) { - if (!Logic.makeMove(index,"X")) - Logic.computerTurn() - } - } - } - } - - Timer { - id: endtimer - interval: 1600 - onTriggered: { msg.opacity = 0; Logic.restart() } - } - } - - Row { - spacing: 4 - anchors { top: board.bottom; horizontalCenter: board.horizontalCenter } - - Button { - text: "Hard" - onClicked: game.difficulty = 1.0; - down: game.difficulty == 1.0 - } - Button { - text: "Moderate" - onClicked: game.difficulty = 0.8; - down: game.difficulty == 0.8 - } - Button { - text: "Easy" - onClicked: game.difficulty = 0.2; - down: game.difficulty == 0.2 - } - } - - Text { - id: msg - - anchors.centerIn: parent - opacity: 0 - color: "blue" - style: Text.Outline; styleColor: "white" - font.pixelSize: 50; font.bold: true - } -} diff --git a/examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject b/examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} |