master
Kanken 2 years ago
parent 01f87e0f8a
commit 809c923982

@ -360,8 +360,8 @@
filePath = "forcesPack/Tests/forcesPackTests/boardRulesTests.swift" filePath = "forcesPack/Tests/forcesPackTests/boardRulesTests.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "36" startingLineNumber = "37"
endingLineNumber = "36" endingLineNumber = "37"
landmarkName = "testRules()" landmarkName = "testRules()"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
@ -376,8 +376,8 @@
filePath = "forcesPack/Tests/forcesPackTests/boardRulesTests.swift" filePath = "forcesPack/Tests/forcesPackTests/boardRulesTests.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "42" startingLineNumber = "43"
endingLineNumber = "42" endingLineNumber = "43"
landmarkName = "testRules()" landmarkName = "testRules()"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
@ -392,9 +392,9 @@
filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift" filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "18" startingLineNumber = "17"
endingLineNumber = "18" endingLineNumber = "17"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
<Locations> <Locations>
<Location <Location
@ -457,6 +457,21 @@
endingLineNumber = "18" endingLineNumber = "18"
offsetFromSymbolStart = "1609"> offsetFromSymbolStart = "1609">
</Location> </Location>
<Location
uuid = "DCE63B6C-A177-400D-A019-8DC8AB50FE21 - 75d56842e8b45f90"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "forcesPack.AreRows4xL.isRuleMet(grid: Swift.Array&lt;Swift.Array&lt;Swift.Optional&lt;Swift.Int&gt;&gt;&gt;, targetedRow: Swift.Int, targetedCol: Swift.Int, lastPlayedId: Swift.Int) -&gt; Swift.Bool"
moduleName = "forcesPackTests"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/yorickgeoffre/swift/4forces/forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "17"
endingLineNumber = "17"
offsetFromSymbolStart = "1301">
</Location>
</Locations> </Locations>
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -470,9 +485,9 @@
filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift" filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "21" startingLineNumber = "20"
endingLineNumber = "21" endingLineNumber = "20"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -486,9 +501,9 @@
filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift" filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "20" startingLineNumber = "19"
endingLineNumber = "20" endingLineNumber = "19"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
<Locations> <Locations>
<Location <Location
@ -564,9 +579,9 @@
filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift" filePath = "forcesPack/Sources/forcesPack/Rules/AreRows4xL.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "17" startingLineNumber = "16"
endingLineNumber = "17" endingLineNumber = "16"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -646,7 +661,7 @@
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "13" startingLineNumber = "13"
endingLineNumber = "13" endingLineNumber = "13"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -662,7 +677,7 @@
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "13" startingLineNumber = "13"
endingLineNumber = "13" endingLineNumber = "13"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -678,7 +693,7 @@
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "14" startingLineNumber = "14"
endingLineNumber = "14" endingLineNumber = "14"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -694,7 +709,7 @@
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "18" startingLineNumber = "18"
endingLineNumber = "18" endingLineNumber = "18"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:)" landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
@ -842,5 +857,84 @@
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "8BCF5C14-DCCF-4939-9693-39220C46B433"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "forcesPack/Sources/forcesPack/Rules/AreCols4xL.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "15"
endingLineNumber = "15"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7">
<Locations>
<Location
uuid = "8BCF5C14-DCCF-4939-9693-39220C46B433 - 2c501b284e01d3a0"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "forcesPack.AreCols4xL.isRuleMet(grid: Swift.Array&lt;Swift.Array&lt;Swift.Optional&lt;Swift.Int&gt;&gt;&gt;, targetedRow: Swift.Int, targetedCol: Swift.Int) -&gt; Swift.Bool"
moduleName = "4forces"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/yorickgeoffre/swift/4forces/forcesPack/Sources/forcesPack/Rules/AreCols4xL.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "15"
endingLineNumber = "15"
offsetFromSymbolStart = "433">
</Location>
<Location
uuid = "8BCF5C14-DCCF-4939-9693-39220C46B433 - 75a93932461f4bbe"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "forcesPack.AreCols4xL.isRuleMet(grid: Swift.Array&lt;Swift.Array&lt;Swift.Optional&lt;Swift.Int&gt;&gt;&gt;, targetedRow: Swift.Int, targetedCol: Swift.Int) -&gt; Swift.Bool"
moduleName = "forcesPackTests"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/yorickgeoffre/swift/4forces/forcesPack/Sources/forcesPack/Rules/AreCols4xL.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "15"
endingLineNumber = "15"
offsetFromSymbolStart = "433">
</Location>
<Location
uuid = "8BCF5C14-DCCF-4939-9693-39220C46B433 - 943c983c060e688e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "forcesPack.AreCols4xL.isRuleMet(grid: Swift.Array&lt;Swift.Array&lt;Swift.Optional&lt;Swift.Int&gt;&gt;&gt;, targetedRow: Swift.Int, targetedCol: Swift.Int, lastPlayedId: Swift.Int) -&gt; Swift.Bool"
moduleName = "forcesPackTests"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/yorickgeoffre/swift/4forces/forcesPack/Sources/forcesPack/Rules/AreCols4xL.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "15"
endingLineNumber = "15"
offsetFromSymbolStart = "323">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "B23E4265-3B48-4BC0-A364-9C39EB958E83"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "forcesPack/Sources/forcesPack/Rules/AreCols4xL.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "16"
endingLineNumber = "16"
landmarkName = "isRuleMet(grid:targetedRow:targetedCol:lastPlayedId:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints> </Breakpoints>
</Bucket> </Bucket>

