private void fillWithCellAdress() {
		// PREMIER CAS: le nombre de variables est égal à 1
		if (nbVar == 1) {
			kmap[0][0].cellAdress = 0;
			kmap[0][1].cellAdress = 1;
		} else {
			// DEUXIEME CAS: le nombre de variables est égal à 2
			if (nbVar == 2) {
				kmap[0][0].cellAdress = 0;
				kmap[0][1].cellAdress = 1;
				kmap[1][0].cellAdress = 2;
				kmap[1][1].cellAdress = 3;
			}
			// TROISIEME CAS: le nombre de variables est 3 OU 4
			else {
				if (nbVar == 3 || nbVar == 4) {
					for (int i = 0; i < Row; i++) {
						for (int j = 0; j < Column; j++) {
							if (Row == 4)
								kmap[i][j].cellAdress = GrayEncode3_4(j % 4
										+ ((i % 4) * 4));
							else
								kmap[i][j].cellAdress = GrayEncode3_4(j % 4
										+ ((i % 4) * Column));
						}
					}
				}

				// QUATRIEME CAS: le nombre de variables est 5 ou 6
				else {
					if (nbVar == 5 || nbVar == 6) {
						for (int i = 0; i < Row; i++) {
							for (int j = 0; j < Column; j++) {
								if (i <= 3 && j <= 3) {
									kmap[i][j].cellAdress = GrayEncode5_6(j % 4
											+ ((i % 4) * 4));
								} else {
									if (Row == 4) {
										if (j < 6)
											kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 6);
										else
											kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 2);
									} else {
										if (i > 3 && j <= 3) {
											if (i < 6)
												kmap[i][j].cellAdress = kmap[i - 4][j].cellAdress + 48;
											else
												kmap[i][j].cellAdress = kmap[i - 4][j].cellAdress + 16;
										} else {
											if (j < 6)
												kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 6);
											else
												kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 2);
										}
									}
								}
							}
						}
					}

					// CINQIEME CAS: le nombre de variables est 7 ou 8
					else {
						if (nbVar == 7 || nbVar == 8) {

							for (int i = 0; i < Row; i++) {
								for (int j = 0; j < Column; j++) {
									if (i <= 3 && j <= 3) {

										kmap[i][j].cellAdress = GrayEncode7_8(j
												% 4 + ((i % 4) * 4));
									} else {
										if (Row == 8) {
											if (i > 3 && j <= 3) {
												if (i < 6)
													kmap[i][j].cellAdress = kmap[i - 4][j].cellAdress + 96;
												else
													kmap[i][j].cellAdress = kmap[i - 4][j].cellAdress + 32;
											}
										} else {
											if (i > 3 && j <= 3) {
												if (i < 6 || (i > 7 && i < 10))
													kmap[i][j].cellAdress = (kmap[i - 4][j].cellAdress + 96);
												else {
													if (i == 6 || i == 7)
														kmap[i][j].cellAdress = (kmap[i - 4][j].cellAdress + 32);
													else {
														if (i == 10 || i == 11)
															kmap[i][j].cellAdress = (kmap[i - 4][j].cellAdress + 160);
														else {
															if (i == 12
																	|| i == 13)
																kmap[i][j].cellAdress = (kmap[i - 4][j].cellAdress - 32);
															else
																kmap[i][j].cellAdress = kmap[i - 4][j].cellAdress - 96;
														}
													}
												}
											}
										}
										if (j > 3) {
											if (j == 4 || j == 5 || j == 8
													|| j == 9)
												kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 6);
											else {
												if (j == 6 || j == 7)
													kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 2);
												else {
													if (j == 10 || j == 11)
														kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress + 10);
													else {
														if (j == 12 || j == 13)
															kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress - 2);
														else
															kmap[i][j].cellAdress = (kmap[i][j - 4].cellAdress - 6);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}