//Kelly Chen and Tina Lee import java.io.*; import java.util.*; public class CoinGame { // Variables: // private BankAccount p1,p2, pot; // private Coin c1,c2; BankAccount p1 = new BankAccount(10); BankAccount p2 = new BankAccount(10); BankAccount pot = new BankAccount(0); Coin c1 = new Coin(); Coin c2 = new Coin(); //Methods: public void setup(){ double amt; amt = (int)(Math.random()*100); amt = amt / 100; //System.out.println(amt); if (p1.getBalance() >= amt && p2.getBalance() >= amt){ pot.takeMoneyFrom(p1, amt); pot.takeMoneyFrom(p2, amt); } } public void turn(){ setup(); String result1 = c1.flipCoin(); String result2 = c2.flipCoin(); //System.out.println(result1); //System.out.println(result2); //System.out.println(pot.getBalance()); if ((result1.equals("heads")) && (result2.equals("heads"))){ p1.takeMoneyFrom(pot, pot.getBalance() ); } else if ((result1.equals("tails")) && (result2.equals("tails"))){ p2.takeMoneyFrom(pot, pot.getBalance()); } } //sometimes is large floating point? public double getCurrentBalance1(){ return p1.getBalance(); } public double getCurrentBalance2(){ return p2.getBalance(); } public double getPot(){ return pot.getBalance(); } public void cleanUpHelp(BankAccount p){ double pOrig = p.getBalance(); double pFixed = Math.round(pOrig*100)/((double)100); if (pOrig > pFixed){ p.withdraw(pOrig - pFixed); } else if (pOrig < pFixed){ p.deposit(pFixed - pOrig); } } public void cleanUp(){ cleanUpHelp(p1); cleanUpHelp(p2); cleanUpHelp(pot); } public void play(int n){ while( n > 0){ cleanUp(); turn(); n = n - 1; } } }