// File: hobbitsyfeet[P]Turn/main.cc
// Function: main
int main(){

  //took out because worlds are now player-dependent so no need to go here
  // Chart worlds;
  Turn playerTurn;
  string option;
  int i;//initialize i for importance to keep value from for loop
  int temp;

  //start
  welcome("banners/banner.txt");
  cout<<"How many players?";
  cin>>temp;

  const int numPlayers = temp;

  //clear screen<< turn
  cout << "\x1B[2J\x1B[H";
  welcome("banners/banner.txt");

  //create array of number of players
  string *playerList = new string[numPlayers];

  //place players into array
  for( i = 0;  i< numPlayers; i++){
    cout<<"player"<<(i+1)<<',';
    playerList[i] = getPlayer();
  }

  //clear screen<< turn
  cout << "\x1B[2J\x1B[H";
  welcome("banners/banner.txt");

  //cout<<entering run
  do{
    for( i = 0;  i< numPlayers; i++)
      playerTurn.run(playerList[i]);
    if(numPlayers != 1){
      cout<<"continue?\n";
      cin>>option;
    }
  }
  while(option == "yes");

  delete [] playerList;
  cout<<"Good Bye!";
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movl $0x0, -0x4(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x4480
leaq -0x168(%rbp), %rdi
callq 0x3390
leaq -0x191(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x3450
movq -0x248(%rbp), %rdx
leaq 0xe849(%rip), %rsi      # 0x12004
leaq -0x190(%rbp), %rdi
callq 0x47d0
jmp 0x37c9
leaq -0x190(%rbp), %rdi
callq 0x3d50
jmp 0x37d7
leaq -0x190(%rbp), %rdi
callq 0x31c0
leaq -0x191(%rbp), %rdi
callq 0x32d0
movq 0x157da(%rip), %rdi     # 0x18fd0
leaq 0xe81a(%rip), %rsi      # 0x12017
callq 0x3280
jmp 0x3804
movq 0x157d5(%rip), %rdi     # 0x18fe0
leaq -0x170(%rbp), %rsi
callq 0x31b0
jmp 0x3819
movl -0x170(%rbp), %eax
movl %eax, -0x1a8(%rbp)
movq 0x157a4(%rip), %rdi     # 0x18fd0
leaq 0xe7f6(%rip), %rsi      # 0x12029
callq 0x3280
jmp 0x383a
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x3450
movq -0x250(%rbp), %rdx
leaq 0xe7a9(%rip), %rsi      # 0x12004
leaq -0x1c8(%rbp), %rdi
callq 0x47d0
jmp 0x3869
leaq -0x1c8(%rbp), %rdi
callq 0x3d50
jmp 0x3877
leaq -0x1c8(%rbp), %rdi
callq 0x31c0
leaq -0x1c9(%rbp), %rdi
callq 0x32d0
movslq -0x1a8(%rbp), %rax
movq %rax, -0x260(%rbp)
movl $0x20, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
addq $0x8, %rdi
movq $-0x1, %rax
cmovbq %rax, %rdi
testb %cl, %cl
cmovneq %rax, %rdi
callq 0x3040
movq %rax, -0x258(%rbp)
jmp 0x38ce
movq -0x260(%rbp), %rax
movq -0x258(%rbp), %rcx
movq %rax, (%rcx)
addq $0x8, %rcx
movq %rcx, -0x268(%rbp)
cmpq $0x0, %rax
je 0x3947
movq -0x268(%rbp), %rax
movq -0x260(%rbp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, -0x278(%rbp)
movq %rax, -0x270(%rbp)
movq -0x270(%rbp), %rdi
movq %rdi, -0x280(%rbp)
callq 0x3390
movq -0x280(%rbp), %rax
movq -0x278(%rbp), %rcx
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x270(%rbp)
jne 0x3916
movq -0x268(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movl $0x0, -0x16c(%rbp)
movl -0x16c(%rbp), %eax
cmpl -0x1a8(%rbp), %eax
jge 0x3aa9
movq 0x15658(%rip), %rdi     # 0x18fd0
leaq 0xe6b2(%rip), %rsi      # 0x12031
callq 0x3280
movq %rax, -0x288(%rbp)
jmp 0x398d
movq -0x288(%rbp), %rdi
movl -0x16c(%rbp), %esi
incl %esi
callq 0x3430
movq %rax, -0x290(%rbp)
jmp 0x39aa
movq -0x290(%rbp), %rdi
movl $0x2c, %esi
callq 0x3320
jmp 0x39bd
leaq -0x1f8(%rbp), %rdi
callq 0x3f60
jmp 0x39cb
movq -0x1d8(%rbp), %rdi
movslq -0x16c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3330
leaq -0x1f8(%rbp), %rdi
callq 0x31c0
movl -0x16c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x16c(%rbp)
jmp 0x395f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x3a3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x31c0
leaq -0x191(%rbp), %rdi
callq 0x32d0
jmp 0x3d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x3d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x3a98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x31c0
leaq -0x1c9(%rbp), %rdi
callq 0x32d0
jmp 0x3d26
movq 0x15520(%rip), %rdi     # 0x18fd0
leaq 0xe572(%rip), %rsi      # 0x12029
callq 0x3280
jmp 0x3abe
leaq -0x219(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x3450
movq -0x298(%rbp), %rdx
leaq 0xe525(%rip), %rsi      # 0x12004
leaq -0x218(%rbp), %rdi
callq 0x47d0
jmp 0x3aed
leaq -0x218(%rbp), %rdi
callq 0x3d50
jmp 0x3afb
leaq -0x218(%rbp), %rdi
callq 0x31c0
leaq -0x219(%rbp), %rdi
callq 0x32d0
movl $0x0, -0x16c(%rbp)
movl -0x16c(%rbp), %eax
cmpl -0x1a8(%rbp), %eax
jge 0x3bea
movq -0x1d8(%rbp), %rsi
movslq -0x16c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq -0x240(%rbp), %rdi
callq 0x3140
jmp 0x3b52
leaq -0x148(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x8f80
jmp 0x3b67
leaq -0x240(%rbp), %rdi
callq 0x31c0
movl -0x16c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x16c(%rbp)
jmp 0x3b1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
jmp 0x3bb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x31c0
leaq -0x219(%rbp), %rdi
callq 0x32d0
jmp 0x3d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a0(%rbp)
movl %eax, -0x1a4(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x31c0
jmp 0x3d26
cmpl $0x1, -0x1a8(%rbp)
je 0x3c1f
movq 0x153d6(%rip), %rdi     # 0x18fd0
leaq 0xe437(%rip), %rsi      # 0x12038
callq 0x3280
jmp 0x3c08
movq 0x153d1(%rip), %rdi     # 0x18fe0
leaq -0x168(%rbp), %rsi
callq 0x3350
jmp 0x3c1d
jmp 0x3c1f
jmp 0x3c21
leaq 0xe41b(%rip), %rsi      # 0x12043
leaq -0x168(%rbp), %rdi
callq 0x4880
movb %al, -0x299(%rbp)
jmp 0x3c3c
movb -0x299(%rbp), %al
testb $0x1, %al
jne 0x3b13
jmp 0x3c4c
movq -0x1d8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
cmpq $0x0, %rax
je 0x3ce6
movq -0x2a8(%rbp), %rcx
movq %rcx, %rax
addq $-0x8, %rax
movq %rax, -0x2c0(%rbp)
movq -0x8(%rcx), %rdx
movq %rdx, -0x2b8(%rbp)
shlq $0x5, %rdx
movq %rcx, %rax
addq %rdx, %rax
cmpq %rax, %rcx
movq %rax, -0x2b0(%rbp)
je 0x3ccb
movq -0x2b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x31c0
movq -0x2a8(%rbp), %rcx
movq -0x2c8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2b0(%rbp)
jne 0x3c9a
movq -0x2c0(%rbp), %rdi
movq -0x2b8(%rbp), %rsi
shlq $0x5, %rsi
addq $0x8, %rsi
callq 0x34c0
movq 0x152e3(%rip), %rdi     # 0x18fd0
leaq 0xe353(%rip), %rsi      # 0x12047
callq 0x3280
jmp 0x3cfb
movl $0x0, -0x4(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x31c0
leaq -0x148(%rbp), %rdi
callq 0x48b0
movl -0x4(%rbp), %eax
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
leaq -0x168(%rbp), %rdi
callq 0x31c0
leaq -0x148(%rbp), %rdi
callq 0x48b0
movq -0x1a0(%rbp), %rdi
callq 0x3440
nopw (%rax,%rax)