diff --git a/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/UserInterfaceState.xcuserstate b/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/UserInterfaceState.xcuserstate index 775269a..0be0152 100644 Binary files a/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/UserInterfaceState.xcuserstate and b/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 941a431..cdd1616 100644 --- a/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/4forces.xcworkspace/xcuserdata/yorickgeoffre.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -296,8 +296,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "46" - endingLineNumber = "46" + startingLineNumber = "47" + endingLineNumber = "47" landmarkName = "init(_:printer:reader:)" landmarkType = "7"> @@ -312,8 +312,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "45" - endingLineNumber = "45" + startingLineNumber = "46" + endingLineNumber = "46" landmarkName = "init(_:printer:reader:)" landmarkType = "7"> @@ -328,8 +328,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "31" - endingLineNumber = "31" + startingLineNumber = "32" + endingLineNumber = "32" landmarkName = "init(printer:reader:)" landmarkType = "7"> @@ -344,8 +344,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "29" - endingLineNumber = "29" + startingLineNumber = "30" + endingLineNumber = "30" landmarkName = "init(printer:reader:)" landmarkType = "7"> @@ -595,8 +595,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "64" - endingLineNumber = "64" + startingLineNumber = "65" + endingLineNumber = "65" landmarkName = "doGameLoop()" landmarkType = "7"> @@ -723,8 +723,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "69" - endingLineNumber = "69" + startingLineNumber = "70" + endingLineNumber = "70" landmarkName = "doGameLoop()" landmarkType = "7"> @@ -851,8 +851,8 @@ filePath = "forcesPack/Sources/forcesPack/Game.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "57" - endingLineNumber = "57" + startingLineNumber = "58" + endingLineNumber = "58" landmarkName = "doGameLoop()" landmarkType = "7"> @@ -936,5 +936,21 @@ landmarkType = "7"> + + + + diff --git a/forcesPack/Sources/forcesPack/Board.swift b/forcesPack/Sources/forcesPack/Board.swift index 189c9d1..a4804e9 100644 --- a/forcesPack/Sources/forcesPack/Board.swift +++ b/forcesPack/Sources/forcesPack/Board.swift @@ -119,16 +119,16 @@ public struct Board : CustomStringConvertible{ public func coalesceWonBoard(winningAlignementGrid: [[Int?]]) -> String{ var str: String = "" 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 rowNum in 0...nbColumn-1{ str += "║" - str += String(winningAlignementGrid[rowNum][collNum] != nil ? "🔴" : " ") + str += String(winningAlignementGrid[rowNum][collNum] != nil ? "@" : " ") } str += String("║\n") } str += "╚" - str += String(repeating: "══╩", count: (nbColumn)-1) + "══╝\n" + str += String(repeating: "═╩", count: (nbColumn)-1) + "═╝\n" return str } } diff --git a/forcesPack/Sources/forcesPack/Game.swift b/forcesPack/Sources/forcesPack/Game.swift index c3cc483..985dfeb 100644 --- a/forcesPack/Sources/forcesPack/Game.swift +++ b/forcesPack/Sources/forcesPack/Game.swift @@ -21,7 +21,8 @@ public class Game{ board = Board() players = [] winRules = [AreCols4xL(), AreRows4xL(), AreDiags4xL()] - CreatePlayers() + while(!CreatePlayers()){} + while(true){ while(doGameLoop()){} printerFunc(winner == nil ? "stalemate!" : "player: "+String(winner?.id ?? -1)+" has won the game") @@ -74,7 +75,7 @@ public class Game{ return true } - private func CreatePlayers(){ + private func CreatePlayers() -> Bool{ var humans:Int = 0 var AI:Int = 0 printerFunc("Création des joueurs, combien d'humains au total?\n>") @@ -103,5 +104,6 @@ public class Game{ printerFunc(String(players.count) + " joueurs créés") printerFunc(players.description) + return humans+AI > 0 } } diff --git a/forcesPack/Sources/forcesPack/Players/IA_incer.swift b/forcesPack/Sources/forcesPack/Players/IA_incer.swift new file mode 100644 index 0000000..caebd1e --- /dev/null +++ b/forcesPack/Sources/forcesPack/Players/IA_incer.swift @@ -0,0 +1,19 @@ +// +// File.swift +// +// +// Created by yorick geoffre on 09/02/2023. +// + +import Foundation + +public class IAIncer: IA { + var ctr: Int = 0 + + public override var description: String{return "IA incer" + String(id)} + + public override func play(_ max: Int)-> Int{ + if (ctr < max){ ctr += 1 }else{ ctr = 0 } + return ctr + } +}