All pastes #270003 Raw Edit

Nox

public text v1 · immutable
·published 2006-12-06 23:56 UTC
rendered paste body
int(,) Sudoku(8,8)

Faire
	Integer I,J
	Pour I = 0 , est < LimiteSuppérieure(0) , i incrémente UN
		Pour J = 0 , est < LimiteSuppérieure(1) , j incrémente UN
			Si valeur(Sudoku(i,j)) = rien (nothing ou null...) alors
			Debut Si
				TrouverNombre(i,j)
			Fin Si 
		Prochain
	Prochain	
Tant que CompterBlanc() > 0

Méthode TrouverNombre(Int DimensionZero,Int DimensionUN)
	Faire
		SI
			Verifierligne(DimensionUN,nbr) == FAUX &&
			VerifierColonne(DimensionZero,nbr) == FAUX &&
			VerifierBoite(DimensionZero,DimensionUN,nbr) == FAUX alors
		Debut Si
			EcrireNbr(DimensionZero,DimensionUN,nbr)
			Sortir .. (Exit,ou I=8)
		Fin Si
		I = I+1
	Tant que I <> 8
Fin méthode

Fonction Verifierligne(Int DimensionUN,int nbr)
	Integer I
	Pour I = 0 , est < LimiteSuppérieure(0) , i incrémente UN
		si valeur(sudoku(I,DimensionUN)) = nbr alors
		Debut Si
			Retourne VRAI
		Fin Si
	Prochain
	Retourne FAUX	
Fin Fonction

Fonction VerifierColonne(Int DimensionZero,int nbr)
	Integer I
	Pour I = 0 , est < LimiteSuppérieure(1) , i incrémente UN
		si valeur(sudoku(DimensionUN,I)) = nbr alors
		Debut Si
			Retourne VRAI
		Fin Si
	Prochain
	Retourne FAUX	
Fin Fonction

Fonction VerifierBoite(int DimensionZero,int DimensionUN,int nbr)

Fin Fonction

Méthode EcrireNbr(Int DimensionZero,Int DimensionUN,int nbr)
	valeur(Sudoku(DimensionZero,DimensionUN)) = nbr
Fin Méthode

Fonction CompterBlanc()
	Integer I,J,NBR
	Pour I = 0 , est < LimiteSuppérieure(0) , i incrémente UN
		Pour J = 0 , est < LimiteSuppérieure(1) , j incrémente UN
			Si valeur(Sudoku(i,j)) = rien (nothing ou null...) alors
			Debut Si
				NBR = NBR + 1
			Fin Si 
		Prochain
	Prochain
Fin Fonction