@ -119,18 +119,16 @@ public struct Board : CustomStringConvertible{
public func coalesceWonBoard(winningAlignementGrid: [[Int?]]) -> String{ public func coalesceWonBoard(winningAlignementGrid: [[Int?]]) -> String{
var str: String = "" var str: String = ""
str += "" str += ""
str += String(repeating: "", count: (nbColumn)-1) + "═╗\n" str += String(repeating: "", count: (nbColumn)-1) + "═╗\n"
for collNum in 0...nbRows-1{ //parcours de la grille du bas vers le haut for collNum in 0...nbRows-1{ //parcours de la grille du bas vers le haut
for rowNum in 0...nbColumn-1{ for rowNum in 0...nbColumn-1{
str += "" str += ""
str += String(winningAlignementGrid[rowNum][collNum] != nil ? "\u{001B}[0;33" : "") str += String(winningAlignementGrid[rowNum][collNum] != nil ? "🔴" : " ")
str += String(((grid[rowNum][collNum] == nil) ? "" : String((grid[rowNum][collNum] ?? 0))))
str += "\u{001B}[0;30"
} }
str += String("\n") str += String("\n")
} }
str += "" str += ""
str += String(repeating: "", count: (nbColumn)-1) + "═╝\n" str += String(repeating: "", count: (nbColumn)-1) + "═╝\n"
return str return str
} }
} }

@ -60,12 +60,12 @@ public class Game{
} }
printerFunc(board.description) printerFunc(board.description)
for gRule in winRules { for gRule in winRules {
if(gRule.isRuleMet(grid: board.playspace, targetedRow: board.lastinsert, targetedCol: played)){ if(gRule.isRuleMet(grid: board.playspace, targetedRow: board.lastinsert, targetedCol: played, lastPlayedId: p.id)){
winner = p winner = p
printerFunc(board.coalesceWonBoard(winningAlignementGrid: gRule.results ?? [[0]])) printerFunc(board.coalesceWonBoard(winningAlignementGrid: gRule.results ?? [[0]]))
return false return false
} }
if board.isFull() { if board.isFull() { //stalemate
return false return false
} }
} }

