rendered paste bodypackage rockPaperScissors;
import java.util.ArrayList;
import java.util.Random;
public class JackBauerBot implements RPSStrategy {
float round = 0;
int rocks = 0;
int paps = 0;
int ss = 0;
int op = 9;
int thor;
String move = "";
int mine = 9;
int r = 0;
private Random generator;
boolean isdummy = false;
ArrayList hismoves;
ArrayList mymoves;
public JackBauerBot()
{
reset();
}
public void reset()
{
rocks = 0;
paps = 0;
ss = 0;
round = 0;
generator = new Random();
isdummy = false;
hismoves = new ArrayList();
mymoves = new ArrayList();
mymoves.add(r, new Integer(op));
}
public String getName()
{
return "JackBauerBot";
}
public int nextThrow()
{
round++;
if (round < 50 || op == -1)
mine = generator.nextInt(3); //randomize for the first 15 turns or when i hit an invalid
else if (round >= 50)
if ((rocks/round) > .91 || (paps/round) > .91 || (ss/round) > .91)
mine = (op + 1) % 3;
if (isdummy)
{
if (op == 0)
{
op = 1;
mymoves.add(r++, new Integer(op));
return 1;
}
if (op == 1)
{
op = 2;
mymoves.add(r++, new Integer(op));
return 2;
}
if (op == 2)
{
op = 0;
mymoves.add(r++, new Integer(op));
return 0;
}
return -1;
}
mine = (op + 2) % 3;
return mine;
}
public void opponentsLastThrow(int th)
{
r++;
if (th == -1)
move = "invalid";
if (th == 0)
{
rocks++;
op = th;
}
if (th == 1)
{
paps++;
op = th;
}
else
{
op = th;
ss++;
}
hismoves.add(r, new Integer(th));
if (hismoves.equals(mymoves))
{
isdummy = true;
}
else
{
isdummy = false;
}
}
}