working code and tostring

master
Kanken 2 years ago
parent 4713d6c74a
commit e3c9c30985

@ -8,15 +8,25 @@
import Foundation import Foundation
public struct Board { public struct Board {
private let nbRows = 4 private var nbRows = 4
private let nbColumn = 4 private var nbColumn = 4
private var grid: [[Int?]] private var grid: [[Int?]]
public init(){ public init(){
grid = Array(repeating: Array( repeating: nil, count: nbRows), count: nbColumn) grid = Array(repeating: Array( repeating: nil, count: nbRows), count: nbColumn)
} }
public init(input: [[Int?]]){ public init?(nbRows: Int, nbCol: Int){
guard (nbRows < 1 || nbCol < 1) else {
return nil
}
self.nbColumn = nbCol
self.nbRows = nbRows
grid = Array(repeating: Array( repeating: nil, count: nbRows), count: nbColumn)
}
public init?(input: [[Int?]]){
guard input[0][0] != nil else {return nil} //inutile
grid = input grid = input
} }
@ -33,8 +43,8 @@ public struct Board {
public mutating func insertPeice(id: Int, row: Int) -> Bool{ public mutating func insertPeice(id: Int, row: Int) -> Bool{
if(isFull()){ if(isFull()){
//return false return false
}; }
var colToInsert: Int = nbColumn-1 var colToInsert: Int = nbColumn-1
@ -51,7 +61,7 @@ public struct Board {
} }
print("jeton ok: ",colToInsert) print("jeton ok: ",colToInsert)
return insertPeice(id: id, row: row, col: colToInsert) && isFull(); return insertPeice(id: id, row: row, col: colToInsert) || isFull();
} }
public func isFull()-> Bool{ public func isFull()-> Bool{
@ -72,4 +82,17 @@ public struct Board {
return grid[row][col] return grid[row][col]
} }
} }
public func toString() -> String{
var str: String = ""
str += String(repeating: "_", count: (nbColumn*2)+1) + "\n"
for collNum in 0...nbColumn-1{ //parcours de la grille du bas vers le haut
for rowNum in 0...nbRows-1{
str += String(""+String(grid[rowNum][collNum]!))
}
str += String("\n")
}
str += String(repeating: "¯", count: (nbColumn*2)+1) + "\n"
return str
}
} }

@ -9,10 +9,11 @@ final class _forcesPackTests: XCTestCase {
for col in 0...3{ for col in 0...3{
for n in 0...3{ for n in 0...3{
print("----------------------------\niteration", col*4+n) print("----------------------------\niteration", col*4+n)
XCTAssertTrue(b.insertPeice(id: 611, row: col)) XCTAssertTrue(b.insertPeice(id: 9, row: col))
} }
} }
XCTAssertTrue(b.isFull()) XCTAssertTrue(b.isFull())
print(b.toString())
} }
} }

Loading…
Cancel
Save