mirror of
				https://gitlab.com/klmp200/LO27.git
				synced 2025-10-31 10:53:04 +00:00 
			
		
		
		
	Génération aléatoire de matrices et import depuis une matrice de bool
This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <matrix.h> | ||||
| #include <time.h> | ||||
|  | ||||
| Matrix applyRules (Matrix matrix,int Rules, int N){ | ||||
| 	int power = 2; | ||||
| @@ -382,6 +383,70 @@ Matrix orRowSequenceOnMatrix(Matrix m){ | ||||
| 	return rowSequenceOnMatrix(m, OR); | ||||
| } | ||||
|  | ||||
| Matrix newMatrix(BooleanMatrix bmatrix){ | ||||
| 	Matrix m = CreateMatrix(); | ||||
| 	int i; | ||||
| 	int j; | ||||
|  | ||||
| 	m.colCount = bmatrix.cols; | ||||
| 	m.rowCount = bmatrix.rows; | ||||
|  | ||||
| 	for (i=0; i < m.rowCount ; i++){ | ||||
| 		for (j=0; j < m.colCount; j++){ | ||||
| 			if (bmatrix.data[i][j]){ | ||||
| 				SetCellValue(m, j, i, true); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return m; | ||||
| } | ||||
|  | ||||
| BooleanMatrix CreateBooleanMatrix(int cols, int rows){ | ||||
| 	BooleanMatrix matrix; | ||||
| 	int i; | ||||
|  | ||||
| 	matrix.rows = rows; | ||||
| 	matrix.cols = cols; | ||||
|  | ||||
| 	matrix.data = (bool**)malloc(matrix.rows * sizeof(bool*)); | ||||
| 	if (matrix.data != NULL){ | ||||
| 		for (i=0; i < matrix.rows; i++){ | ||||
| 			matrix.data[i] = (bool*)malloc(matrix.cols * sizeof(bool)); | ||||
| 		} | ||||
| 	} | ||||
| 	return matrix; | ||||
| } | ||||
|  | ||||
| BooleanMatrix RandomizeBooleanMatrix(BooleanMatrix matrix){ | ||||
| 	int i; | ||||
| 	int j; | ||||
| 	int r; | ||||
|  | ||||
| 	srand(time(NULL)); | ||||
|  | ||||
| 	for (i=0; i < matrix.rows; i++){ | ||||
| 		for (j=0; j < matrix.cols; j++){ | ||||
| 			r = rand() % 2; | ||||
| 			if (r == 1){ | ||||
| 				matrix.data[i][j] = true; | ||||
| 			} else { | ||||
| 				matrix.data[i][j] = false; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return matrix; | ||||
| } | ||||
|  | ||||
| void FreeBooleanMatrix(BooleanMatrix matrix){ | ||||
| 	int i; | ||||
| 	for (i=0; i < matrix.rows; i++){ | ||||
| 		free(matrix.data[i]); | ||||
| 	} | ||||
| 	free(matrix.data); | ||||
| } | ||||
|  | ||||
| /* todos : | ||||
| *finir le freeMatrix | ||||
| *chasser les bugs | ||||
|   | ||||
| @@ -25,6 +25,50 @@ typedef struct Matrix { | ||||
| }Matrix; | ||||
|  | ||||
|  | ||||
| /** | ||||
| * Abstract type for a matrix of booleans | ||||
| * @param rows number of rows of the matrix | ||||
| * @param cols numbers of columns of the matrix | ||||
| * @param data the matrix | ||||
| * @see CreateBooleanMatrix to create one | ||||
| */ | ||||
| typedef struct { | ||||
| 	int rows; | ||||
| 	int cols; | ||||
|  | ||||
| 	bool **data; | ||||
|  | ||||
| } BooleanMatrix; | ||||
|  | ||||
| /** | ||||
| * Function creating an empty boolean matrix | ||||
| * @param cols number of cols | ||||
| * @param rows number of rows | ||||
| * @return booleanmatrix a new matrix | ||||
| */ | ||||
| BooleanMatrix CreateBooleanMatrix(int cols, int rows); | ||||
|  | ||||
| /** | ||||
| * Randomize a BooleanMatrix | ||||
| * @param matrix a BooleanMatrix | ||||
| * @return booleanmatrix the processed matrix | ||||
| */ | ||||
| BooleanMatrix RandomizeBooleanMatrix(BooleanMatrix matrix); | ||||
|  | ||||
| /** | ||||
| * Free a BooleanMatrix | ||||
| * @param matrix a BooleanMatrix | ||||
| * @return | ||||
| */ | ||||
| void FreeBooleanMatrix(BooleanMatrix matrix); | ||||
|  | ||||
| /** | ||||
| * Create a Matrix from its array-based representation | ||||
| * @param bmatrix BooleanMatrix | ||||
| * @return m Matrix | ||||
| */ | ||||
| Matrix newMatrix(BooleanMatrix bmatrix); | ||||
|  | ||||
| /*---applyRules--- | ||||
| *A function tha allows you to apply some rules n times on the matrix and returns it | ||||
| * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user