// File: /workspace/github_c_makefile_star2_O0/j4r0g[P]Projet_Labyrinthe/fonctions/labyrinthe.c
// Function: afficher_lab
void afficher_lab(t_lab lab[X][Y], t_fourmi fourmi[]){
	int char_unseen = '?';
	int indice;
	t_etat etat_tmp;
	t_discover decouvert_tmp;
	int i,j;

	printf("\n\n");
	for(i =-1; i<(X+1); i++){					//*Toute la partie qui suit gère l'affichage des bordures (avec les espacements	*//
		for(j =-1; j<(Y+1); j++){					//*particuliers pour que tout soit aligné)
			if(i == -1 && j != -1 ){							//*nombres de l'axe horizontal du haut
				if(j==0){										//*affichage du "Y" sur l'axe horizontal
					printf("\033[1;33;40m Y\033[00m");
				}
				else if(j == 58){
					printf("\033[1;33;40m Y\033[00m");
				}
				if((j%2)!=0){
					if(j == 9){
						printf("%i ", j);
					}
					else if(j < 10 ){
						printf("%i ", j);
					}
					else if(j == (Y-1) && i == -1){
					printf(" ");
					}
					else{
						printf("%i", j);
					}
				}
				else{
					printf("  ");
				}
			}
			else if(i == (X) && j!= -1 ){						//*nombres de l'axe horizontal du bas
				if((j%2)==0){
					if(j == 0){
						printf("\033[1;33;40m  Y  \033[00m");
					}
					else if( j == 60){
						printf(" ");
					}
					else if(j < 10 ){
						printf(" %i  ", j);
					}
					else if(j == (Y-1) && i == -1){
						printf(" ");
					}
					else{
						printf(" %i ", j);
					}
				}

				else if(j == 59){
					printf("\033[1;33;40mY \033[00m");
				}
			}
			else if(j == -1 && i != -1 && i != X){				//*nombres de l'axe vertical, a gauche
				if(i == 0){									//*affichage du "X" sur l'axe vertical
					printf("\033[1;33;40m X \033[00m");
				}
				else if(i == 29){									//*affichage du "X" sur l'axe vertical
					printf("\033[1;33;40m X \033[00m");
				}
				else if(i < 10 ){
					printf(" %i ", i);
				}
				else if(j == -1 && i == (X-1)){
				printf("   ");
				}
				else{
					printf("%i ", i);
				}
			}
			else if(j == Y && i != -1 && i != X){				//*nombres de l'axe vertical, a droite
				if(i == 0){
					printf("\033[1;33;40m X \033[00m");
				}
				else if(i ==29){
					printf("\033[1;33;40m X \033[00m");
				}
				else if(i < 10 ){
					printf(" %i ", i);
				}
				else if(j == -1 && i == (X-1) && i == (X)){
				printf("  ");
				}
				else{
					printf(" %i ", i);
				}
			}
			else if(j == -1 && i == -1){						//*coin supérieur gauche
				printf("  ");
			}
			else if(j == -1 && i == (X)){						//*pas de nombre en bas a gauche
				printf(" ");
			}
			else if(j == -1 && i == (X)){						//*pas de nombre en bas a gauche
				printf(" ");
			}
			else{									//*le else gère tout ce qui est a l'intérieur des bordures (insectes, nourriture)
				etat_tmp = lab[i][j].etat;
				decouvert_tmp = lab[i][j].decouvert;

				if(decouvert_tmp == 0){
				printf("\033[0;30;40m%c \033[00m", char_unseen);
				}
				else{
					if(etat_tmp == vide){
						printf("\033[0;33;43m%c \033[00m", etat_tmp);
					}
					else if(etat_tmp == mur){
						printf("\033[0;37;47m%c \033[00m", etat_tmp);
					}
					else if(etat_tmp == insecte){
						indice = lab[i][j].insecte;
						if(fourmi[indice].age <= 1 || fourmi[indice].nourriture <= 1){
							printf("\033[1;30;43m%c \033[00m", etat_tmp);
						}
						else if(fourmi[indice].age < 5 ){
							printf("\033[1;31;43m%c \033[00m", etat_tmp);
						}
						else if(fourmi[indice].nourriture < 5){
							printf("\033[1;32;43m%c \033[00m", etat_tmp);
						}
						else{
							printf("\033[1;36;43m%c \033[00m", etat_tmp);
						}
					}
					else if(etat_tmp == food){
						printf("\033[1;34;43m%c \033[00m", etat_tmp);
					}
					else{
						printf("%c ", etat_tmp);
					}
				}
			}


		}
		printf("\n");
	}
	printf("\n\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x3f, -0x14(%rbp)
leaq 0x772c(%rip), %rdi      # 0x928a
movb $0x0, %al
callq 0x1080
movl $0xffffffff, -0x24(%rbp) # imm = 0xFFFFFFFF
cmpl $0x1f, -0x24(%rbp)
jge 0x2073
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
cmpl $0x3d, -0x28(%rbp)
jge 0x2057
cmpl $-0x1, -0x24(%rbp)
jne 0x1c4f
cmpl $-0x1, -0x28(%rbp)
je 0x1c4f
cmpl $0x0, -0x28(%rbp)
jne 0x1bb1
leaq 0x752d(%rip), %rdi      # 0x90d5
movb $0x0, %al
callq 0x1080
jmp 0x1bc7
cmpl $0x3a, -0x28(%rbp)
jne 0x1bc5
leaq 0x7517(%rip), %rdi      # 0x90d5
movb $0x0, %al
callq 0x1080
jmp 0x1bc7
movl -0x28(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x1c3c
cmpl $0x9, -0x28(%rbp)
jne 0x1bf0
movl -0x28(%rbp), %esi
leaq 0x751c(%rip), %rdi      # 0x9103
movb $0x0, %al
callq 0x1080
jmp 0x1c3a
cmpl $0xa, -0x28(%rbp)
jge 0x1c09
movl -0x28(%rbp), %esi
leaq 0x7503(%rip), %rdi      # 0x9103
movb $0x0, %al
callq 0x1080
jmp 0x1c38
cmpl $0x3b, -0x28(%rbp)
jne 0x1c25
cmpl $-0x1, -0x24(%rbp)
jne 0x1c25
leaq 0x7512(%rip), %rdi      # 0x912e
movb $0x0, %al
callq 0x1080
jmp 0x1c36
movl -0x28(%rbp), %esi
leaq 0x797d(%rip), %rdi      # 0x95ac
movb $0x0, %al
callq 0x1080
jmp 0x1c38
jmp 0x1c3a
jmp 0x1c4a
leaq 0x74ea(%rip), %rdi      # 0x912d
movb $0x0, %al
callq 0x1080
jmp 0x2047
cmpl $0x1e, -0x24(%rbp)
jne 0x1d08
cmpl $-0x1, -0x28(%rbp)
je 0x1d08
movl -0x28(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x1ced
cmpl $0x0, -0x28(%rbp)
jne 0x1c89
leaq 0x7467(%rip), %rdi      # 0x90e7
movb $0x0, %al
callq 0x1080
jmp 0x1ceb
cmpl $0x3c, -0x28(%rbp)
jne 0x1c9f
leaq 0x7498(%rip), %rdi      # 0x912e
movb $0x0, %al
callq 0x1080
jmp 0x1ce9
cmpl $0xa, -0x28(%rbp)
jge 0x1cb8
movl -0x28(%rbp), %esi
leaq 0x744d(%rip), %rdi      # 0x90fc
movb $0x0, %al
callq 0x1080
jmp 0x1ce7
cmpl $0x3b, -0x28(%rbp)
jne 0x1cd4
cmpl $-0x1, -0x24(%rbp)
jne 0x1cd4
leaq 0x7463(%rip), %rdi      # 0x912e
movb $0x0, %al
callq 0x1080
jmp 0x1ce5
movl -0x28(%rbp), %esi
leaq 0x7424(%rip), %rdi      # 0x9102
movb $0x0, %al
callq 0x1080
jmp 0x1ce7
jmp 0x1ce9
jmp 0x1ceb
jmp 0x1d03
cmpl $0x3b, -0x28(%rbp)
jne 0x1d01
leaq 0x740d(%rip), %rdi      # 0x9107
movb $0x0, %al
callq 0x1080
jmp 0x1d03
jmp 0x2045
cmpl $-0x1, -0x28(%rbp)
jne 0x1d9f
cmpl $-0x1, -0x24(%rbp)
je 0x1d9f
cmpl $0x1e, -0x24(%rbp)
je 0x1d9f
cmpl $0x0, -0x24(%rbp)
jne 0x1d38
leaq 0x73ea(%rip), %rdi      # 0x9119
movb $0x0, %al
callq 0x1080
jmp 0x1d9a
cmpl $0x1d, -0x24(%rbp)
jne 0x1d4e
leaq 0x73d4(%rip), %rdi      # 0x9119
movb $0x0, %al
callq 0x1080
jmp 0x1d98
cmpl $0xa, -0x24(%rbp)
jge 0x1d67
movl -0x24(%rbp), %esi
leaq 0x73a4(%rip), %rdi      # 0x9102
movb $0x0, %al
callq 0x1080
jmp 0x1d96
cmpl $-0x1, -0x28(%rbp)
jne 0x1d83
cmpl $0x1d, -0x24(%rbp)
jne 0x1d83
leaq 0x73b2(%rip), %rdi      # 0x912c
movb $0x0, %al
callq 0x1080
jmp 0x1d94
movl -0x24(%rbp), %esi
leaq 0x7376(%rip), %rdi      # 0x9103
movb $0x0, %al
callq 0x1080
jmp 0x1d96
jmp 0x1d98
jmp 0x1d9a
jmp 0x2043
cmpl $0x3c, -0x28(%rbp)
jne 0x1e40
cmpl $-0x1, -0x24(%rbp)
je 0x1e40
cmpl $0x1e, -0x24(%rbp)
je 0x1e40
cmpl $0x0, -0x24(%rbp)
jne 0x1dd3
leaq 0x734f(%rip), %rdi      # 0x9119
movb $0x0, %al
callq 0x1080
jmp 0x1e3b
cmpl $0x1d, -0x24(%rbp)
jne 0x1de9
leaq 0x7339(%rip), %rdi      # 0x9119
movb $0x0, %al
callq 0x1080
jmp 0x1e39
cmpl $0xa, -0x24(%rbp)
jge 0x1e02
movl -0x24(%rbp), %esi
leaq 0x7309(%rip), %rdi      # 0x9102
movb $0x0, %al
callq 0x1080
jmp 0x1e37
cmpl $-0x1, -0x28(%rbp)
jne 0x1e24
cmpl $0x1d, -0x24(%rbp)
jne 0x1e24
cmpl $0x1e, -0x24(%rbp)
jne 0x1e24
leaq 0x7312(%rip), %rdi      # 0x912d
movb $0x0, %al
callq 0x1080
jmp 0x1e35
movl -0x24(%rbp), %esi
leaq 0x72d4(%rip), %rdi      # 0x9102
movb $0x0, %al
callq 0x1080
jmp 0x1e37
jmp 0x1e39
jmp 0x1e3b
jmp 0x2041
cmpl $-0x1, -0x28(%rbp)
jne 0x1e5f
cmpl $-0x1, -0x24(%rbp)
jne 0x1e5f
leaq 0x72da(%rip), %rdi      # 0x912d
movb $0x0, %al
callq 0x1080
jmp 0x203f
cmpl $-0x1, -0x28(%rbp)
jne 0x1e7e
cmpl $0x1e, -0x24(%rbp)
jne 0x1e7e
leaq 0x72bc(%rip), %rdi      # 0x912e
movb $0x0, %al
callq 0x1080
jmp 0x203d
cmpl $-0x1, -0x28(%rbp)
jne 0x1e9d
cmpl $0x1e, -0x24(%rbp)
jne 0x1e9d
leaq 0x729d(%rip), %rdi      # 0x912e
movb $0x0, %al
callq 0x1080
jmp 0x203b
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x2d0, %rcx, %rcx      # imm = 0x2D0
addq %rcx, %rax
movslq -0x28(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x2d0, %rcx, %rcx      # imm = 0x2D0
addq %rcx, %rax
movslq -0x28(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x20(%rbp)
jne 0x1efe
movl -0x14(%rbp), %esi
leaq 0x723e(%rip), %rdi      # 0x9130
movb $0x0, %al
callq 0x1080
jmp 0x2039
cmpl $0x20, -0x1c(%rbp)
jne 0x1f1a
movl -0x1c(%rbp), %esi
leaq 0x7235(%rip), %rdi      # 0x9143
movb $0x0, %al
callq 0x1080
jmp 0x2037
cmpl $0x23, -0x1c(%rbp)
jne 0x1f36
movl -0x1c(%rbp), %esi
leaq 0x722c(%rip), %rdi      # 0x9156
movb $0x0, %al
callq 0x1080
jmp 0x2035
cmpl $0x25, -0x1c(%rbp)
jne 0x2007
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x2d0, %rcx, %rcx      # imm = 0x2D0
addq %rcx, %rax
movslq -0x28(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
cmpl $0x1, 0x8(%rax)
jle 0x1f8d
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
cmpl $0x1, 0x4(%rax)
jg 0x1fa0
movl -0x1c(%rbp), %esi
leaq 0x71d2(%rip), %rdi      # 0x9169
movb $0x0, %al
callq 0x1080
jmp 0x2005
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
cmpl $0x5, 0x8(%rax)
jge 0x1fc8
movl -0x1c(%rbp), %esi
leaq 0x71bd(%rip), %rdi      # 0x917c
movb $0x0, %al
callq 0x1080
jmp 0x2003
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
cmpl $0x5, 0x4(%rax)
jge 0x1ff0
movl -0x1c(%rbp), %esi
leaq 0x71a8(%rip), %rdi      # 0x918f
movb $0x0, %al
callq 0x1080
jmp 0x2001
movl -0x1c(%rbp), %esi
leaq 0x71a8(%rip), %rdi      # 0x91a2
movb $0x0, %al
callq 0x1080
jmp 0x2003
jmp 0x2005
jmp 0x2033
cmpl $0x2a, -0x1c(%rbp)
jne 0x2020
movl -0x1c(%rbp), %esi
leaq 0x719e(%rip), %rdi      # 0x91b5
movb $0x0, %al
callq 0x1080
jmp 0x2031
movl -0x1c(%rbp), %esi
leaq 0x719e(%rip), %rdi      # 0x91c8
movb $0x0, %al
callq 0x1080
jmp 0x2033
jmp 0x2035
jmp 0x2037
jmp 0x2039
jmp 0x203b
jmp 0x203d
jmp 0x203f
jmp 0x2041
jmp 0x2043
jmp 0x2045
jmp 0x2047
jmp 0x2049
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x1b7d
leaq 0x722d(%rip), %rdi      # 0x928b
movb $0x0, %al
callq 0x1080
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1b6c
leaq 0x7210(%rip), %rdi      # 0x928a
movb $0x0, %al
callq 0x1080
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)