Version SIX:
1. Maintains features of versions one and two
2. Moves: win, block, two in row, pre-ordered.
3. A small number of special cases also.
Difficult to beat!
Maybe Even Impossible!!!
Changes to computer_move method:
public void computer_move() { int i=0; int j=0; //special cases if(position[1][1]==HUMAN&&position[0][2]==COMPUTER&&position[2][0]==HUMAN&& position[2][2]==EMPTY ) { j=2; i=2; } else if(position[0][0]==HUMAN&&position[0][1]==COMPUTER&&position[1][1]==COMPUTER&& position[2][1]==HUMAN&&position[1][2]==HUMAN&&position[2][0]==EMPTY) { j=2; i=0; } else if(position[0][1]==COMPUTER&&position[0][2]==HUMAN&&position[1][0]==HUMAN&& position[1][1]==COMPUTER&&position[2][1]==HUMAN&&position[2][2]==EMPTY) { j=2; i=2; } //regular moves else if(position[0][0]==COMPUTER&&position[0][0]==position[0][1]&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[0][0]==COMPUTER&&position[0][0]==position[0][2]&&position[0][1]==EMPTY) { j=0; i=1;} else if(position[0][1]==COMPUTER&&position[0][1]==position[0][2]&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[1][0]==COMPUTER&&position[1][0]==position[1][1]&&position[1][2]==EMPTY) { j=1; i=2;} else if(position[1][0]==COMPUTER&&position[1][0]==position[1][2]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][2]==COMPUTER&&position[1][2]==position[1][1]&&position[1][0]==EMPTY) { j=1; i=0;} else if(position[2][0]==COMPUTER&&position[2][0]==position[2][1]&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[2][1]==COMPUTER&&position[2][1]==position[2][2]&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[2][0]==COMPUTER&&position[2][0]==position[2][2]&&position[2][1]==EMPTY) { j=2; i=1;} else if(position[0][0]==COMPUTER&&position[0][0]==position[1][0]&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[0][0]==COMPUTER&&position[0][0]==position[2][0]&&position[1][0]==EMPTY) { j=1; i=0;} else if(position[1][0]==COMPUTER&&position[1][0]==position[2][0]&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[0][1]==COMPUTER&&position[0][1]==position[1][1]&&position[2][1]==EMPTY) { j=2; i=1;} else if(position[0][1]==COMPUTER&&position[0][1]==position[2][1]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][1]==COMPUTER&&position[1][1]==position[2][1]&&position[0][1]==EMPTY) { j=0; i=1;} else if(position[0][2]==COMPUTER&&position[0][2]==position[1][2]&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[0][2]==COMPUTER&&position[0][2]==position[2][2]&&position[1][2]==EMPTY) { j=1; i=2;} else if(position[1][2]==COMPUTER&&position[1][2]==position[2][2]&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[0][0]==COMPUTER&&position[0][0]==position[1][1]&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[0][0]==COMPUTER&&position[0][0]==position[2][2]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][1]==COMPUTER&&position[1][1]==position[2][2]&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[0][2]==COMPUTER&&position[0][2]==position[1][1]&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[2][0]==COMPUTER&&position[2][0]==position[1][1]&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[2][0]==COMPUTER&&position[2][0]==position[0][2]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[0][0]==HUMAN&&position[0][0]==position[0][1]&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[0][0]==HUMAN&&position[0][0]==position[0][2]&&position[0][1]==EMPTY) { j=0; i=1;} else if(position[0][1]==HUMAN&&position[0][1]==position[0][2]&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[1][0]==HUMAN&&position[1][0]==position[1][1]&&position[1][2]==EMPTY) { j=1; i=2;} else if(position[1][0]==HUMAN&&position[1][0]==position[1][2]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][2]==HUMAN&&position[1][2]==position[1][1]&&position[1][0]==EMPTY) { j=1; i=0;} else if(position[2][0]==HUMAN&&position[2][0]==position[2][1]&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[2][1]==HUMAN&&position[2][1]==position[2][2]&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[2][0]==HUMAN&&position[2][0]==position[2][2]&&position[2][1]==EMPTY) { j=2; i=1;} else if(position[0][0]==HUMAN&&position[0][0]==position[1][0]&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[0][0]==HUMAN&&position[0][0]==position[2][0]&&position[1][0]==EMPTY) { j=1; i=0;} else if(position[1][0]==HUMAN&&position[1][0]==position[2][0]&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[0][1]==HUMAN&&position[0][1]==position[1][1]&&position[2][1]==EMPTY) { j=2; i=1;} else if(position[0][1]==HUMAN&&position[0][1]==position[2][1]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][1]==HUMAN&&position[1][1]==position[2][1]&&position[0][1]==EMPTY) { j=0; i=1;} else if(position[0][2]==HUMAN&&position[0][2]==position[1][2]&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[0][2]==HUMAN&&position[0][2]==position[2][2]&&position[1][2]==EMPTY) { j=1; i=2;} else if(position[1][2]==HUMAN&&position[1][2]==position[2][2]&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[0][0]==HUMAN&&position[0][0]==position[1][1]&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[0][0]==HUMAN&&position[0][0]==position[2][2]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][1]==HUMAN&&position[1][1]==position[2][2]&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[0][2]==HUMAN&&position[0][2]==position[1][1]&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[2][0]==HUMAN&&position[2][0]==position[1][1]&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[2][0]==HUMAN&&position[2][0]==position[0][2]&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[0][0]==COMPUTER&&position[0][1]==EMPTY&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[0][1]==COMPUTER&&position[0][2]==EMPTY&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[0][2]==COMPUTER&&position[0][0]==EMPTY&&position[0][1]==EMPTY) { j=0; i=1;} else if(position[1][0]==COMPUTER&&position[1][1]==EMPTY&&position[1][2]==EMPTY) { j=1; i=2;} else if(position[1][1]==COMPUTER&&position[1][2]==EMPTY&&position[1][0]==EMPTY) { j=1; i=0;} else if(position[1][2]==COMPUTER&&position[1][0]==EMPTY&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[2][0]==COMPUTER&&position[2][1]==EMPTY&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[2][1]==COMPUTER&&position[2][2]==EMPTY&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[2][2]==COMPUTER&&position[2][0]==EMPTY&&position[2][1]==EMPTY) { j=2; i=1;} else if(position[0][0]==COMPUTER&&position[1][0]==EMPTY&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[1][0]==COMPUTER&&position[2][0]==EMPTY&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[2][0]==COMPUTER&&position[0][0]==EMPTY&&position[1][0]==EMPTY) { j=1; i=0;} else if(position[0][1]==COMPUTER&&position[1][1]==EMPTY&&position[2][1]==EMPTY) { j=2; i=1;} else if(position[1][1]==COMPUTER&&position[2][1]==EMPTY&&position[0][1]==EMPTY) { j=0; i=1;} else if(position[2][1]==COMPUTER&&position[0][1]==EMPTY&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[0][2]==COMPUTER&&position[1][2]==EMPTY&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[1][2]==COMPUTER&&position[2][2]==EMPTY&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[2][2]==COMPUTER&&position[0][2]==EMPTY&&position[1][2]==EMPTY) { j=1; i=2;} else if(position[0][0]==COMPUTER&&position[1][1]==EMPTY&&position[2][2]==EMPTY) { j=2; i=2;} else if(position[1][1]==COMPUTER&&position[2][2]==EMPTY&&position[0][0]==EMPTY) { j=0; i=0;} else if(position[2][2]==COMPUTER&&position[0][0]==EMPTY&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[0][2]==COMPUTER&&position[1][1]==EMPTY&&position[2][0]==EMPTY) { j=2; i=0;} else if(position[1][1]==COMPUTER&&position[2][0]==EMPTY&&position[0][2]==EMPTY) { j=0; i=2;} else if(position[2][0]==COMPUTER&&position[0][2]==EMPTY&&position[1][1]==EMPTY) { j=1; i=1;} else if(position[1][1]==EMPTY) { j=1; i=1; } else if(position[0][2]==EMPTY) { j=0; i=2; } else if(position[2][0]==EMPTY) { j=2; i=0; } else if(position[2][2]==EMPTY) { j=2; i=2; } else if(position[1][2]==EMPTY) { j=1; i=2; } else if(position[2][1]==EMPTY) { j=2; i=1; } else if(position[0][1]==EMPTY) { j=0; i=1; } else if(position[0][0]==EMPTY) { j=0; i=0; } else if(position[1][0]==EMPTY) { j=1; i=0; } //could just be else... position[j][i]=COMPUTER; win(); TURN=HUMAN; }