// File: tyhsu[P]Ewn/ewnAi.cpp
// Function: EwnAI::EwnAI()
EwnAI::EwnAI()
{
    int cmd;
    cout << "Please choose an AI:" << endl;
    cout << "0)Minimax evaluating with feature" << endl;
    cout << "1)Minimax evaluating with simulation 1" << endl;
    cout << "2)Minimax evaluating with simulation 2" << endl;
    cout << "3)Minimax evaluating with simulation 3" << endl;
    cout << "4)Minimax evaluating with simulation 4" << endl;
    cout << "5)MCTS" << endl;
    cout << "6)Random" << endl;
    cout << "Choose: ";
    cin >> cmd;
    if (cmd >= 0 && cmd <=6) this->ai_mode = cmd;
    else this->ai_mode = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x28(%rbp)
addq $0x8, %rdi
movq %rdi, -0x30(%rbp)
callq 0x7cf0
movq -0x28(%rbp), %rdi
addq $0x88, %rdi
movq %rdi, -0x20(%rbp)
callq 0x5790
jmp 0x521a
movq -0x28(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
movq %rdi, -0x38(%rbp)
callq 0x57d0
jmp 0x5230
movq -0x28(%rbp), %rdi
addq $0x188, %rdi            # imm = 0x188
movq %rdi, -0x40(%rbp)
callq 0x5810
jmp 0x5246
movq -0x28(%rbp), %rdi
addq $0x208, %rdi            # imm = 0x208
movq %rdi, -0x48(%rbp)
callq 0x5850
jmp 0x525c
movq -0x28(%rbp), %rdi
addq $0x288, %rdi            # imm = 0x288
movq %rdi, -0x50(%rbp)
callq 0x6a60
jmp 0x5272
movq -0x28(%rbp), %rdi
addq $0x298, %rdi            # imm = 0x298
movq %rdi, -0x58(%rbp)
callq 0x6800
jmp 0x5288
movq 0xcd39(%rip), %rdi      # 0x11fc8
leaq 0x841a(%rip), %rsi      # 0xd6b0
callq 0x2150
movq %rax, -0x60(%rbp)
jmp 0x52a1
movq -0x60(%rbp), %rdi
movq 0xcd0c(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x52b3
movq 0xcd0e(%rip), %rdi      # 0x11fc8
leaq 0x807a(%rip), %rsi      # 0xd33b
callq 0x2150
movq %rax, -0x68(%rbp)
jmp 0x52cc
movq -0x68(%rbp), %rdi
movq 0xcce1(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x52de
movq 0xcce3(%rip), %rdi      # 0x11fc8
leaq 0x8071(%rip), %rsi      # 0xd35d
callq 0x2150
movq %rax, -0x70(%rbp)
jmp 0x52f7
movq -0x70(%rbp), %rdi
movq 0xccb6(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x5309
movq 0xccb8(%rip), %rdi      # 0x11fc8
leaq 0x806d(%rip), %rsi      # 0xd384
callq 0x2150
movq %rax, -0x78(%rbp)
jmp 0x5322
movq -0x78(%rbp), %rdi
movq 0xcc8b(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x5334
movq 0xcc8d(%rip), %rdi      # 0x11fc8
leaq 0x8069(%rip), %rsi      # 0xd3ab
callq 0x2150
movq %rax, -0x80(%rbp)
jmp 0x534d
movq -0x80(%rbp), %rdi
movq 0xcc60(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x535f
movq 0xcc62(%rip), %rdi      # 0x11fc8
leaq 0x8065(%rip), %rsi      # 0xd3d2
callq 0x2150
movq %rax, -0x88(%rbp)
jmp 0x537b
movq -0x88(%rbp), %rdi
movq 0xcc2f(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x5390
movq 0xcc31(%rip), %rdi      # 0x11fc8
leaq 0x805b(%rip), %rsi      # 0xd3f9
callq 0x2150
movq %rax, -0x90(%rbp)
jmp 0x53ac
movq -0x90(%rbp), %rdi
movq 0xcbfe(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x53c1
movq 0xcc00(%rip), %rdi      # 0x11fc8
leaq 0x8031(%rip), %rsi      # 0xd400
callq 0x2150
movq %rax, -0x98(%rbp)
jmp 0x53dd
movq -0x98(%rbp), %rdi
movq 0xcbcd(%rip), %rsi      # 0x11fb8
callq 0x2190
jmp 0x53f2
movq 0xcbcf(%rip), %rdi      # 0x11fc8
leaq 0x7c8d(%rip), %rsi      # 0xd08d
callq 0x2150
jmp 0x5407
movq 0xcbca(%rip), %rdi      # 0x11fd8
leaq -0x18(%rbp), %rsi
callq 0x20a0
jmp 0x5419
cmpl $0x0, -0x18(%rbp)
jl 0x54a5
cmpl $0x6, -0x18(%rbp)
jg 0x54a5
movq -0x28(%rbp), %rax
movl -0x18(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x54af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x54b8
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
callq 0x4d80
jmp 0x54b8
movq -0x28(%rbp), %rax
movl $0x0, (%rax)
addq $0xa0, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x6ad0
movq -0x48(%rbp), %rdi
callq 0x4d90
movq -0x40(%rbp), %rdi
callq 0x4db0
movq -0x38(%rbp), %rdi
callq 0x4dd0
movq -0x20(%rbp), %rdi
callq 0x4df0
movq -0x30(%rbp), %rdi
callq 0x4e10
movq -0x10(%rbp), %rdi
callq 0x2210
nopw (%rax,%rax)