Algorithme noircir(x, y) si tab[x,y] = blanc alors tab[x,y] <- noir noircir(x + 1, y) noircir(x, y - 1) noircir(x - 1, y) noircir(x, y + 1) ++++++++++++++++++++++++++++++++++++++++++++++++++ 7........ 6...*.... 5..*.*... 4.*...*.. 3.*...*.. 2..*...*. 1...***.. 0........ 01234567 ((3, 3, 'fin'),) 7........ 6...*.... 5..*.*... 4.*...*.. 3.*.0.*.. 2..*...*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4)) 7........ 6...*.... 5..*.*... 4.*...*.. 3.*.01*.. 2..*...*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (5, 3, 4)) return from (5, 3) contenu = "*" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5)) 7........ 6...*.... 5..*.*... 4.*...*.. 3.*.01*.. 2..*.2.*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (5, 2, 4)) 7........ 6...*.... 5..*.*... 4.*...*.. 3.*.01*.. 2..*.23*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (5, 2, 4), (6, 2, 4)) return from (6, 2) contenu = "*" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (5, 2, 4), (5, 1, 5)) return from (5, 1) contenu = "*" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (5, 2, 4), (4, 2, 6)) return from (4, 2) contenu = "2" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (5, 2, 4), (5, 3, 7)) return from (5, 3) contenu = "*" return from (5, 2) contenu = "3" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (4, 1, 5)) return from (4, 1) contenu = "*" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (3, 2, 6)) 7........ 6...*.... 5..*.*... 4.*...*.. 3.*.01*.. 2..*423*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (3, 2, 6), (4, 2, 4)) return from (4, 2) contenu = "2" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (3, 2, 6), (3, 1, 5)) return from (3, 1) contenu = "*" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (3, 2, 6), (2, 2, 6)) return from (2, 2) contenu = "*" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (3, 2, 6), (3, 3, 7)) return from (3, 3) contenu = "0" return from (3, 2) contenu = "4" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 2, 5), (4, 3, 7)) return from (4, 3) contenu = "1" return from (4, 2) contenu = "2" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (3, 3, 6)) return from (3, 3) contenu = "0" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7)) 7........ 6...*.... 5..*.*... 4.*..5*.. 3.*.01*.. 2..*423*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (5, 4, 4)) return from (5, 4) contenu = "*" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (4, 3, 5)) return from (4, 3) contenu = "1" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6)) 7........ 6...*.... 5..*.*... 4.*.65*.. 3.*.01*.. 2..*423*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (4, 4, 4)) return from (4, 4) contenu = "5" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (3, 3, 5)) return from (3, 3) contenu = "0" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6)) 7........ 6...*.... 5..*.*... 4.*765*.. 3.*.01*.. 2..*423*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (3, 4, 4)) return from (3, 4) contenu = "6" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (2, 3, 5)) 7........ 6...*.... 5..*.*... 4.*765*.. 3.*801*.. 2..*423*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (2, 3, 5), (3, 3, 4)) return from (3, 3) contenu = "0" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (2, 3, 5), (2, 2, 5)) return from (2, 2) contenu = "*" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (2, 3, 5), (1, 3, 6)) return from (1, 3) contenu = "*" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (2, 3, 5), (2, 4, 7)) return from (2, 4) contenu = "7" return from (2, 3) contenu = "8" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (1, 4, 6)) return from (1, 4) contenu = "*" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (2, 4, 6), (2, 5, 7)) return from (2, 5) contenu = "*" return from (2, 4) contenu = "7" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (3, 5, 7)) 7........ 6...*.... 5..*9*... 4.*765*.. 3.*801*.. 2..*423*. 1...***.. 0........ 01234567 Ligne 4, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (3, 5, 7), (4, 5, 4)) return from (4, 5) contenu = "*" Ligne 5, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (3, 5, 7), (3, 4, 5)) return from (3, 4) contenu = "6" Ligne 6, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (3, 5, 7), (2, 5, 6)) return from (2, 5) contenu = "*" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (3, 4, 6), (3, 5, 7), (3, 6, 7)) return from (3, 6) contenu = "*" return from (3, 5) contenu = "9" return from (3, 4) contenu = "6" Ligne 7, call : ((3, 3, 'fin'), (4, 3, 4), (4, 4, 7), (4, 5, 7)) return from (4, 5) contenu = "*" return from (4, 4) contenu = "5" return from (4, 3) contenu = "1" Ligne 5, call : ((3, 3, 'fin'), (3, 2, 5)) return from (3, 2) contenu = "4" Ligne 6, call : ((3, 3, 'fin'), (2, 3, 6)) return from (2, 3) contenu = "8" Ligne 7, call : ((3, 3, 'fin'), (3, 4, 7)) return from (3, 4) contenu = "6" return from (3, 3) contenu = "0" None