import java.io.*;
import java.util.*;
import java.math.*;
public class CoinGame {
private Coin c1,c2;
private BankAccount p1,p2;
private int pot = 0;
public CoinGame (BankAccount pl1, BankAccount pl2) {
c1 = new Coin();
c2 = new Coin();
p1 = pl1;
p2 = pl2;
}
public String turn() {
int p1balance = p1.getBalance();
int p2balance = p2.getBalance();
if (p1balance == 0) {
return "Player 1 loses!";}
else {
if (p2balance == 0) {
return "Player 2 loses!";}
else {
int amounttowithdraw;
if (p1balance > p2balance) {
amounttowithdraw = (int)(Math.random()*p2balance) + 1;}
else {
amounttowithdraw = (int)(Math.random()*p1balance) + 1;}
//money pool is from 1-max of poorer player per player
p1.withdraw(amounttowithdraw);
p2.withdraw(amounttowithdraw);
pot = pot + 2*amounttowithdraw;
c1 = new Coin();
c1.flip();
c2 = new Coin();
c2.flip();
String c1face = c1.getFace();
String c2face = c2.getFace();
if (c1face.equals(c2face)) {
if (c1face.equals("heads")) {
p1.deposit(pot);}
else {
p2.deposit(pot);}
pot = 0;
}
return "Turn completed.";
}
}
}
public void play(int n) {
while (n > 0) {
turn();
n = n-1;}
}
public int getPot() {
return pot;}
public int getBalance(BankAccount p) {
return p.getBalance();}
}