@ -7,9 +7,9 @@
import Foundation import Foundation
public class AreCols4x: gridRule, Rule{ //TODO: use the targeted row/col for more precision public class AreCols4x: gridRule, Rule{ //TODO: use the targeted row/col for more precision
public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int) -> Bool { public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int) -> Bool {
var i: Int = 0 var i: Int = 0
var old: Int? = -1 var old: Int? = lastPlayedId
var rowid = 0 var rowid = 0
var colid = 0 var colid = 0
for row in grid{ for row in grid{

@ -8,8 +8,8 @@
import Foundation import Foundation
public class AreCols4xL: gridRule, Rule{ public class AreCols4xL: gridRule, Rule{
public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int) -> Bool { public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int) -> Bool {
var old: Int? = grid[0][targetedCol] var old: Int? = lastPlayedId
var count: Int = 0 var count: Int = 0
var index: Int = 0 var index: Int = 0
for cell in grid[targetedRow]{ for cell in grid[targetedRow]{

@ -9,12 +9,12 @@ import Foundation
public class AreDiags4x: gridRule, Rule{ //TODO: use the targeted row/col for more precision public class AreDiags4x: gridRule, Rule{ //TODO: use the targeted row/col for more precision
public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int) -> Bool { public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int) -> Bool {
let colRange = 0...grid.count-1 let colRange = 0...grid.count-1
let rowRange = 0...grid[0].count-1 let rowRange = 0...grid[0].count-1
var oldCell: Int? = nil var oldCell: Int? = lastPlayedId
var sameCount: Int = 0 var sameCount: Int = 0
for indexC in colRange{ //donne la colonne de départ en bas du tableau for indexC in colRange{ //donne la colonne de départ en bas du tableau

@ -7,10 +7,10 @@
import Foundation import Foundation
public class AreDiags4xL: gridRule, Rule{ //TODO: use the targeted row/col for more precision public class AreDiags4xL: gridRule, Rule{
public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int) -> Bool { public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int) -> Bool {
var old: Int? = grid[targetedRow][targetedCol] var old: Int? = lastPlayedId
var count : Int = 0 var count : Int = 0
let rowsize = grid[0].capacity-1 let rowsize = grid[0].capacity-1

@ -9,11 +9,11 @@ import Foundation
public class AreRows4x: gridRule, Rule{//TODO: use the targeted row/col for more precision public class AreRows4x: gridRule, Rule{//TODO: use the targeted row/col for more precision
public override init(){} public override init(){}
public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int) -> Bool { public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int) -> Bool {
var rowid = 0 var rowid = 0
var colid = 0 var colid = 0
var i: [Int] = Array( repeating: 0, count: grid.count) var i: [Int] = Array( repeating: 0, count: grid.count)
var old: [Int?] = Array( repeating: nil, count: grid.count) var old: [Int?] = Array( repeating: lastPlayedId, count: grid.count)
var idx: Int = 0 var idx: Int = 0
for row in grid{ for row in grid{
for cell in row{ for cell in row{

@ -9,11 +9,10 @@ import Foundation
public class AreRows4xL: gridRule, Rule{ public class AreRows4xL: gridRule, Rule{
public override init(){} public override init(){}
public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int) -> Bool { public func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int) -> Bool {
var old: Int? = grid[0][targetedCol] var old: Int? = lastPlayedId
var count: Int = 0 var count: Int = 0
for index in 0...grid[0].capacity-1{ for index in 0...grid[0].capacity-1{
print(grid[0].capacity)
if(grid[index][targetedCol] == old && old != nil){ if(grid[index][targetedCol] == old && old != nil){
count += 1 count += 1
}else{ }else{

@ -8,5 +8,5 @@
import Foundation import Foundation
public protocol Rule : gridRule{ public protocol Rule : gridRule{
func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int)-> Bool func isRuleMet(grid: [[Int?]], targetedRow: Int, targetedCol: Int, lastPlayedId: Int)-> Bool
} }

@ -11,9 +11,10 @@ import forcesPack
final class BoardRulesTests: XCTestCase { final class BoardRulesTests: XCTestCase {
private var boardEmpty: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil]] private var boardEmpty: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil]]
private var boardRow: [[Int?]] = [[0,0,0,0],[nil,nil,nil,nil],[nil,nil,nil,nil],[nil,nil,nil,nil]] private var boardRow: [[Int?]] = [[nil,nil,nil,nil],[nil,nil,nil,nil],[0,0,0,0],[nil,nil,nil,nil]]
private var boardCol: [[Int?]] = [[0,nil,nil,nil],[0,nil,nil,nil],[0,nil,nil,nil],[0,nil,nil,nil]] private var boardCol: [[Int?]] = [[nil,0,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],[nil,0,nil,nil],]
private var boardDiag: [[Int?]] = [[0,nil,nil,nil],[nil,0,nil,nil],[nil,nil,0,nil],[nil,nil,nil,0]] private var boardDiag: [[Int?]] = [[0,nil,nil,nil],[nil,0,nil,nil],[nil,nil,0,nil],[nil,nil,nil,0]]
private var boardDiagInv: [[Int?]] = [[nil,nil,nil,0],[nil,nil,0,nil],[nil,0,nil,nil],[0,nil,nil,nil]]
func testRules(){ func testRules(){
var ruleCol : Rule = AreCols4x() var ruleCol : Rule = AreCols4x()
@ -23,39 +24,42 @@ final class BoardRulesTests: XCTestCase {
var ruleColL: Rule = AreCols4xL() var ruleColL: Rule = AreCols4xL()
var ruleDiagL: Rule = AreDiags4xL() var ruleDiagL: Rule = AreDiags4xL()
XCTAssertFalse(ruleCol.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleCol.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleRow.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleRow.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleDiag.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleDiag.isRuleMet(grid: boardEmpty, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertTrue(ruleCol.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0)) XCTAssertTrue(ruleCol.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleRow.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleRow.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleDiag.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleDiag.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
print(ruleCol.results) print(ruleCol.results)
XCTAssertFalse(ruleCol.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleCol.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertTrue(ruleRow.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0)) XCTAssertTrue(ruleRow.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleDiag.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleDiag.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
print(ruleRow.results) print(ruleRow.results)
XCTAssertFalse(ruleCol.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleCol.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleRow.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleRow.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertTrue(ruleDiag.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0)) XCTAssertTrue(ruleDiag.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertTrue(ruleColL.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0)) XCTAssertTrue(ruleColL.isRuleMet(grid: boardRow, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleRowL.isRuleMet(grid: boardRow, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardRow, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleColL.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleColL.isRuleMet(grid: boardCol, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
XCTAssertTrue(ruleRowL.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0)) XCTAssertTrue(ruleRowL.isRuleMet(grid: boardCol, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleDiagL.isRuleMet(grid: boardCol, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiag, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0)) XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiag, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0)) XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiag, targetedRow: 0, targetedCol: 0, lastPlayedId: 0))
XCTAssertFalse(ruleColL.isRuleMet(grid: boardDiagInv, targetedRow: 2, targetedCol: 2, lastPlayedId: 0))
XCTAssertFalse(ruleRowL.isRuleMet(grid: boardDiagInv, targetedRow: 1, targetedCol: 1, lastPlayedId: 0))
XCTAssertTrue(ruleDiagL.isRuleMet(grid: boardDiagInv, targetedRow: 0, targetedCol: 3, lastPlayedId: 0))
print(ruleRowL.results) print(ruleRowL.results)
print(ruleColL.results) print(ruleColL.results)

Loading…
Cancel
Save