// File: /workspace/github_cpp_makefile_star2_O2/yupyub[P]PathFinding_Visual/main.cpp
// Function: main
int main(){
    Dijkstra D;
    A_Star A;
    DFS F;

    int a,t,m,h,g;
    system("clear");
    printf("Choose the Algorithm\n");
    printf("1. Dijkstra\n2. A Star\n3. DFS\n");
    printf("Write the number : ");
    scanf("%d",&a);
    system("clear");
    printf("Set the ShowSpeed(Microsecond = 1/10^6second)\n");
    printf("<Recommand 10000 ~ 50000 / minimum = 10000>   : ");
    scanf("%d",&t);
    system("clear");
    printf("< Map Size >\n1. 10 x 20\n2. 20 x 50\n3. 40 x 70\n");
    printf("You can add your own map (ex) name : map4.txt)\n"); 
    printf("Choose the map number : ");
    scanf("%d",&m);
    system("clear");
    switch(a){
        case 1:
            D.Dijkstra_Run(t,m);
            break;
        case 2:
            printf("< A Star Algorithm Huristic Function>\n");
            printf("1. Manhattan_Distance * g\n");
            printf("2. Real_Distance * g\n");
            printf("Choose the Huristic Function : ");
            scanf("%d",&h);
            printf("Choose the Weight : ");
            scanf("%d",&g);
            A.A_Star_Run(t,m,h,g);
            break;
        case 3:
            F.DFS_Run(t,m);  
            break;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xea690, %rsp          # imm = 0xEA690
andl $0x0, 0xea66c(%rsp)
leaq 0x2ced(%rip), %rbx      # 0x5004
movq %rbx, %rdi
callq 0x20d0
leaq 0x2d77(%rip), %rdi      # 0x509d
callq 0x21a0
leaq 0x2d80(%rip), %rdi      # 0x50b2
callq 0x21a0
leaq 0x2ccc(%rip), %rdi      # 0x500a
xorl %eax, %eax
callq 0x2030
leaq 0x2f2a(%rip), %r15      # 0x5276
leaq 0xc(%rsp), %r14
movq %r15, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x2120
movq %rbx, %rdi
callq 0x20d0
leaq 0x2d62(%rip), %rdi      # 0x50cf
callq 0x21a0
leaq 0x2ca5(%rip), %rdi      # 0x501e
xorl %eax, %eax
callq 0x2030
leaq 0x4(%rsp), %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x2120
movq %rbx, %rdi
callq 0x20d0
leaq 0x2d5f(%rip), %rdi      # 0x50fd
callq 0x21a0
leaq 0x2d81(%rip), %rdi      # 0x512b
callq 0x21a0
leaq 0x2c99(%rip), %rdi      # 0x504f
xorl %eax, %eax
callq 0x2030
movq %rsp, %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x2120
movq %rbx, %rdi
callq 0x20d0
movl (%r14), %eax
cmpl $0x3, %eax
je 0x2489
cmpl $0x2, %eax
je 0x2402
cmpl $0x1, %eax
jne 0x249a
movl 0x4(%rsp), %esi
movl (%rsp), %edx
leaq 0x10(%rsp), %rdi
callq 0x261c
jmp 0x249a
leaq 0x2d51(%rip), %rdi      # 0x515a
callq 0x21a0
leaq 0x2d6b(%rip), %rdi      # 0x5180
callq 0x21a0
leaq 0x2d79(%rip), %rdi      # 0x519a
callq 0x21a0
leaq 0x2c3b(%rip), %rdi      # 0x5068
xorl %eax, %eax
callq 0x2030
leaq 0x2e3b(%rip), %rbx      # 0x5276
leaq 0x10(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x2120
leaq 0x2c34(%rip), %rdi      # 0x5088
xorl %eax, %eax
callq 0x2030
leaq 0x8(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x2120
movl 0x4(%rsp), %esi
movl (%rsp), %edx
movl (%r14), %ecx
movl (%r15), %r8d
leaq 0x75354(%rsp), %rdi
callq 0x2ee0
jmp 0x249a
movl 0x4(%rsp), %esi
movl (%rsp), %edx
leaq 0x10(%rsp), %rdi
callq 0x3510
xorl %eax, %eax
addq $0xea690, %rsp          # imm = 0xEA690
popq %rbx
popq %r14
popq %r15
retq
nopl (%rax)