from matplotlib.numerix import *
from numarray import *
from pylab import plot, subplot, legend, axis, xlabel, ylabel, text, show, rand
Error.setMode(all=None, overflow='warn', underflow='ignore', dividebyzero='warn', invalid='warn')
from LinearAlgebra import *


for swap in range(2) :
    win  = 0
    lose = 0
    for i in range(1000) :
        actual = int(rand()*3)+1;
        guess1 = int(rand()*3)+1;
        if guess1 == actual :
            reveal = int(rand()*2)+1;
            if reveal == actual :
                reveal = reveal + 1;
        else:
            if guess1 == 1 and actual == 2 :
                reveal = 3;
            elif guess1 == 1 and actual == 3 :
                reveal = 2;
            elif guess1 == 2 and actual == 1 :
                reveal = 3;
            elif guess1 == 2 and actual == 3 :
                reveal = 1;
            elif guess1 == 3 and actual == 1 :
                reveal = 2;
            elif guess1 == 3 and actual == 2 :
                reveal = 1;
        if swap == 1 :
            if guess1 == 1 and reveal == 2 :
                guess2 = 3;
            elif guess1 == 1 and reveal == 3 :
                guess2 = 2;
            elif guess1 == 2 and reveal == 1 :
                guess2 = 3;
            elif guess1 == 2 and reveal == 3 :
                guess2 = 1;
            elif guess1 == 3 and reveal == 1 :
                guess2 = 2;
            elif guess1 == 3 and reveal == 2 :
                guess2 = 1;
        else:
            guess2 = guess1;
                
        if guess2 == actual :
            win = win + 1;
        else:
            lose = lose + 1;
                
        # only print trace for first 3 games
        if i < 3 :
            print 'actual: ', actual
            print 'guess1: ', guess1
            print 'reveal: ', reveal
            print 'swap  : ', swap
            print 'guess2: ', guess2
            
    # print results for each game play policy
    print 'swap          :', swap
    print 'win           :', win
    print 'lose          :', lose
    print 'win/(win+lose):', float(win) / float(win + lose)
        
