From 322bc198cd781a43b54a9de139f17b4dcc93aba5 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Sun, 31 Jan 2016 19:23:46 +0000 Subject: [PATCH 01/15] Initial work --- RACNest.xcodeproj/project.pbxproj | 12 ++++++++++++ .../AppRelated/StoryboardViewController.swift | 1 + RACNest/Resources/Base.lproj/Main.storyboard | 18 ++++++++++++++++++ .../Main/Components/MainViewModel.swift | 3 ++- .../Puzzle/PuzzleViewController.swift | 13 +++++++++++++ 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 RACNest/ViewControllers/Puzzle/PuzzleViewController.swift diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index 0303c44..14ef8bf 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ C72D32FB1C470FE000F88B11 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C72D32F21C470FE000F88B11 /* Main.storyboard */; }; C72D330D1C471B0C00F88B11 /* CellProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C72D330C1C471B0C00F88B11 /* CellProtocols.swift */; }; C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C72D330E1C471B3000F88B11 /* TableViewProtocols.swift */; }; + C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A21C5E940400C69372 /* PuzzleViewController.swift */; }; C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */; }; C76C20601C5053660083F4F5 /* words.txt in Resources */ = {isa = PBXBuildFile; fileRef = C76C205F1C5053660083F4F5 /* words.txt */; }; C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */; }; @@ -55,6 +56,7 @@ C72D32F51C470FE000F88B11 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C72D330C1C471B0C00F88B11 /* CellProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CellProtocols.swift; sourceTree = ""; }; C72D330E1C471B3000F88B11 /* TableViewProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewProtocols.swift; sourceTree = ""; }; + C741B5A21C5E940400C69372 /* PuzzleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewController.swift; sourceTree = ""; }; C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; C76C205F1C5053660083F4F5 /* words.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = words.txt; sourceTree = ""; }; C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewController.swift; sourceTree = ""; }; @@ -165,6 +167,7 @@ C72D32F61C470FE000F88B11 /* ViewControllers */ = { isa = PBXGroup; children = ( + C741B5A11C5E93E400C69372 /* Puzzle */, C7852C3B1C4ACF9500375089 /* Form */, C76C20591C504B750083F4F5 /* Search */, C7852C3E1C4ACFE000375089 /* Main */, @@ -193,6 +196,14 @@ path = UI; sourceTree = ""; }; + C741B5A11C5E93E400C69372 /* Puzzle */ = { + isa = PBXGroup; + children = ( + C741B5A21C5E940400C69372 /* PuzzleViewController.swift */, + ); + path = Puzzle; + sourceTree = ""; + }; C76C20591C504B750083F4F5 /* Search */ = { isa = PBXGroup; children = ( @@ -419,6 +430,7 @@ C7CB87121C51AB8E00ED9AE6 /* GenericTableCell.swift in Sources */, C7852C461C4ACFE000375089 /* MainCellItem.swift in Sources */, C7F740591C4B2A2F00519895 /* UserDefaults.swift in Sources */, + C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */, C7F740561C4B272500519895 /* RacExtensions.swift in Sources */, C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */, C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */, diff --git a/RACNest/AppRelated/StoryboardViewController.swift b/RACNest/AppRelated/StoryboardViewController.swift index 545bf2c..63c39c4 100644 --- a/RACNest/AppRelated/StoryboardViewController.swift +++ b/RACNest/AppRelated/StoryboardViewController.swift @@ -11,4 +11,5 @@ import UIKit enum StoryboardViewController : String, StoryboardViewControllerType { case Form = "FormViewController" case Search = "SearchViewController" + case Puzzle = "PuzzleViewController" } \ No newline at end of file diff --git a/RACNest/Resources/Base.lproj/Main.storyboard b/RACNest/Resources/Base.lproj/Main.storyboard index c3dd791..18bd905 100644 --- a/RACNest/Resources/Base.lproj/Main.storyboard +++ b/RACNest/Resources/Base.lproj/Main.storyboard @@ -123,6 +123,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/RACNest/ViewControllers/Main/Components/MainViewModel.swift b/RACNest/ViewControllers/Main/Components/MainViewModel.swift index fd831a3..1b7443b 100644 --- a/RACNest/ViewControllers/Main/Components/MainViewModel.swift +++ b/RACNest/ViewControllers/Main/Components/MainViewModel.swift @@ -16,8 +16,9 @@ final class MainViewModel: NSObject { let item1 = MainCellItem(title: "1. Form 🐥", identifier: .Form) let item2 = MainCellItem(title: "2. Search 🔍", identifier: .Search) + let item3 = MainCellItem(title: "3. Puzzle 🏖", identifier: .Puzzle) - items = [item1, item2] + items = [item1, item2, item3] super.init() } diff --git a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift new file mode 100644 index 0000000..05e1e03 --- /dev/null +++ b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift @@ -0,0 +1,13 @@ +// +// PuzzleViewController.swift +// RACNest +// +// Created by Rui Peres on 31/01/2016. +// Copyright © 2016 Rui Peres. All rights reserved. +// + +import UIKit + +final class PuzzleViewController: UIViewController { + +} From b353ccf8aeb5f967d817e0c43fc9b643ee2c6afc Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Sun, 31 Jan 2016 19:54:32 +0000 Subject: [PATCH 02/15] Board is drawed. --- RACNest.xcodeproj/project.pbxproj | 12 ++++ .../Puzzle/Board/PuzzleBoard.swift | 69 +++++++++++++++++++ .../Puzzle/PuzzleViewController.swift | 13 ++++ 3 files changed, 94 insertions(+) create mode 100644 RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index 14ef8bf..3f297c2 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ C72D330D1C471B0C00F88B11 /* CellProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C72D330C1C471B0C00F88B11 /* CellProtocols.swift */; }; C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C72D330E1C471B3000F88B11 /* TableViewProtocols.swift */; }; C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A21C5E940400C69372 /* PuzzleViewController.swift */; }; + C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */; }; C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */; }; C76C20601C5053660083F4F5 /* words.txt in Resources */ = {isa = PBXBuildFile; fileRef = C76C205F1C5053660083F4F5 /* words.txt */; }; C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */; }; @@ -57,6 +58,7 @@ C72D330C1C471B0C00F88B11 /* CellProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CellProtocols.swift; sourceTree = ""; }; C72D330E1C471B3000F88B11 /* TableViewProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewProtocols.swift; sourceTree = ""; }; C741B5A21C5E940400C69372 /* PuzzleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewController.swift; sourceTree = ""; }; + C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoard.swift; sourceTree = ""; }; C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; C76C205F1C5053660083F4F5 /* words.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = words.txt; sourceTree = ""; }; C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewController.swift; sourceTree = ""; }; @@ -200,10 +202,19 @@ isa = PBXGroup; children = ( C741B5A21C5E940400C69372 /* PuzzleViewController.swift */, + C741B5A41C5E96D800C69372 /* Board */, ); path = Puzzle; sourceTree = ""; }; + C741B5A41C5E96D800C69372 /* Board */ = { + isa = PBXGroup; + children = ( + C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */, + ); + path = Board; + sourceTree = ""; + }; C76C20591C504B750083F4F5 /* Search */ = { isa = PBXGroup; children = ( @@ -435,6 +446,7 @@ C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */, C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */, C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */, + C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */, C72D330D1C471B0C00F88B11 /* CellProtocols.swift in Sources */, C7852C4C1C4B0E2B00375089 /* FormViewModel.swift in Sources */, C7852C351C4ACB6B00375089 /* Storyboard.swift in Sources */, diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift new file mode 100644 index 0000000..44028c2 --- /dev/null +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -0,0 +1,69 @@ +// +// PuzzleBoard.swift +// RACNest +// +// Created by Rui Peres on 31/01/2016. +// Copyright © 2016 Rui Peres. All rights reserved. +// + +import UIKit + +struct PuzzleBoardDimension { + let numberOfRows: Int + let numberOfColumns: Int +} + +final class PuzzleBoard: UIView { + + var puzzleBoardLinesColor = UIColor.grayColor() + var puzzleBoardBackgroudColor = UIColor.whiteColor() + + private let puzzlePieceSize = CGSize(width: 100, height: 100) + + init(dimension: PuzzleBoardDimension) { + + let width = Int(puzzlePieceSize.width) * dimension.numberOfRows + let height = Int(puzzlePieceSize.height) * dimension.numberOfColumns + + super.init(frame: CGRect(x: 0, y: 0, width: width, height: height)) + + backgroundColor = puzzleBoardBackgroudColor + + self.defineBorder() + self.definePuzzleSquares(dimension) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + private func defineBorder() { + + layer.borderColor = puzzleBoardLinesColor.CGColor + layer.borderWidth = 1.0 + } + + private func definePuzzleSquares(dimension: PuzzleBoardDimension) { + + for i in 0.. Date: Sun, 31 Jan 2016 19:54:47 +0000 Subject: [PATCH 03/15] To be consistence with the other define method --- RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index 44028c2..0d1bc1f 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -30,7 +30,7 @@ final class PuzzleBoard: UIView { backgroundColor = puzzleBoardBackgroudColor self.defineBorder() - self.definePuzzleSquares(dimension) + self.defineSquares(dimension) } required init?(coder aDecoder: NSCoder) { @@ -44,7 +44,7 @@ final class PuzzleBoard: UIView { layer.borderWidth = 1.0 } - private func definePuzzleSquares(dimension: PuzzleBoardDimension) { + private func defineSquares(dimension: PuzzleBoardDimension) { for i in 0.. Date: Sun, 31 Jan 2016 20:09:29 +0000 Subject: [PATCH 04/15] For now just a wrapper for an UIImageView --- RACNest.xcodeproj/project.pbxproj | 4 +++ .../Puzzle/Board/PuzzlePiece.swift | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index 3f297c2..31d94c6 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C72D330E1C471B3000F88B11 /* TableViewProtocols.swift */; }; C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A21C5E940400C69372 /* PuzzleViewController.swift */; }; C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */; }; + C741B5A81C5EA01900C69372 /* PuzzlePiece.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */; }; C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */; }; C76C20601C5053660083F4F5 /* words.txt in Resources */ = {isa = PBXBuildFile; fileRef = C76C205F1C5053660083F4F5 /* words.txt */; }; C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */; }; @@ -59,6 +60,7 @@ C72D330E1C471B3000F88B11 /* TableViewProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewProtocols.swift; sourceTree = ""; }; C741B5A21C5E940400C69372 /* PuzzleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewController.swift; sourceTree = ""; }; C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoard.swift; sourceTree = ""; }; + C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePiece.swift; sourceTree = ""; }; C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; C76C205F1C5053660083F4F5 /* words.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = words.txt; sourceTree = ""; }; C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewController.swift; sourceTree = ""; }; @@ -211,6 +213,7 @@ isa = PBXGroup; children = ( C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */, + C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */, ); path = Board; sourceTree = ""; @@ -440,6 +443,7 @@ C7CB87161C51AC7000ED9AE6 /* SearchCellItem.swift in Sources */, C7CB87121C51AB8E00ED9AE6 /* GenericTableCell.swift in Sources */, C7852C461C4ACFE000375089 /* MainCellItem.swift in Sources */, + C741B5A81C5EA01900C69372 /* PuzzlePiece.swift in Sources */, C7F740591C4B2A2F00519895 /* UserDefaults.swift in Sources */, C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */, C7F740561C4B272500519895 /* RacExtensions.swift in Sources */, diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift new file mode 100644 index 0000000..5e3ba2d --- /dev/null +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift @@ -0,0 +1,30 @@ +// +// PuzzlePiece.swift +// RACNest +// +// Created by Rui Peres on 31/01/2016. +// Copyright © 2016 Rui Peres. All rights reserved. +// + +import UIKit + +final class PuzzlePiece: UIView { + + private var puzzleImage: UIImageView = UIImageView() + + init(size: CGSize) { + super.init(frame: CGRect(origin: CGPointZero, size: size)) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configure(image: UIImage) { + puzzleImage.image = image + } + + override func layoutSubviews() { + puzzleImage.center = center + } +} From 1c7e2ec5186775d7135270b54b08468cfa4f9e77 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Sun, 31 Jan 2016 23:17:04 +0000 Subject: [PATCH 05/15] Work on the PuzzleBoardViewModel + PuzzlePieceViewModel --- RACNest.xcodeproj/project.pbxproj | 16 ++++++ .../Puzzle/Board/PuzzleBoard.swift | 44 ++++++++++++++--- .../Puzzle/Board/PuzzlePiece.swift | 17 ++++--- .../ViewModel/PuzzleBoardViewModel.swift | 49 +++++++++++++++++++ .../ViewModel/PuzzlePieceViewModel.swift | 15 ++++++ .../Puzzle/PuzzleViewController.swift | 3 +- 6 files changed, 128 insertions(+), 16 deletions(-) create mode 100644 RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift create mode 100644 RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index 31d94c6..ea94005 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -17,6 +17,8 @@ C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A21C5E940400C69372 /* PuzzleViewController.swift */; }; C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */; }; C741B5A81C5EA01900C69372 /* PuzzlePiece.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */; }; + C741B5B71C5EC65600C69372 /* PuzzleBoardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5B51C5EC65600C69372 /* PuzzleBoardViewModel.swift */; }; + C741B5B81C5EC65600C69372 /* PuzzlePieceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */; }; C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */; }; C76C20601C5053660083F4F5 /* words.txt in Resources */ = {isa = PBXBuildFile; fileRef = C76C205F1C5053660083F4F5 /* words.txt */; }; C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */; }; @@ -61,6 +63,8 @@ C741B5A21C5E940400C69372 /* PuzzleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewController.swift; sourceTree = ""; }; C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoard.swift; sourceTree = ""; }; C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePiece.swift; sourceTree = ""; }; + C741B5B51C5EC65600C69372 /* PuzzleBoardViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoardViewModel.swift; sourceTree = ""; }; + C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePieceViewModel.swift; sourceTree = ""; }; C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; C76C205F1C5053660083F4F5 /* words.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = words.txt; sourceTree = ""; }; C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewController.swift; sourceTree = ""; }; @@ -214,10 +218,20 @@ children = ( C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */, C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */, + C741B5B41C5EC65600C69372 /* ViewModel */, ); path = Board; sourceTree = ""; }; + C741B5B41C5EC65600C69372 /* ViewModel */ = { + isa = PBXGroup; + children = ( + C741B5B51C5EC65600C69372 /* PuzzleBoardViewModel.swift */, + C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */, + ); + path = ViewModel; + sourceTree = ""; + }; C76C20591C504B750083F4F5 /* Search */ = { isa = PBXGroup; children = ( @@ -448,10 +462,12 @@ C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */, C7F740561C4B272500519895 /* RacExtensions.swift in Sources */, C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */, + C741B5B81C5EC65600C69372 /* PuzzlePieceViewModel.swift in Sources */, C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */, C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */, C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */, C72D330D1C471B0C00F88B11 /* CellProtocols.swift in Sources */, + C741B5B71C5EC65600C69372 /* PuzzleBoardViewModel.swift in Sources */, C7852C4C1C4B0E2B00375089 /* FormViewModel.swift in Sources */, C7852C351C4ACB6B00375089 /* Storyboard.swift in Sources */, C7852C3D1C4ACF9500375089 /* FormViewController.swift in Sources */, diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index 0d1bc1f..5fe61eb 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -7,37 +7,65 @@ // import UIKit +import ReactiveCocoa struct PuzzleBoardDimension { let numberOfRows: Int let numberOfColumns: Int } +struct PuzzlePiecePosition { + + let row: Int + let column: Int +} + final class PuzzleBoard: UIView { + private let boardDimension: PuzzleBoardDimension + private let puzzlePieceSize: CGSize + var puzzleBoardLinesColor = UIColor.grayColor() var puzzleBoardBackgroudColor = UIColor.whiteColor() - - private let puzzlePieceSize = CGSize(width: 100, height: 100) - init(dimension: PuzzleBoardDimension) { + let dataSource: PuzzleBoardDataSource + + init(boardDimension: PuzzleBoardDimension, puzzlePieceSize: CGSize = CGSize(width: 100, height: 100)) { - let width = Int(puzzlePieceSize.width) * dimension.numberOfRows - let height = Int(puzzlePieceSize.height) * dimension.numberOfColumns + self.boardDimension = boardDimension + self.puzzlePieceSize = puzzlePieceSize + self.dataSource = PuzzleBoardViewModel(dimension: boardDimension, puzzlePieceSize: puzzlePieceSize) + + let width = Int(puzzlePieceSize.width) * boardDimension.numberOfRows + let height = Int(puzzlePieceSize.height) * boardDimension.numberOfColumns super.init(frame: CGRect(x: 0, y: 0, width: width, height: height)) backgroundColor = puzzleBoardBackgroudColor self.defineBorder() - self.defineSquares(dimension) + self.defineSquares(boardDimension) + self.addPieces(dataSource, puzzlePieceSize: puzzlePieceSize) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + // MARK: - Board Construction - + private func addPieces(dataSource: PuzzleBoardDataSource, puzzlePieceSize: CGSize) { + + dataSource.configurePuzzbleBoard().startWithNext {[weak self] (pieceViewModel, position) in + + let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: pieceViewModel) + self?.addSubview(piece) + let x = position.row * Int(puzzlePieceSize.width) + let y = position.column * Int(puzzlePieceSize.height) + piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) + } + } + private func defineBorder() { layer.borderColor = puzzleBoardLinesColor.CGColor @@ -67,3 +95,5 @@ final class PuzzleBoard: UIView { } } } + + diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift index 5e3ba2d..1ba1106 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift @@ -6,24 +6,27 @@ // Copyright © 2016 Rui Peres. All rights reserved. // +import UIKit import UIKit final class PuzzlePiece: UIView { - private var puzzleImage: UIImageView = UIImageView() + private let puzzleImage: UIImageView = UIImageView() + private let viewModel: PuzzlePieceViewModel - init(size: CGSize) { + init(size: CGSize, viewModel: PuzzlePieceViewModel) { + + self.viewModel = viewModel super.init(frame: CGRect(origin: CGPointZero, size: size)) + + viewModel.image.producer.startWithNext {[weak self] image in + self?.puzzleImage.image = image + } } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } - - func configure(image: UIImage) { - puzzleImage.image = image - } - override func layoutSubviews() { puzzleImage.center = center } diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift new file mode 100644 index 0000000..0074809 --- /dev/null +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift @@ -0,0 +1,49 @@ +// +// PuzzleBoardViewModel.swift +// RACNest +// +// Created by Rui Peres on 31/01/2016. +// Copyright © 2016 Rui Peres. All rights reserved. +// + +import ReactiveCocoa + +protocol PuzzleBoardDataSource { + + func configurePuzzbleBoard() -> SignalProducer<(PuzzlePieceViewModel, PuzzlePiecePosition), NoError> +} + +final class PuzzleBoardViewModel { + + private let piecesModels: [(PuzzlePieceViewModel, PuzzlePiecePosition)] + + init(dimension: PuzzleBoardDimension, puzzlePieceSize: CGSize) { + + piecesModels = generatePuzzlePieces(dimension, pieceSize: puzzlePieceSize) + } +} + +extension PuzzleBoardViewModel: PuzzleBoardDataSource { + + func configurePuzzbleBoard() -> SignalProducer<(PuzzlePieceViewModel, PuzzlePiecePosition), NoError> { + return SignalProducer(values: piecesModels) + } +} + +private func generatePuzzlePieces(dimension: PuzzleBoardDimension, pieceSize: CGSize) -> [(PuzzlePieceViewModel, PuzzlePiecePosition)] { + + var piecesViewModels: [(PuzzlePieceViewModel, PuzzlePiecePosition)] = [] + + for i in 0.. = MutableProperty(nil) +} \ No newline at end of file diff --git a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift index 1e625e5..f61bbc5 100644 --- a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift +++ b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift @@ -10,8 +10,7 @@ import UIKit final class PuzzleViewController: UIViewController { - private let board = PuzzleBoard(dimension: PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3)) - + private let board = PuzzleBoard(boardDimension: PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3)) override func viewDidLoad() { super.viewDidLoad() From 22bb8293a80c934c7946deb4fecabb7a9ac6e8fd Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Mon, 1 Feb 2016 01:16:07 +0000 Subject: [PATCH 06/15] Images is now sliced and shown --- RACNest.xcodeproj/project.pbxproj | 16 +++- .../AppIcon.appiconset/Contents.json | 5 ++ .../Resources/Assets.xcassets/Contents.json | 6 ++ .../japan_forest.imageset/Contents.json | 21 +++++ .../japan_forest.imageset/japan_forest.jpg | Bin 0 -> 291089 bytes .../Puzzle/Board/PuzzleBoard.swift | 43 +++++----- .../Puzzle/Board/PuzzlePiece.swift | 30 +++++-- .../ViewModel/PuzzleBoardViewModel.swift | 49 ------------ .../ViewModel/PuzzlePieceViewModel.swift | 8 +- .../Puzzle/PuzzleViewController.swift | 9 ++- .../Puzzle/ViewModel/PuzzleViewModel.swift | 75 ++++++++++++++++++ 11 files changed, 176 insertions(+), 86 deletions(-) create mode 100644 RACNest/Resources/Assets.xcassets/Contents.json create mode 100644 RACNest/Resources/Assets.xcassets/japan_forest.imageset/Contents.json create mode 100644 RACNest/Resources/Assets.xcassets/japan_forest.imageset/japan_forest.jpg delete mode 100644 RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift create mode 100644 RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index ea94005..f0aa13c 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -17,8 +17,8 @@ C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A21C5E940400C69372 /* PuzzleViewController.swift */; }; C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */; }; C741B5A81C5EA01900C69372 /* PuzzlePiece.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */; }; - C741B5B71C5EC65600C69372 /* PuzzleBoardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5B51C5EC65600C69372 /* PuzzleBoardViewModel.swift */; }; C741B5B81C5EC65600C69372 /* PuzzlePieceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */; }; + C741B5BB1C5ECE8D00C69372 /* PuzzleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5BA1C5ECE8D00C69372 /* PuzzleViewModel.swift */; }; C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */; }; C76C20601C5053660083F4F5 /* words.txt in Resources */ = {isa = PBXBuildFile; fileRef = C76C205F1C5053660083F4F5 /* words.txt */; }; C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */; }; @@ -63,8 +63,8 @@ C741B5A21C5E940400C69372 /* PuzzleViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewController.swift; sourceTree = ""; }; C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoard.swift; sourceTree = ""; }; C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePiece.swift; sourceTree = ""; }; - C741B5B51C5EC65600C69372 /* PuzzleBoardViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoardViewModel.swift; sourceTree = ""; }; C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePieceViewModel.swift; sourceTree = ""; }; + C741B5BA1C5ECE8D00C69372 /* PuzzleViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewModel.swift; sourceTree = ""; }; C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; C76C205F1C5053660083F4F5 /* words.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = words.txt; sourceTree = ""; }; C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewController.swift; sourceTree = ""; }; @@ -208,6 +208,7 @@ isa = PBXGroup; children = ( C741B5A21C5E940400C69372 /* PuzzleViewController.swift */, + C741B5B91C5ECE8100C69372 /* ViewModel */, C741B5A41C5E96D800C69372 /* Board */, ); path = Puzzle; @@ -226,12 +227,19 @@ C741B5B41C5EC65600C69372 /* ViewModel */ = { isa = PBXGroup; children = ( - C741B5B51C5EC65600C69372 /* PuzzleBoardViewModel.swift */, C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */, ); path = ViewModel; sourceTree = ""; }; + C741B5B91C5ECE8100C69372 /* ViewModel */ = { + isa = PBXGroup; + children = ( + C741B5BA1C5ECE8D00C69372 /* PuzzleViewModel.swift */, + ); + path = ViewModel; + sourceTree = ""; + }; C76C20591C504B750083F4F5 /* Search */ = { isa = PBXGroup; children = ( @@ -467,8 +475,8 @@ C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */, C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */, C72D330D1C471B0C00F88B11 /* CellProtocols.swift in Sources */, - C741B5B71C5EC65600C69372 /* PuzzleBoardViewModel.swift in Sources */, C7852C4C1C4B0E2B00375089 /* FormViewModel.swift in Sources */, + C741B5BB1C5ECE8D00C69372 /* PuzzleViewModel.swift in Sources */, C7852C351C4ACB6B00375089 /* Storyboard.swift in Sources */, C7852C3D1C4ACF9500375089 /* FormViewController.swift in Sources */, C7852C471C4ACFE000375089 /* MainViewController.swift in Sources */, diff --git a/RACNest/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/RACNest/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json index 36d2c80..eeea76c 100644 --- a/RACNest/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/RACNest/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -59,6 +59,11 @@ "idiom" : "ipad", "size" : "76x76", "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" } ], "info" : { diff --git a/RACNest/Resources/Assets.xcassets/Contents.json b/RACNest/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/RACNest/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/RACNest/Resources/Assets.xcassets/japan_forest.imageset/Contents.json b/RACNest/Resources/Assets.xcassets/japan_forest.imageset/Contents.json new file mode 100644 index 0000000..22523d4 --- /dev/null +++ b/RACNest/Resources/Assets.xcassets/japan_forest.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "japan_forest.jpg", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/RACNest/Resources/Assets.xcassets/japan_forest.imageset/japan_forest.jpg b/RACNest/Resources/Assets.xcassets/japan_forest.imageset/japan_forest.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9edc044b0ab3ff54296595374fba5d80c951ade6 GIT binary patch literal 291089 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΁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

TXxiEA z;I)d*-K8a5t{kc838bYI5sOb#zwtka^g9TAol+U+nq(x}q<}K#p<|x)=9epDb#XYg z(;hAV056jh{oj1|Cac_P5=}pxNOHgg!*1i&nQf@d0~qbR&nS>&UN)Y%{b@>fS`{eW z8c})H$dKC3u*k8Uw%O=?YMM)bb9VlDT(AqhxIXm}7Y?a&JF7dNn4X~a=A$v)Ir6SA zH!|mElDQ!I8d19;M#X?`!4?a27BI)Z1Kyu$aXw4LOpOYVS^8j+lT@U!xVN^3d#SwD z4swI8PpwZEn`hK~*BS7I3T^9hsalJH|2j)r$+MmRGit-)l-q4yt(i)ufss-sYSu z3o^*kMYDfU!!A3FRrqf$E*QZJvY-QEgd>W~)1_;ck|(i=ilG8Q!CrcbxnX?_GJ`mj zNYMFFWN;62TE|79liyQSbuTvR8;g5?GBG-$0N529m7mRwlhnqC4fzUnuAw}dfiu9{Z?wpIP-oxjO$3n}E$&X~SOOX2mm z3Z*9wW0aP_!3uu0*J&0p$z~vqSskP&V&|Cql6|X)(eEsz-FIcUWkRM%`G$Gm^T$f; zG>NWntPQ+!7r5NADqE@E26-6t;;Jb(s5b0;(fe>Gk?~T`TutUL?8uP54^UWfUT16L zuM}xgLusl+x3)6Hx+I^XFMr0pi}vcbxV-U>opwLfHI@Rjdq{O8V-@3i1)N?a(k0N0 zpXs)Fkuo`vI+X+3zJCy{S)SDf{gN4|>wXfxws~XIq>5QS;t!cP&wkw3F>`e6cSWZn zqPZop%~*|YY){%+B~VB{o;ZKve|u{CY7JMR&#$AmP$ z3rRl6t+jiL&oTNdG;yf>z%`|$=+J5wiFXac`FoD%&rfshT>SbBw)zwr)VLz%=19aO z@HT}c{{Z9Su4z|t=usPW4I;S&#=WR2D?^}gkd!G0E2ly)DZ;QGm znBt?N)TpW|fKs{^L!^SF|>~dCZOxX`AT1J8XXBaZM8@cU_ zD%ATXs z)~8)$wZV8T8w6u6z#N}i=Ht{ZKF*Gkpks~2W74!IFB^d+Su=QRDdkZ;jOd05e=Si6u#{ zo)YK3m$7Dic?6+bG&A=*BN`PZ8Gi@_fhzqC#LpNS#0v}fB1 zbU8umoK>W*4YrPg+r~a9@W!!gsayG;Ww}O)qmfoJo3FK8>hri4BvgDN7oTwYK$xwKy8r^pd@5{YwO<(d^gd4 z7V2|d=yAz2Tujs6$>wB9GxE|A{?>E&)P6tkcZYm);jK%;nys?SVS8>9X#j{=l0&bd z$*w5LDeJM^;;O5o^9#iKJ3*<)#pHrgsUpUs5%M_z^vL5sTFQSCTt=eGO;$)oPnn4_ zGxZ+WuVnbO@N2|h4g6Dc;Jt2DX&?;oNjb-x3FJEGsKy7>8uCqNPqegf(yIAx<%FU> zG1K{qbLO`)*yrX-R%D07RyH<`4cCa3(e~#YxjnxMsjttY>h^{;)zKvhxNJGv-HruU zx6^d3Nd2c!uxQve#4)c72YxzLlvJgJ;B&=uZzMs1TTl#dxB@ZH zO6Qt!-0FjNA(ZDbMU<7s2_J<hLztW_dNsK>gnIlInmD<_JrcQ;S zQmeeP0u*+v+jlE{#I%*KC5XEf5tj25^xzy(CC8ZfO`cf(>SY*>VzY8|#)SeJG4aGfWMz)QijgaSe&Fe!- z(#o?$h?we_&lsrWns~^!cnDq$ez@;JvRZ6NTHswP-eK5tw>*K4v|P8CQHJ2l*L6y6 zE#^Zr?8^*t*fMuEr-c+bxBWlQlRB-34alE02|SA`o0Rmvqh>YZCrh=uJ%> z?X*hP$tPih?(I?mUEvO1a2VI3JBGvaZY0-|w|8JVHXl z9%FVD8G(>*2%*aE3WtI_8mlA5E$0oEVsH=~;85<+#vM_YY(NfsQFa$(k8nv?q>Z+1 z$aB}}P|YL68|^4raq>EzN3|l{H1_LiW65v2$I_#{DrSx}Rtgv9C%qS8c0F!NGO0qW z7oi=!X)YvGN0KOAfdC=(K9r6lvy>*>mrzyDrAa!tfJY%1R@^zF;dV46qS?IBv9ZSI z0-WH%V2t}Cc5H49!+X_JC8U%2m#TIS7VNijv;_cEY* z(`|p!7EO?BVfUUv$Iw%)&XU?Oq00QEo@vCteb`yfl)~l%XqM&g;KvU z0;h(~_Wji?5I2_CB%Eg-pm#QcgcgV=|=0rcJ87G5l2In$7SL%w!$PNx-8}7BoI^MN(AqNjxd384@`J zc`R7{{{VVNl2jx=&F2h=*ZI?oLPc1FC2)8x=sMA;1m?rbFv>8)kaysUSmlWnM{d7+ z=6{S9UUbQk0RMkm5XyfDdX* zw7HQ}hqY#}><$3yE=wcL|iDgsfX z5LX*iAHC~Mp6xB=4A3BsMcS(41z7YnuNRjRy9IrY1_dkJ?@W@}?Uf}YG_oEofZRy_m3{@9-aj>McA#IJk)6KO*5*%g zOC207$b$Yr;fP{T<#X@pR-*z5e$6z30-T1FQ!UmFKG(^4@(;}zL-)_6HY;&*yOmpi z@hkELXky#3a?<&h*`&3T&XBo3DEU;A)}C%P8`CE7nIm9|>-UV(mN6fcIp|3pD^&Hl30<8O-YK10OUt`ExkM@ilR&vv1EI(1_*N#V@#@|S znFoZtJt)1F49|UdI%9wo9)wo`ulT#fejwCYP3i~)g=B^=m0}};7ac}>)Dx2$W^x#3 zDB$%y>St4#*se=EniqPCYWFu67r@Cq!-)*jFU-dt{i=i(Ht|C|ZvxEBatm}6l3kM| zS8_khK#yS*^o&U~i)j~`>Y=_|)C@%v*}$=gL~=Oo-|0@YLmS5)PUdo5PXjmvwM(TMKetLJ8!2 zqp$R)t;A@bW{i#a%x#VkdLMpj2^-CQ#KvS^;BrT$Ty_IdWf@5`^M%_SOu5OaBUxf% zZ&Y=}i09=Q^s1U;vM^Zg3ZVqCC+?q0l4<#kT86k&Y9vkI6TjD}tFX%U^9bdfkC-&)W^g@gRk4h> zH!ZIG*h33cOh(>Ol<>#Ud(mwSw)Upd@eE8Ci1%l9dlD*&zuOPkql6QJ%OtCSeE|B@ zme;8io?@{q2H7Gc;ZLqAuE{LJbkJ=gSuMgypzb*UdwN!kRtX%~`cu;V^$RAAZe%1Q~7$lwvtmxk2)twR@(d{iH+qpyQPqw%M2`BPl04lM=ird};OlmgqkD5$iXXWHm zgw~=mw|-*oaOmeC1t1VBB@FjWvOzNCq5bSCe(3e9aNZ=g!Ec1#a_tB(NXKu|o#Y1F zYS3Lojpe&CACXacHK!%~hVlk>-tvq)=kEFg>0H;^T_#z%Vh2S(Fds_2r(8iD(oSR8 zS-CPE9MK*2CP#6jy~KB*c}X6?0BHFwT2uJ1$9is{iK2Wzp7I9+&Ac-#drwRTVg@me zD+|KW2}F^X4>y^(Z5b<`*sku_EHOm)fTB%3+5*nURq#w#(nGZ^Zh-yZ z=bkfPCwTk9(b;QKEUw`)Ol%i}o@>X(LB^@+;b+ZAUx=O=x03GL#hOI^b%w18W_ZSS zzi{4%HObv*>unPjPb?U~Rdd68it7Fx_<{`{#(xQToI7dygxRy+K4|3t0^dwy@}tEb z4b`;!!x^=9QoG~5QMx%-(Q)3nEZaJHtcx0tgEa>InKWM#E}bl|2a4{I*bkR$Lmmcx zt5_Z%v|Gj|+ClcVz>zV~SI`H;DW-nGGTZ%`o=@#Rx5D_z-doEf@&>#lM+Tf=eJ%!T znG_NU=zq>?w{@JnEkjVXm!Z1>q%RFu4jo>jCTORVG0txVlGp%7MLMjJDn4)PzGY@Wfs`r=B+gpo$Iz{r@K#LTgHzf1LD7cW`2bxIPQ0)Y! z-G|sy5b24zl*^jw3%ZHzO>C;Ap?qMWK zHxQ>Mny!~n$0FO$azv?yX<9#*@t_O8GhF$1Qg6n7Z1alG)#Ph?iLFx2;w8Cu8O=iX z*C{E1uF;AyVwvHG`_)GCSB}ox&I=kNj0nLj#(*N!)cFo)WsM#G0Cv$Z8-e2<)rqKC z>Q}Y|+iIC*Z@Ml(V1tjBo@mwXWwf?2T0ZE}zjY^2TRgAlT*dC2;{mO~uH5QIb%gGQ z3tlmg;bB3Va=B(-3$4RN713*m`DohbsT+?3^r{zr4!G1&;mBO#O~bB;&hUl}H``32hbiEf4pmkq&ZpW;ij6g#Qa?FCY}3B_)O|v9Jg&c z_fIV*lDd_vLp0z3O67q0NhcZiuZlJ88uL!n^&KgjyB7$j0$dz? z*~mXi&1<-;#cq7NEB^pzO)Q#xN+Z}7;yD|k^%XQaly_6Xc&i$*h(sja$pD&eu=YBf zp`lcfNIRSln4f>AO2Ucb(zO>?V&M^32kdfdH!e~jZ(Q3?Z*UgLLr0R*o!$NGAH*6G zYZoH=J3^ALK3cHaSEg#<))?j}?k$5$^L)*PU$1J8TUDMPK6Z@*oDU{kgO5yfsB%&@ zyE&a_Wt5S?hz!u4#|N2_RJ=0i2A1S6L79CKX7)G{oFH`?1| z`L-Sp70o57tR95$TrIX12=+6$-p9DjCH2kKsPj_gq>-{9kn&U7tKQ}vq1=tw1JZ*4 z*cN!5k|jTPu1|WBxo%msgb zRVNHFNpE)77an|y&J%Lw`vd7g7HW1TyOFMCR|O-DhSy@@ai09tEKuQNn9A{jBW>9Q zao04+ZXg!YB#oahB!lTpC8dcAq?uq0YM}6=lR=|yTKk*7Z? zPK)jBODXcF`#fdB0yD)of7#U{-AFo(}r?X6oba;JS~W^79Z>`3aX z2`YDFk=F*4H20CY9G%#SNa{O^e8nd_-ed%>125ee>rmWZJKBh?Bvy@11E;TgEWk^L zC}aCNm2#z8FgOR=p9%Xw@~#vp0FuYkrYaevc(H2{CCLXp#V_w!ULr`^*kDKF{b=`q zd@l{e%@xF0NXPD+`cg2N)m*BT$?M!^l1T9gRv7?vJ*lxr3p7tO`1!t7&sr?No6Ch| z%q+fZrq)x_9+c0t#n?aSjQ{vnu-ZTEL_F7v!A>^=R5&You*}yBe{s`D6;`) zws=DM?4bwU1oY3Zy;qvTIPTTi#=*eB$PG`qX1;cfnIC8Ru!pIox44QsaN~wUiI8^p zqRa%6JB{GWf}rxsa4}G|pjR<9#@GA7k6cxSfv&g7ZyxZ&3O>E+<(;G!fCq_u$cELG zkKQM(0(0du#D>{HH(~tI^QZ^rsnO=x(K51^Tn&RG85MH(Ocqd^tEr=H%r>hG)o0Wd zKqyfp&Jh!g(WobKCX@#A@-&3b~QuQW@!Ha(SjCJ)YjQpRw><>}iiap@amL|KEN?hEJ-f}6f zOPiYbQV&2w(-X1RyZc9VnuMHc2X}f0kdG6v1Bf zi4Dksg5C(!{O-i{2hxft0v+bzMAnnCsNqTuxT(I>tXAr1-d5Yok&nWPC;{fsvw0Fn zD>~qe4lsG4)=2IH%*V?q^P%GebfSs?Z<{MJzUE(T-6`iKiMc#>^7%iF6i@`ol|e4- zpy;EeE8G?#;!LRP?L`y->l=iPqjoPaCw1kh~1QIO*PsC>cGyw3jnEL@IY< zX{*sS)}FK6c}RS?PC|^4_)$e#*vebBK+h}+ZV-}WBj<0tGfubFZxZC$rK3D;_lX^7 zqM1EQP+VSLOC!Y}`Z_KkIQ}Z=bRP+8*Gg|+OuF)M%LzVn?TRR^phZJgd(Rc=R*0S- z(-%yH;3Ss`kVn$Bpx3n+bjjt_qeqSx3TBP*y}fbiMHQ~d!pP>ekBm36MJ}79YJ%U& zm6h(;@Z9~;=~#2>7cC0QGiF&7uyS%(`sRu%F3L$;!w{oSL^RFLQDw zwt=N>fUG09qKXQ84gUa4mDD&ucOoH@J?NsU zI-n*?hq#l@VuNVT)%)L#TeOeNlQ1dXz?^o#>qQl+*oV1dIj3_Q!Ev@OKw^6O){V5I zWU$A03Y0tZ)X_y+Y|eWVSZZY)#RbXTj%JhYFSqom^tmI7^dwM5pebXMm;60V6jrI3 z7VX*_yP-6XArqae=8PVFs#A3(sgBwe5>2}SNBpuL^if?gdJ@}Ak{Oa%12TD$MtKXy zPxsHYHtIEwGcCG#Nhi)%a6EcZMPsulo+f*F43?q(X+|==y(-(?A1s!=#DZg#PDm6{ zTLC432xM`$8N_X$n6JHTXwWmp^Qhe_f#n7r&sr#<>_oRZuLnZQD$fF`A%1+GNgZpp z(JpP{Y}{F_X5u`A2Oy{<6Zz3aXr16-mZnF=sIL4);2lQSOSI%cxd9*Q*kpo!qZQz< zX=CvVz|m{^G;qhLST~cX!sBxWAH}!dtrSzfbCk^CatPi=xt{O=?N>wtYmEMXJVrspZ#hmuQ_~2Y`zwKW$|~z_clMW!+38_ ziDpedLr0m24fEtVJb%4k9e7?Fo793BY{atME=#{e1NjOluAD+jF|p5vZMhx4hICy% zR+1~5Wr1Sm;Zd>%Ka26`Je8zU8tW}DF74(PlfcIxGB!R{Uc~(l2mA_(E8nH1 zG$-AF)IIWhNr z2iB_JUCnIXXWCV_E))^SCWM z;fb5bKfH}w9ee$2&Gr8Ph~E(|_3@^BIMejdu(1ttWDd;0avSMI6%%g7qZHcwWcwpY zuIus0lM>MzNJ8MZzAG2Xm#-0i-|0w>>DLx$er2=8cA(;yC1e zA4T!LrnffgM9DcUfSz{`P-~?4Gx1B~AH!c6`6+&vnr-1l)$AvW?{*U8jxZ>qrdu5_ z)<@K9CZ7(Nd{L}jTdX47%jZQV<&{XtDhF@yuLSXD#$SfMBAFuik>L$y;@8c1G_{J& z%o|I0;~6KKD6HDh?wVFdi+<4`4Q+fpsjm1hPSpPZvMz9BT|&)}S-(##FE6C-w zz0_l40v2e#U5BpDx%~4*6^!;dC8V?}xp@JyxOt&g8OBbBL0C>hZtZhaMTfhj54mr6+7{UG@&!5VQDpR^H9}%5AW;vus zm@HrnhV4y?>IQLb6b~$JFwQ+_qNaK?sDfGH7ok@w92~Epr&^1ofo&#SLGyy2;q|3-Xk=M|Ef`!Pj^Ob{6t2b8ku6|JJh_qLC^%D7ZvN6> zmmy&YF@ygAEhwUfXD!ICMDtt)^1QTG#>F2ew&U8PFcT;|#l{BX(0_##QcZ|y2@q?c z{{SrhR+JtZk}J*Q$UnP?eeinV(M2GF-db4aUeYXpqJUP3r3 zD58RrxkSvdM6kRCSdW(@sP(44+gm`XDxfWzD4@}$%11rGS(U^^bB~z!sTed(dTa%o%b5ytR? z)bZ*lqJSfs3xZY^8%$i}ROUJ1K_W&9f((b&iYP8A77VcoOWVv7bbl!w0jf_u!ZCR! z^As@22fk>cf+z6{y5{Ov^J6a>kjgVrTm+NMxDXUOFsyxOqJdc=)TSY)10;%|ugu4- zS6F0|W6gfWcAbhkFzL+{P%*HCn&Zn6sM<50qKU3;w^fJJ6Q%K`;cAn`2{lLUBbD3}hZ$(yh8VmU5#iJ!qne0RP#WQZ7~i literal 0 HcmV?d00001 diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index 5fe61eb..51d3d78 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -14,12 +14,6 @@ struct PuzzleBoardDimension { let numberOfColumns: Int } -struct PuzzlePiecePosition { - - let row: Int - let column: Int -} - final class PuzzleBoard: UIView { private let boardDimension: PuzzleBoardDimension @@ -28,44 +22,49 @@ final class PuzzleBoard: UIView { var puzzleBoardLinesColor = UIColor.grayColor() var puzzleBoardBackgroudColor = UIColor.whiteColor() - let dataSource: PuzzleBoardDataSource + weak var dataSource: PuzzleBoardDataSource? { + didSet { + + subviews.forEach { $0.removeFromSuperview() } + + dataSource?.piecesViewModels + .map { (position,viewModel) in (position, viewModel, self.puzzlePieceSize) } + .observeOn(QueueScheduler.mainQueueScheduler) + .startWithNext(addPiece) + } + } init(boardDimension: PuzzleBoardDimension, puzzlePieceSize: CGSize = CGSize(width: 100, height: 100)) { self.boardDimension = boardDimension self.puzzlePieceSize = puzzlePieceSize - self.dataSource = PuzzleBoardViewModel(dimension: boardDimension, puzzlePieceSize: puzzlePieceSize) let width = Int(puzzlePieceSize.width) * boardDimension.numberOfRows let height = Int(puzzlePieceSize.height) * boardDimension.numberOfColumns - + super.init(frame: CGRect(x: 0, y: 0, width: width, height: height)) backgroundColor = puzzleBoardBackgroudColor self.defineBorder() self.defineSquares(boardDimension) - self.addPieces(dataSource, puzzlePieceSize: puzzlePieceSize) } - + required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } - + // MARK: - Board Construction - private func addPieces(dataSource: PuzzleBoardDataSource, puzzlePieceSize: CGSize) { + private func addPiece(position: PuzzlePiecePosition, viewModel: PuzzlePieceViewModel, size: CGSize) { - dataSource.configurePuzzbleBoard().startWithNext {[weak self] (pieceViewModel, position) in - - let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: pieceViewModel) - self?.addSubview(piece) - let x = position.row * Int(puzzlePieceSize.width) - let y = position.column * Int(puzzlePieceSize.height) - piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) - } + let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: viewModel) + self.addSubview(piece) + let x = position.row * Int(puzzlePieceSize.width) + let y = position.column * Int(puzzlePieceSize.height) + piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) } - + private func defineBorder() { layer.borderColor = puzzleBoardLinesColor.CGColor diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift index 1ba1106..400c29e 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift @@ -7,11 +7,28 @@ // import UIKit -import UIKit +import ReactiveCocoa + +struct PuzzlePiecePosition { + + let row: Int + let column: Int +} + +extension PuzzlePiecePosition: Hashable { + + var hashValue: Int { + return "\(row),\(column)".hash + } +} + +func ==(lhs: PuzzlePiecePosition, rhs: PuzzlePiecePosition) -> Bool { + return lhs.hashValue == rhs.hashValue +} final class PuzzlePiece: UIView { - private let puzzleImage: UIImageView = UIImageView() + private let puzzleImageView: UIImageView = UIImageView() private let viewModel: PuzzlePieceViewModel init(size: CGSize, viewModel: PuzzlePieceViewModel) { @@ -19,15 +36,14 @@ final class PuzzlePiece: UIView { self.viewModel = viewModel super.init(frame: CGRect(origin: CGPointZero, size: size)) - viewModel.image.producer.startWithNext {[weak self] image in - self?.puzzleImage.image = image - } + addSubview(puzzleImageView) + self.puzzleImageView.image = viewModel.image } - + required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func layoutSubviews() { - puzzleImage.center = center + puzzleImageView.frame = bounds } } diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift deleted file mode 100644 index 0074809..0000000 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardViewModel.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// PuzzleBoardViewModel.swift -// RACNest -// -// Created by Rui Peres on 31/01/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - -import ReactiveCocoa - -protocol PuzzleBoardDataSource { - - func configurePuzzbleBoard() -> SignalProducer<(PuzzlePieceViewModel, PuzzlePiecePosition), NoError> -} - -final class PuzzleBoardViewModel { - - private let piecesModels: [(PuzzlePieceViewModel, PuzzlePiecePosition)] - - init(dimension: PuzzleBoardDimension, puzzlePieceSize: CGSize) { - - piecesModels = generatePuzzlePieces(dimension, pieceSize: puzzlePieceSize) - } -} - -extension PuzzleBoardViewModel: PuzzleBoardDataSource { - - func configurePuzzbleBoard() -> SignalProducer<(PuzzlePieceViewModel, PuzzlePiecePosition), NoError> { - return SignalProducer(values: piecesModels) - } -} - -private func generatePuzzlePieces(dimension: PuzzleBoardDimension, pieceSize: CGSize) -> [(PuzzlePieceViewModel, PuzzlePiecePosition)] { - - var piecesViewModels: [(PuzzlePieceViewModel, PuzzlePiecePosition)] = [] - - for i in 0.. = MutableProperty(nil) + let image: UIImage + + init(image: UIImage) { + + self.image = image + } } \ No newline at end of file diff --git a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift index f61bbc5..9b2a26c 100644 --- a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift +++ b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift @@ -7,19 +7,24 @@ // import UIKit +import ReactiveCocoa + +private let dimension = PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3) final class PuzzleViewController: UIViewController { - private let board = PuzzleBoard(boardDimension: PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3)) + private let board = PuzzleBoard(boardDimension:dimension) + private let viewModel: PuzzleViewModel = PuzzleViewModel(image: UIImage(named: "japan_forest")!, dimension: dimension) override func viewDidLoad() { super.viewDidLoad() view.addSubview(board) + + board.dataSource = viewModel } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - board.center = view.center } } diff --git a/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift b/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift new file mode 100644 index 0000000..7794919 --- /dev/null +++ b/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift @@ -0,0 +1,75 @@ +// +// PuzzleViewModel.swift +// RACNest +// +// Created by Rui Peres on 31/01/2016. +// Copyright © 2016 Rui Peres. All rights reserved. +// + +import UIKit +import ReactiveCocoa + +protocol PuzzleBoardDataSource: class { + + var piecesViewModels: SignalProducer<(PuzzlePiecePosition, PuzzlePieceViewModel), NoError> { get } +} + +extension PuzzleViewModel: PuzzleBoardDataSource { } + +final class PuzzleViewModel { + + let piecesViewModels: SignalProducer<(PuzzlePiecePosition, PuzzlePieceViewModel), NoError> + + init(image: UIImage, dimension: PuzzleBoardDimension) { + + let scheduler = QueueScheduler(name: "puzzle.backgroundQueue") + let producer = sliceImage(image, dimension: dimension).startOn(scheduler) + + let randomPiecePosition = randomPosition(dimension) + let filter = filterPuzzlePiecePosition(randomPiecePosition) + + piecesViewModels = producer.filter(filter).map { (position, image) in + return (position, PuzzlePieceViewModel(image: image)) + } + } +} + +private func randomPosition(dimension: PuzzleBoardDimension) -> PuzzlePiecePosition { + + let row = Int(arc4random_uniform(UInt32(dimension.numberOfRows))) + let column = Int(arc4random_uniform(UInt32(dimension.numberOfColumns))) + + return PuzzlePiecePosition(row: row, column: column) +} + +private func filterPuzzlePiecePosition(skippedPosition: PuzzlePiecePosition) -> (PuzzlePiecePosition,UIImage) -> Bool { + + return { (position, image) in + return skippedPosition != position + } +} + +private func sliceImage(image: UIImage, dimension: PuzzleBoardDimension) -> SignalProducer<(PuzzlePiecePosition, UIImage), NoError> { + + return SignalProducer {o, d in + + let width = Int(image.size.width) / dimension.numberOfColumns + let height = Int(image.size.height) / dimension.numberOfRows + let imageSize = CGSize(width: width, height: height) + + for i in 0.. Date: Mon, 1 Feb 2016 01:20:26 +0000 Subject: [PATCH 07/15] The boundaries should be set, after adding the pieces --- .../Puzzle/Board/PuzzleBoard.swift | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index 51d3d78..c83b9d8 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -30,6 +30,7 @@ final class PuzzleBoard: UIView { dataSource?.piecesViewModels .map { (position,viewModel) in (position, viewModel, self.puzzlePieceSize) } .observeOn(QueueScheduler.mainQueueScheduler) + .on(completed: defineBoardBoundaries) .startWithNext(addPiece) } } @@ -45,9 +46,6 @@ final class PuzzleBoard: UIView { super.init(frame: CGRect(x: 0, y: 0, width: width, height: height)) backgroundColor = puzzleBoardBackgroudColor - - self.defineBorder() - self.defineSquares(boardDimension) } required init?(coder aDecoder: NSCoder) { @@ -65,28 +63,34 @@ final class PuzzleBoard: UIView { piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) } + private func defineBoardBoundaries() { + + defineBorder() + defineSquares() + } + private func defineBorder() { layer.borderColor = puzzleBoardLinesColor.CGColor layer.borderWidth = 1.0 } - private func defineSquares(dimension: PuzzleBoardDimension) { + private func defineSquares() { - for i in 0.. Date: Sun, 7 Feb 2016 22:34:02 +0000 Subject: [PATCH 08/15] Kinda pointless --- RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index c83b9d8..b2160b0 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -28,7 +28,6 @@ final class PuzzleBoard: UIView { subviews.forEach { $0.removeFromSuperview() } dataSource?.piecesViewModels - .map { (position,viewModel) in (position, viewModel, self.puzzlePieceSize) } .observeOn(QueueScheduler.mainQueueScheduler) .on(completed: defineBoardBoundaries) .startWithNext(addPiece) @@ -54,7 +53,7 @@ final class PuzzleBoard: UIView { // MARK: - Board Construction - private func addPiece(position: PuzzlePiecePosition, viewModel: PuzzlePieceViewModel, size: CGSize) { + private func addPiece(position: PuzzlePiecePosition, viewModel: PuzzlePieceViewModel) { let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: viewModel) self.addSubview(piece) From 703dbb8b6545c2ce74684bd0b319aa536d6e8338 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Sun, 7 Feb 2016 22:49:22 +0000 Subject: [PATCH 09/15] The PuzzleBoard consumer, shouldn't be bothered with the PuzzleBoardDataSource The image itself is the data source --- .../Puzzle/Board/PuzzleBoard.swift | 23 ++++++++----------- .../Puzzle/PuzzleViewController.swift | 5 +--- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index b2160b0..17d1209 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -18,33 +18,28 @@ final class PuzzleBoard: UIView { private let boardDimension: PuzzleBoardDimension private let puzzlePieceSize: CGSize + private var dataSource: PuzzleBoardDataSource var puzzleBoardLinesColor = UIColor.grayColor() var puzzleBoardBackgroudColor = UIColor.whiteColor() - weak var dataSource: PuzzleBoardDataSource? { - didSet { - - subviews.forEach { $0.removeFromSuperview() } - - dataSource?.piecesViewModels - .observeOn(QueueScheduler.mainQueueScheduler) - .on(completed: defineBoardBoundaries) - .startWithNext(addPiece) - } - } - - init(boardDimension: PuzzleBoardDimension, puzzlePieceSize: CGSize = CGSize(width: 100, height: 100)) { + init(boardDimension: PuzzleBoardDimension, image: UIImage, puzzlePieceSize: CGSize = CGSize(width: 100, height: 100)) { self.boardDimension = boardDimension self.puzzlePieceSize = puzzlePieceSize - + self.dataSource = PuzzleViewModel(image: image, dimension: boardDimension) + let width = Int(puzzlePieceSize.width) * boardDimension.numberOfRows let height = Int(puzzlePieceSize.height) * boardDimension.numberOfColumns super.init(frame: CGRect(x: 0, y: 0, width: width, height: height)) backgroundColor = puzzleBoardBackgroudColor + + dataSource.piecesViewModels + .observeOn(QueueScheduler.mainQueueScheduler) + .on(completed: defineBoardBoundaries) + .startWithNext(addPiece) } required init?(coder aDecoder: NSCoder) { diff --git a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift index 9b2a26c..019e31d 100644 --- a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift +++ b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift @@ -13,14 +13,11 @@ private let dimension = PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: final class PuzzleViewController: UIViewController { - private let board = PuzzleBoard(boardDimension:dimension) - private let viewModel: PuzzleViewModel = PuzzleViewModel(image: UIImage(named: "japan_forest")!, dimension: dimension) + private let board = PuzzleBoard(boardDimension:dimension, image: UIImage(named: "japan_forest")!) override func viewDidLoad() { super.viewDidLoad() view.addSubview(board) - - board.dataSource = viewModel } override func viewDidLayoutSubviews() { From c9115797268b685b9d5361b3154719ea81e8f7b3 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Sun, 7 Feb 2016 23:41:07 +0000 Subject: [PATCH 10/15] Modification in the architecture, so it's easier to animate the pieces --- .../Puzzle/Board/PuzzleBoard.swift | 49 ++++++++++++++----- .../ViewModel/PuzzlePieceViewModel.swift | 6 ++- .../Puzzle/ViewModel/PuzzleViewModel.swift | 10 ++-- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index 17d1209..2f9fb65 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -28,7 +28,7 @@ final class PuzzleBoard: UIView { self.boardDimension = boardDimension self.puzzlePieceSize = puzzlePieceSize self.dataSource = PuzzleViewModel(image: image, dimension: boardDimension) - + let width = Int(puzzlePieceSize.width) * boardDimension.numberOfRows let height = Int(puzzlePieceSize.height) * boardDimension.numberOfColumns @@ -36,29 +36,52 @@ final class PuzzleBoard: UIView { backgroundColor = puzzleBoardBackgroudColor - dataSource.piecesViewModels - .observeOn(QueueScheduler.mainQueueScheduler) - .on(completed: defineBoardBoundaries) - .startWithNext(addPiece) + bootstrap() } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } - // MARK: - Board Construction + // MARK: - Board bootstrap - private func addPiece(position: PuzzlePiecePosition, viewModel: PuzzlePieceViewModel) { + private func bootstrap() { - let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: viewModel) - self.addSubview(piece) - let x = position.row * Int(puzzlePieceSize.width) - let y = position.column * Int(puzzlePieceSize.height) - piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) + let piecesDataSource = dataSource.piecesViewModels + .observeOn(QueueScheduler.mainQueueScheduler) + .map { (viewModels, skippedPiece) in (viewModels, skippedPiece, self.puzzlePieceSize)} + .flatMap(.Latest, transform: addPieces) + .on(completed: { self.defineBoardBoundaries() }) + + piecesDataSource.start() } - private func defineBoardBoundaries() { + // MARK: - Board Construction + private func addPieces(viewModels: [PuzzlePieceViewModel], skippedPiece: PuzzlePiecePosition, puzzlePieceSize: CGSize) -> SignalProducer<([PuzzlePiece], PuzzlePiecePosition), NoError> { + + return SignalProducer {o, d in + + var puzzlePieces: [PuzzlePiece] = [] + + viewModels.forEach { viewModel in + + let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: viewModel) + self.addSubview(piece) + puzzlePieces.append(piece) + + let x = viewModel.piecePosition.row * Int(puzzlePieceSize.width) + let y = viewModel.piecePosition.column * Int(puzzlePieceSize.height) + piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) + } + + o.sendNext((puzzlePieces,skippedPiece)) + o.sendCompleted() + } + } + + private func defineBoardBoundaries() { + defineBorder() defineSquares() } diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift index 345ea2a..3c8daac 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift @@ -10,10 +10,12 @@ import UIKit final class PuzzlePieceViewModel { + let piecePosition: PuzzlePiecePosition let image: UIImage - - init(image: UIImage) { + + init(piecePosition: PuzzlePiecePosition, image: UIImage) { + self.piecePosition = piecePosition self.image = image } } \ No newline at end of file diff --git a/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift b/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift index 7794919..dc080d8 100644 --- a/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift +++ b/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift @@ -11,14 +11,14 @@ import ReactiveCocoa protocol PuzzleBoardDataSource: class { - var piecesViewModels: SignalProducer<(PuzzlePiecePosition, PuzzlePieceViewModel), NoError> { get } + var piecesViewModels: SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { get } } extension PuzzleViewModel: PuzzleBoardDataSource { } final class PuzzleViewModel { - let piecesViewModels: SignalProducer<(PuzzlePiecePosition, PuzzlePieceViewModel), NoError> + let piecesViewModels: SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> init(image: UIImage, dimension: PuzzleBoardDimension) { @@ -28,9 +28,7 @@ final class PuzzleViewModel { let randomPiecePosition = randomPosition(dimension) let filter = filterPuzzlePiecePosition(randomPiecePosition) - piecesViewModels = producer.filter(filter).map { (position, image) in - return (position, PuzzlePieceViewModel(image: image)) - } + piecesViewModels = producer.filter(filter).map(PuzzlePieceViewModel.init).collect().map { ($0, randomPiecePosition) } } } @@ -42,7 +40,7 @@ private func randomPosition(dimension: PuzzleBoardDimension) -> PuzzlePiecePosit return PuzzlePiecePosition(row: row, column: column) } -private func filterPuzzlePiecePosition(skippedPosition: PuzzlePiecePosition) -> (PuzzlePiecePosition,UIImage) -> Bool { +private func filterPuzzlePiecePosition(skippedPosition: PuzzlePiecePosition) -> (PuzzlePiecePosition, UIImage) -> Bool { return { (position, image) in return skippedPosition != position From 1ad554b319853baafc9915d2610302e31a3d2400 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Sun, 7 Feb 2016 23:42:35 +0000 Subject: [PATCH 11/15] The ViewModel now belongs to the Board, instead of the VC --- RACNest.xcodeproj/project.pbxproj | 16 ++++------------ .../Puzzle/Board/PuzzleBoard.swift | 2 +- .../ViewModel/PuzzleBoardDataSource.swift} | 11 ++--------- 3 files changed, 7 insertions(+), 22 deletions(-) rename RACNest/ViewControllers/Puzzle/{ViewModel/PuzzleViewModel.swift => Board/ViewModel/PuzzleBoardDataSource.swift} (89%) diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index f0aa13c..48ddc39 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -18,7 +18,6 @@ C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */; }; C741B5A81C5EA01900C69372 /* PuzzlePiece.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */; }; C741B5B81C5EC65600C69372 /* PuzzlePieceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */; }; - C741B5BB1C5ECE8D00C69372 /* PuzzleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C741B5BA1C5ECE8D00C69372 /* PuzzleViewModel.swift */; }; C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */; }; C76C20601C5053660083F4F5 /* words.txt in Resources */ = {isa = PBXBuildFile; fileRef = C76C205F1C5053660083F4F5 /* words.txt */; }; C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */; }; @@ -31,6 +30,7 @@ C7CB87121C51AB8E00ED9AE6 /* GenericTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7CB87111C51AB8E00ED9AE6 /* GenericTableCell.swift */; }; C7CB87161C51AC7000ED9AE6 /* SearchCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7CB87141C51AC7000ED9AE6 /* SearchCellItem.swift */; }; C7CB87171C51AC7000ED9AE6 /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7CB87151C51AC7000ED9AE6 /* SearchViewModel.swift */; }; + C7E353681C680DC200A6C9DE /* PuzzleBoardDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7E353671C680DC200A6C9DE /* PuzzleBoardDataSource.swift */; }; C7F7404F1C4B219D00519895 /* Rex.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7F7404C1C4B219D00519895 /* Rex.framework */; }; C7F740501C4B219D00519895 /* ReactiveCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7F7404D1C4B219D00519895 /* ReactiveCocoa.framework */; }; C7F740511C4B219D00519895 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7F7404E1C4B219D00519895 /* Result.framework */; }; @@ -64,7 +64,6 @@ C741B5A51C5E96DF00C69372 /* PuzzleBoard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoard.swift; sourceTree = ""; }; C741B5A71C5EA01900C69372 /* PuzzlePiece.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePiece.swift; sourceTree = ""; }; C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzlePieceViewModel.swift; sourceTree = ""; }; - C741B5BA1C5ECE8D00C69372 /* PuzzleViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleViewModel.swift; sourceTree = ""; }; C76C205A1C504B9D0083F4F5 /* SearchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = ""; }; C76C205F1C5053660083F4F5 /* words.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = words.txt; sourceTree = ""; }; C7852C321C4ACAAA00375089 /* StoryboardViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardViewController.swift; sourceTree = ""; }; @@ -77,6 +76,7 @@ C7CB87111C51AB8E00ED9AE6 /* GenericTableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GenericTableCell.swift; sourceTree = ""; }; C7CB87141C51AC7000ED9AE6 /* SearchCellItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchCellItem.swift; sourceTree = ""; }; C7CB87151C51AC7000ED9AE6 /* SearchViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = ""; }; + C7E353671C680DC200A6C9DE /* PuzzleBoardDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoardDataSource.swift; sourceTree = ""; }; C7F7404C1C4B219D00519895 /* Rex.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Rex.framework; path = Carthage/Build/iOS/Rex.framework; sourceTree = ""; }; C7F7404D1C4B219D00519895 /* ReactiveCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveCocoa.framework; path = Carthage/Build/iOS/ReactiveCocoa.framework; sourceTree = ""; }; C7F7404E1C4B219D00519895 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/iOS/Result.framework; sourceTree = ""; }; @@ -208,7 +208,6 @@ isa = PBXGroup; children = ( C741B5A21C5E940400C69372 /* PuzzleViewController.swift */, - C741B5B91C5ECE8100C69372 /* ViewModel */, C741B5A41C5E96D800C69372 /* Board */, ); path = Puzzle; @@ -227,19 +226,12 @@ C741B5B41C5EC65600C69372 /* ViewModel */ = { isa = PBXGroup; children = ( + C7E353671C680DC200A6C9DE /* PuzzleBoardDataSource.swift */, C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */, ); path = ViewModel; sourceTree = ""; }; - C741B5B91C5ECE8100C69372 /* ViewModel */ = { - isa = PBXGroup; - children = ( - C741B5BA1C5ECE8D00C69372 /* PuzzleViewModel.swift */, - ); - path = ViewModel; - sourceTree = ""; - }; C76C20591C504B750083F4F5 /* Search */ = { isa = PBXGroup; children = ( @@ -470,13 +462,13 @@ C741B5A31C5E940400C69372 /* PuzzleViewController.swift in Sources */, C7F740561C4B272500519895 /* RacExtensions.swift in Sources */, C7852C331C4ACAAA00375089 /* StoryboardViewController.swift in Sources */, + C7E353681C680DC200A6C9DE /* PuzzleBoardDataSource.swift in Sources */, C741B5B81C5EC65600C69372 /* PuzzlePieceViewModel.swift in Sources */, C72D330F1C471B3000F88B11 /* TableViewProtocols.swift in Sources */, C76C205B1C504B9D0083F4F5 /* SearchViewController.swift in Sources */, C741B5A61C5E96DF00C69372 /* PuzzleBoard.swift in Sources */, C72D330D1C471B0C00F88B11 /* CellProtocols.swift in Sources */, C7852C4C1C4B0E2B00375089 /* FormViewModel.swift in Sources */, - C741B5BB1C5ECE8D00C69372 /* PuzzleViewModel.swift in Sources */, C7852C351C4ACB6B00375089 /* Storyboard.swift in Sources */, C7852C3D1C4ACF9500375089 /* FormViewController.swift in Sources */, C7852C471C4ACFE000375089 /* MainViewController.swift in Sources */, diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index 2f9fb65..bbc7ad4 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -27,7 +27,7 @@ final class PuzzleBoard: UIView { self.boardDimension = boardDimension self.puzzlePieceSize = puzzlePieceSize - self.dataSource = PuzzleViewModel(image: image, dimension: boardDimension) + self.dataSource = PuzzleBoardDataSource(image: image, dimension: boardDimension) let width = Int(puzzlePieceSize.width) * boardDimension.numberOfRows let height = Int(puzzlePieceSize.height) * boardDimension.numberOfColumns diff --git a/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift similarity index 89% rename from RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift rename to RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift index dc080d8..4f1ed8d 100644 --- a/RACNest/ViewControllers/Puzzle/ViewModel/PuzzleViewModel.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift @@ -1,5 +1,5 @@ // -// PuzzleViewModel.swift +// PuzzleBoardDataSource.swift // RACNest // // Created by Rui Peres on 31/01/2016. @@ -9,14 +9,7 @@ import UIKit import ReactiveCocoa -protocol PuzzleBoardDataSource: class { - - var piecesViewModels: SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { get } -} - -extension PuzzleViewModel: PuzzleBoardDataSource { } - -final class PuzzleViewModel { +final class PuzzleBoardDataSource { let piecesViewModels: SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> From 3f6dc9234ec664d188cb0461fc71ecca78fcdae9 Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Mon, 8 Feb 2016 01:34:41 +0000 Subject: [PATCH 12/15] =?UTF-8?q?Finished=20the=20Animator.=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RACNest.xcodeproj/project.pbxproj | 4 + .../Puzzle/Board/PuzzleBoard.swift | 38 +++++--- .../Puzzle/Board/PuzzlePiece.swift | 16 +++- .../Board/ViewModel/PuzzleBoardAnimator.swift | 96 +++++++++++++++++++ .../ViewModel/PuzzleBoardDataSource.swift | 12 +-- .../ViewModel/PuzzlePieceViewModel.swift | 9 +- 6 files changed, 154 insertions(+), 21 deletions(-) create mode 100644 RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift diff --git a/RACNest.xcodeproj/project.pbxproj b/RACNest.xcodeproj/project.pbxproj index 48ddc39..8662f1a 100644 --- a/RACNest.xcodeproj/project.pbxproj +++ b/RACNest.xcodeproj/project.pbxproj @@ -31,6 +31,7 @@ C7CB87161C51AC7000ED9AE6 /* SearchCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7CB87141C51AC7000ED9AE6 /* SearchCellItem.swift */; }; C7CB87171C51AC7000ED9AE6 /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7CB87151C51AC7000ED9AE6 /* SearchViewModel.swift */; }; C7E353681C680DC200A6C9DE /* PuzzleBoardDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7E353671C680DC200A6C9DE /* PuzzleBoardDataSource.swift */; }; + C7E3536A1C680E5C00A6C9DE /* PuzzleBoardAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7E353691C680E5C00A6C9DE /* PuzzleBoardAnimator.swift */; }; C7F7404F1C4B219D00519895 /* Rex.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7F7404C1C4B219D00519895 /* Rex.framework */; }; C7F740501C4B219D00519895 /* ReactiveCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7F7404D1C4B219D00519895 /* ReactiveCocoa.framework */; }; C7F740511C4B219D00519895 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7F7404E1C4B219D00519895 /* Result.framework */; }; @@ -77,6 +78,7 @@ C7CB87141C51AC7000ED9AE6 /* SearchCellItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchCellItem.swift; sourceTree = ""; }; C7CB87151C51AC7000ED9AE6 /* SearchViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = ""; }; C7E353671C680DC200A6C9DE /* PuzzleBoardDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoardDataSource.swift; sourceTree = ""; }; + C7E353691C680E5C00A6C9DE /* PuzzleBoardAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PuzzleBoardAnimator.swift; sourceTree = ""; }; C7F7404C1C4B219D00519895 /* Rex.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Rex.framework; path = Carthage/Build/iOS/Rex.framework; sourceTree = ""; }; C7F7404D1C4B219D00519895 /* ReactiveCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReactiveCocoa.framework; path = Carthage/Build/iOS/ReactiveCocoa.framework; sourceTree = ""; }; C7F7404E1C4B219D00519895 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Result.framework; path = Carthage/Build/iOS/Result.framework; sourceTree = ""; }; @@ -227,6 +229,7 @@ isa = PBXGroup; children = ( C7E353671C680DC200A6C9DE /* PuzzleBoardDataSource.swift */, + C7E353691C680E5C00A6C9DE /* PuzzleBoardAnimator.swift */, C741B5B61C5EC65600C69372 /* PuzzlePieceViewModel.swift */, ); path = ViewModel; @@ -472,6 +475,7 @@ C7852C351C4ACB6B00375089 /* Storyboard.swift in Sources */, C7852C3D1C4ACF9500375089 /* FormViewController.swift in Sources */, C7852C471C4ACFE000375089 /* MainViewController.swift in Sources */, + C7E3536A1C680E5C00A6C9DE /* PuzzleBoardAnimator.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index bbc7ad4..09ac348 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -19,7 +19,8 @@ final class PuzzleBoard: UIView { private let boardDimension: PuzzleBoardDimension private let puzzlePieceSize: CGSize private var dataSource: PuzzleBoardDataSource - + private var animator: PuzzleBoardAnimator + var puzzleBoardLinesColor = UIColor.grayColor() var puzzleBoardBackgroudColor = UIColor.whiteColor() @@ -28,6 +29,7 @@ final class PuzzleBoard: UIView { self.boardDimension = boardDimension self.puzzlePieceSize = puzzlePieceSize self.dataSource = PuzzleBoardDataSource(image: image, dimension: boardDimension) + self.animator = PuzzleBoardAnimator(dimension: boardDimension) let width = Int(puzzlePieceSize.width) * boardDimension.numberOfRows let height = Int(puzzlePieceSize.height) * boardDimension.numberOfColumns @@ -52,30 +54,44 @@ final class PuzzleBoard: UIView { .map { (viewModels, skippedPiece) in (viewModels, skippedPiece, self.puzzlePieceSize)} .flatMap(.Latest, transform: addPieces) .on(completed: { self.defineBoardBoundaries() }) - + .flatMap(.Latest, transform: animator.movePieceRandomly) + piecesDataSource.start() } + // MARK - Animation + + private func pieceAnimation(pieceSize: CGSize) -> (PuzzlePiece, PuzzlePiecePosition) -> Void { + + return { (puzzlePiece, piecePosition) in + + UIView.animateWithDuration(0.3) { + + let newX = piecePosition.column * Int(pieceSize.width) + let newY = piecePosition.row * Int(pieceSize.height) + + let newLocation = CGPoint(x: newX, y: newY) + puzzlePiece.frame.origin = newLocation + } + } + } + // MARK: - Board Construction - private func addPieces(viewModels: [PuzzlePieceViewModel], skippedPiece: PuzzlePiecePosition, puzzlePieceSize: CGSize) -> SignalProducer<([PuzzlePiece], PuzzlePiecePosition), NoError> { + private func addPieces(viewModels: [PuzzlePieceViewModel], skippedPiece: PuzzlePiecePosition, puzzlePieceSize: CGSize) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { return SignalProducer {o, d in - var puzzlePieces: [PuzzlePiece] = [] - viewModels.forEach { viewModel in - let piece = PuzzlePiece(size: puzzlePieceSize, viewModel: viewModel) + let animation = self.pieceAnimation(self.puzzlePieceSize) + let piece = PuzzlePiece(size: puzzlePieceSize, moveAnimation: animation, viewModel: viewModel) self.addSubview(piece) - puzzlePieces.append(piece) - let x = viewModel.piecePosition.row * Int(puzzlePieceSize.width) - let y = viewModel.piecePosition.column * Int(puzzlePieceSize.height) - piece.frame = CGRect(origin: CGPoint(x: x, y: y), size: puzzlePieceSize) + piece.frame = CGRect(origin: piece.frame.origin, size: puzzlePieceSize) } - o.sendNext((puzzlePieces,skippedPiece)) + o.sendNext((viewModels,skippedPiece)) o.sendCompleted() } } diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift index 400c29e..c31ad07 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift @@ -13,6 +13,11 @@ struct PuzzlePiecePosition { let row: Int let column: Int + + init(_ row: Int, _ column: Int) { + self.row = row + self.column = column + } } extension PuzzlePiecePosition: Hashable { @@ -26,18 +31,27 @@ func ==(lhs: PuzzlePiecePosition, rhs: PuzzlePiecePosition) -> Bool { return lhs.hashValue == rhs.hashValue } +typealias MovePiece = (PuzzlePiece, PuzzlePiecePosition) -> Void + final class PuzzlePiece: UIView { private let puzzleImageView: UIImageView = UIImageView() private let viewModel: PuzzlePieceViewModel + private let moveAnimation: MovePiece - init(size: CGSize, viewModel: PuzzlePieceViewModel) { + init(size: CGSize, moveAnimation: MovePiece, viewModel: PuzzlePieceViewModel) { self.viewModel = viewModel + self.moveAnimation = moveAnimation + super.init(frame: CGRect(origin: CGPointZero, size: size)) addSubview(puzzleImageView) self.puzzleImageView.image = viewModel.image + + viewModel.currentPiecePosition.producer.startWithNext { piecePosition in + moveAnimation(self, piecePosition) + } } required init?(coder aDecoder: NSCoder) { diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift new file mode 100644 index 0000000..1ae0702 --- /dev/null +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift @@ -0,0 +1,96 @@ +// +// PuzzleBoardAnimator.swift +// RACNest +// +// Created by Rui Peres on 07/02/2016. +// Copyright © 2016 Rui Peres. All rights reserved. +// + +import ReactiveCocoa +import Rex + +private func newPPP(row: Int, _ column: Int) -> PuzzlePiecePosition { + return PuzzlePiecePosition(row, column) +} + +struct PuzzleBoardAnimator { + + private let dimension: PuzzleBoardDimension + + init(dimension: PuzzleBoardDimension) { + self.dimension = dimension + } + + func movePieceRandomly(pieces: [PuzzlePieceViewModel], skippedPosition: PuzzlePiecePosition) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { + + var chain: SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> = createPieceMovementProducer(pieces, skippedPosition: skippedPosition) + + (1...50).forEach { _ in + chain = chain.flatMap(.Latest, transform: createPieceMovementProducer) + } + + return chain + } + + private func createPieceMovementProducer(pieces: [PuzzlePieceViewModel], skippedPosition: PuzzlePiecePosition) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { + + return SignalProducer { o, d in + + let allPositions = pieces.map { $0.currentPiecePosition.value } + let positionToBeMovedTo = self.randomPosition(self.candidates(allPositions, skippedPosition: skippedPosition)) + + let associatedViewModel = pieces.filter { $0.currentPiecePosition.value == positionToBeMovedTo}.first! + let newSkippedPosition = associatedViewModel.currentPiecePosition.value + + associatedViewModel.currentPiecePosition.value = skippedPosition + + o.sendNext((pieces, newSkippedPosition)) + o.sendCompleted() + } + .deferred(0.3, onScheduler: QueueScheduler.mainQueueScheduler) + } + + private func randomPosition(positions: [PuzzlePiecePosition]) -> PuzzlePiecePosition { + + let index = Int(arc4random_uniform(UInt32(positions.count))) + return positions[index] + } + + private func candidates(positions: [PuzzlePiecePosition], skippedPosition: PuzzlePiecePosition) -> [PuzzlePiecePosition] { + + + let maxBoardRow = dimension.numberOfRows - 1 + let maxBoardColumn = dimension.numberOfColumns - 1 + + switch (skippedPosition.row, skippedPosition.column) { + + // top left corner + case (0, 0): + return [newPPP(0,1), newPPP(1,0)] + // top right corner + case (maxBoardRow, 0): + return [newPPP(maxBoardRow - 1, 0), newPPP(maxBoardRow, 1)] + // bottom left corner + case (0, maxBoardColumn) : + return [newPPP(0, maxBoardColumn - 1), newPPP(1, maxBoardColumn)] + // botom right corner + case (maxBoardRow, maxBoardColumn) : + return [newPPP(maxBoardRow - 1, maxBoardColumn), newPPP(maxBoardRow, maxBoardColumn - 1)] + + // Top Edge && Bottom Edge + case (let aRow, let aColumn) where aRow == 0 || aRow == maxBoardRow: + let rowOffset = aRow == 0 ? 1 : -1 + return [newPPP(aRow, aColumn - 1), newPPP(aRow, aColumn + 1), newPPP(aRow + rowOffset, aColumn)] + + // Left and Right Edge + case (let aRow, let aColumn) where aColumn == 0 || aColumn == maxBoardColumn: + let columnOffset = aColumn == 0 ? 1 : -1 + return [newPPP(aRow - 1, aColumn), newPPP(aRow + 1, aColumn), newPPP(aRow, aColumn + columnOffset)] + + // All other cases + case (let aRow, let aColumn): + return [newPPP(aRow - 1, aColumn), newPPP(aRow + 1, aColumn), newPPP(aRow, aColumn + 1), newPPP(aRow, aColumn - 1)] + } + } +} + diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift index 4f1ed8d..eca22fd 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift @@ -30,7 +30,7 @@ private func randomPosition(dimension: PuzzleBoardDimension) -> PuzzlePiecePosit let row = Int(arc4random_uniform(UInt32(dimension.numberOfRows))) let column = Int(arc4random_uniform(UInt32(dimension.numberOfColumns))) - return PuzzlePiecePosition(row: row, column: column) + return PuzzlePiecePosition(row, column) } private func filterPuzzlePiecePosition(skippedPosition: PuzzlePiecePosition) -> (PuzzlePiecePosition, UIImage) -> Bool { @@ -48,13 +48,13 @@ private func sliceImage(image: UIImage, dimension: PuzzleBoardDimension) -> Sign let height = Int(image.size.height) / dimension.numberOfRows let imageSize = CGSize(width: width, height: height) - for i in 0.. + let originalPiecePosition: ConstantProperty let image: UIImage - init(piecePosition: PuzzlePiecePosition, image: UIImage) { + init(originalPiecePosition: PuzzlePiecePosition, image: UIImage) { - self.piecePosition = piecePosition + self.originalPiecePosition = ConstantProperty(originalPiecePosition) + self.currentPiecePosition = MutableProperty(originalPiecePosition) self.image = image } } \ No newline at end of file From d53693080e1e8787999cd3a9ee812aabf587de1a Mon Sep 17 00:00:00 2001 From: Rui Peres Date: Mon, 8 Feb 2016 01:43:01 +0000 Subject: [PATCH 13/15] Extracted the "chain" logic into a SignalProducer extension --- .../RAC Extensions/RacExtensions.swift | 16 +++++++++++++++- .../Board/ViewModel/PuzzleBoardAnimator.swift | 9 ++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/RACNest/Components/RAC Extensions/RacExtensions.swift b/RACNest/Components/RAC Extensions/RacExtensions.swift index 091dda8..bea5939 100644 --- a/RACNest/Components/RAC Extensions/RacExtensions.swift +++ b/RACNest/Components/RAC Extensions/RacExtensions.swift @@ -21,4 +21,18 @@ extension UITextField { return textField.text ?? "" } } -} \ No newline at end of file +} + +extension SignalProducer { + + func chain(times: Int, transformation: Value -> SignalProducer) -> SignalProducer { + + var chain = self + + (0.. SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { - var chain: SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> = createPieceMovementProducer(pieces, skippedPosition: skippedPosition) - - (1...50).forEach { _ in - chain = chain.flatMap(.Latest, transform: createPieceMovementProducer) - } - - return chain + return createPieceMovementProducer(pieces, skippedPosition: skippedPosition) + .chain(50, transformation: createPieceMovementProducer) } private func createPieceMovementProducer(pieces: [PuzzlePieceViewModel], skippedPosition: PuzzlePiecePosition) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { From 5ebfa0b53a611c33b18ac6ff39334562e1ea4026 Mon Sep 17 00:00:00 2001 From: ruiaaperes Date: Sun, 16 Apr 2017 01:23:42 +0100 Subject: [PATCH 14/15] Clean up headers --- .../Puzzle/Board/PuzzleBoard.swift | 8 --- .../Puzzle/Board/PuzzlePiece.swift | 10 +-- .../Board/ViewModel/PuzzleBoardAnimator.swift | 63 ++++++++----------- .../ViewModel/PuzzleBoardDataSource.swift | 9 --- .../ViewModel/PuzzlePieceViewModel.swift | 9 --- .../Puzzle/PuzzleViewController.swift | 9 --- 6 files changed, 27 insertions(+), 81 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift index af9f561..d128319 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzleBoard.swift @@ -1,11 +1,3 @@ -// -// PuzzleBoard.swift -// RACNest -// -// Created by Rui Peres on 31/01/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - import UIKit import ReactiveSwift import ReactiveCocoa diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift index c37b689..e65b876 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift @@ -1,13 +1,5 @@ -// -// PuzzlePiece.swift -// RACNest -// -// Created by Rui Peres on 31/01/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - import UIKit -import ReactiveCocoa +import ReactiveSwift struct PuzzlePiecePosition { diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift index a359ec5..e5378e1 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift @@ -1,13 +1,4 @@ -// -// PuzzleBoardAnimator.swift -// RACNest -// -// Created by Rui Peres on 07/02/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - import Result -import ReactiveCocoa import ReactiveSwift private func newPPP(_ row: Int, _ column: Int) -> PuzzlePiecePosition { @@ -15,78 +6,76 @@ private func newPPP(_ row: Int, _ column: Int) -> PuzzlePiecePosition { } struct PuzzleBoardAnimator { - + private let dimension: PuzzleBoardDimension - + init(dimension: PuzzleBoardDimension) { self.dimension = dimension } - + func movePieceRandomly(pieces: [PuzzlePieceViewModel], skippedPosition: PuzzlePiecePosition) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { - + return createPieceMovementProducer(pieces: pieces, skippedPosition: skippedPosition) .chain(times: 50, transformation: createPieceMovementProducer) } - + private func createPieceMovementProducer(pieces: [PuzzlePieceViewModel], skippedPosition: PuzzlePiecePosition) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { - + return SignalProducer { o, d in - + let allPositions = pieces.map { $0.currentPiecePosition.value } let positionToBeMovedTo = self.randomPosition(positions: self.candidates(positions: allPositions, skippedPosition: skippedPosition)) - + let associatedViewModel = pieces.filter { $0.currentPiecePosition.value == positionToBeMovedTo}.first! let newSkippedPosition = associatedViewModel.currentPiecePosition.value - + associatedViewModel.currentPiecePosition.value = skippedPosition - + o.send(value: (pieces, newSkippedPosition)) o.sendCompleted() } .delay(0.3, on: QueueScheduler.main) } - + private func randomPosition(positions: [PuzzlePiecePosition]) -> PuzzlePiecePosition { - + let index = Int(arc4random_uniform(UInt32(positions.count))) return positions[index] } - + private func candidates(positions: [PuzzlePiecePosition], skippedPosition: PuzzlePiecePosition) -> [PuzzlePiecePosition] { - - + let maxBoardRow = dimension.numberOfRows - 1 let maxBoardColumn = dimension.numberOfColumns - 1 - + switch (skippedPosition.row, skippedPosition.column) { - - // top left corner + + // top left corner case (0, 0): return [newPPP(0,1), newPPP(1,0)] - // top right corner + // top right corner case (maxBoardRow, 0): return [newPPP(maxBoardRow - 1, 0), newPPP(maxBoardRow, 1)] - // bottom left corner + // bottom left corner case (0, maxBoardColumn) : return [newPPP(0, maxBoardColumn - 1), newPPP(1, maxBoardColumn)] - // botom right corner + // botom right corner case (maxBoardRow, maxBoardColumn) : return [newPPP(maxBoardRow - 1, maxBoardColumn), newPPP(maxBoardRow, maxBoardColumn - 1)] - - // Top Edge && Bottom Edge + + // Top Edge && Bottom Edge case (let aRow, let aColumn) where aRow == 0 || aRow == maxBoardRow: let rowOffset = aRow == 0 ? 1 : -1 return [newPPP(aRow, aColumn - 1), newPPP(aRow, aColumn + 1), newPPP(aRow + rowOffset, aColumn)] - - // Left and Right Edge + + // Left and Right Edge case (let aRow, let aColumn) where aColumn == 0 || aColumn == maxBoardColumn: let columnOffset = aColumn == 0 ? 1 : -1 return [newPPP(aRow - 1, aColumn), newPPP(aRow + 1, aColumn), newPPP(aRow, aColumn + columnOffset)] - - // All other cases + + // All other cases case (let aRow, let aColumn): return [newPPP(aRow - 1, aColumn), newPPP(aRow + 1, aColumn), newPPP(aRow, aColumn + 1), newPPP(aRow, aColumn - 1)] } } } - diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift index e5986c7..6537688 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardDataSource.swift @@ -1,14 +1,5 @@ -// -// PuzzleBoardDataSource.swift -// RACNest -// -// Created by Rui Peres on 31/01/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - import UIKit import ReactiveSwift -import ReactiveCocoa import Result final class PuzzleBoardDataSource { diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift index 14c05cb..c257faf 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift @@ -1,14 +1,5 @@ -// -// PuzzlePieceViewModel.swift -// RACNest -// -// Created by Rui Peres on 31/01/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - import UIKit import ReactiveSwift -import ReactiveCocoa final class PuzzlePieceViewModel { diff --git a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift index 019e31d..6a80435 100644 --- a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift +++ b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift @@ -1,13 +1,4 @@ -// -// PuzzleViewController.swift -// RACNest -// -// Created by Rui Peres on 31/01/2016. -// Copyright © 2016 Rui Peres. All rights reserved. -// - import UIKit -import ReactiveCocoa private let dimension = PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3) From 479b06d97c04e78f629a955d8012c84b5929dda6 Mon Sep 17 00:00:00 2001 From: ruiaaperes Date: Mon, 17 Apr 2017 00:27:40 +0100 Subject: [PATCH 15/15] Further cleanup --- .../Puzzle/Board/PuzzlePiece.swift | 8 +++---- .../Board/ViewModel/PuzzleBoardAnimator.swift | 21 ++++++------------- .../ViewModel/PuzzlePieceViewModel.swift | 5 ++--- .../Puzzle/PuzzleViewController.swift | 2 +- 4 files changed, 12 insertions(+), 24 deletions(-) diff --git a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift index e65b876..4cc14d1 100644 --- a/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift +++ b/RACNest/ViewControllers/Puzzle/Board/PuzzlePiece.swift @@ -2,7 +2,6 @@ import UIKit import ReactiveSwift struct PuzzlePiecePosition { - let row: Int let column: Int @@ -13,14 +12,13 @@ struct PuzzlePiecePosition { } extension PuzzlePiecePosition: Hashable { - var hashValue: Int { return "\(row),\(column)".hash } -} -func ==(lhs: PuzzlePiecePosition, rhs: PuzzlePiecePosition) -> Bool { - return lhs.hashValue == rhs.hashValue + static func ==(lhs: PuzzlePiecePosition, rhs: PuzzlePiecePosition) -> Bool { + return lhs.hashValue == rhs.hashValue + } } typealias MovePiece = (PuzzlePiece, PuzzlePiecePosition) -> Void diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift index e5378e1..0a13951 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzleBoardAnimator.swift @@ -21,20 +21,14 @@ struct PuzzleBoardAnimator { private func createPieceMovementProducer(pieces: [PuzzlePieceViewModel], skippedPosition: PuzzlePiecePosition) -> SignalProducer<([PuzzlePieceViewModel], PuzzlePiecePosition), NoError> { - return SignalProducer { o, d in + let positionToBeMovedTo = self.randomPosition(positions: self.candidates(skippedPosition: skippedPosition)) - let allPositions = pieces.map { $0.currentPiecePosition.value } - let positionToBeMovedTo = self.randomPosition(positions: self.candidates(positions: allPositions, skippedPosition: skippedPosition)) + let associatedViewModel = pieces.filter { $0.currentPiecePosition.value == positionToBeMovedTo}.first! + let newSkippedPosition = associatedViewModel.currentPiecePosition.value - let associatedViewModel = pieces.filter { $0.currentPiecePosition.value == positionToBeMovedTo}.first! - let newSkippedPosition = associatedViewModel.currentPiecePosition.value + associatedViewModel.currentPiecePosition.value = skippedPosition - associatedViewModel.currentPiecePosition.value = skippedPosition - - o.send(value: (pieces, newSkippedPosition)) - o.sendCompleted() - } - .delay(0.3, on: QueueScheduler.main) + return SignalProducer(value: (pieces, newSkippedPosition)) .delay(0.3, on: QueueScheduler.main) } private func randomPosition(positions: [PuzzlePiecePosition]) -> PuzzlePiecePosition { @@ -43,7 +37,7 @@ struct PuzzleBoardAnimator { return positions[index] } - private func candidates(positions: [PuzzlePiecePosition], skippedPosition: PuzzlePiecePosition) -> [PuzzlePiecePosition] { + private func candidates(skippedPosition: PuzzlePiecePosition) -> [PuzzlePiecePosition] { let maxBoardRow = dimension.numberOfRows - 1 let maxBoardColumn = dimension.numberOfColumns - 1 @@ -62,17 +56,14 @@ struct PuzzleBoardAnimator { // botom right corner case (maxBoardRow, maxBoardColumn) : return [newPPP(maxBoardRow - 1, maxBoardColumn), newPPP(maxBoardRow, maxBoardColumn - 1)] - // Top Edge && Bottom Edge case (let aRow, let aColumn) where aRow == 0 || aRow == maxBoardRow: let rowOffset = aRow == 0 ? 1 : -1 return [newPPP(aRow, aColumn - 1), newPPP(aRow, aColumn + 1), newPPP(aRow + rowOffset, aColumn)] - // Left and Right Edge case (let aRow, let aColumn) where aColumn == 0 || aColumn == maxBoardColumn: let columnOffset = aColumn == 0 ? 1 : -1 return [newPPP(aRow - 1, aColumn), newPPP(aRow + 1, aColumn), newPPP(aRow, aColumn + columnOffset)] - // All other cases case (let aRow, let aColumn): return [newPPP(aRow - 1, aColumn), newPPP(aRow + 1, aColumn), newPPP(aRow, aColumn + 1), newPPP(aRow, aColumn - 1)] diff --git a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift index c257faf..2d38285 100644 --- a/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift +++ b/RACNest/ViewControllers/Puzzle/Board/ViewModel/PuzzlePieceViewModel.swift @@ -4,12 +4,11 @@ import ReactiveSwift final class PuzzlePieceViewModel { let currentPiecePosition: MutableProperty - let originalPiecePosition: Property + let originalPiecePosition: PuzzlePiecePosition let image: UIImage init(originalPiecePosition: PuzzlePiecePosition, image: UIImage) { - - self.originalPiecePosition = Property(value: originalPiecePosition) + self.originalPiecePosition = originalPiecePosition self.currentPiecePosition = MutableProperty(originalPiecePosition) self.image = image } diff --git a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift index 6a80435..cab7666 100644 --- a/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift +++ b/RACNest/ViewControllers/Puzzle/PuzzleViewController.swift @@ -1,6 +1,6 @@ import UIKit -private let dimension = PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3) +private let dimension = PuzzleBoardDimension(numberOfRows: 3, numberOfColumns: 3) final class PuzzleViewController: UIViewController {