# Here is all fields to be used in states are provided
Fields:
mySum    BJSum
oppCard  BJCardVal
End

# States used by implementation
States:
BJSumState       mySum
BJSumCardState   mySum,oppCard
End

Observation_to_States:
Trans1  if (currObserv->m_Sum == 40) _currState.mySum = FINAL;else if (currObserv->m_Sum > 22) _currState.mySum = OVER; else _currState.mySum = BJSum(currObserv->m_Sum);
Trans2  if (currObserv->m_Sum == 40) _currState.mySum = FINAL;else if (currObserv->m_Sum > 22) _currState.mySum = OVER; else _currState.mySum = BJSum(currObserv->m_Sum);_currState.oppCard = currObserv->m_OpponentCard;
End

Ranges:
Sum1  BJSumState  mySum[MIN..POINT]
Sum2  BJSumState  mySum[OVER..OVER]
Sum3  BJSumState  mySum[MIN..16]
Sum4  BJSumState  mySum[17..OVER]
Sum5  BJSumState  mySum[FINAL..FINAL]
Sum6  BJSumState  mySum[MIN..18]
Sum7  BJSumState  mySum[19..OVER]
SumCard1 BJSumCardState mySum[MIN..POINT],oppCard[BJ2..BJACE]
SumCard2 BJSumCardState mySum[OVER..OVER],oppCard[BJ2..BJACE]
SumCard3 BJSumCardState mySum[MIN..16],oppCard[BJ2..BJACE]
SumCard4 BJSumCardState mySum[17..OVER],oppCard[BJ2..BJACE]
SumCard5 BJSumCardState mySum[FINAL..FINAL],oppCard[BJ2..BJACE]
End

Actions_per_Range:
Act1   Sum1,HIT 
Act2   Sum1,STOP
Act3   Sum2,STOP
Act4   SumCard1,HIT
Act5   SumCard1,STOP
Act6   SumCard2,STOP
Act7   Sum3,HIT
Act8   Sum4,STOP
Act9   SumCard3,HIT
Act10  SumCard4,STOP
Act11  Sum5,FINISH
Act12  SumCard5,FINISH
Act13  Sum6,HIT
Act14  Sum7,STOP
End

Policies:
PolicySum16 Act7,Act8,Act11
PolicySum18 Act13,Act14,Act11
PolicySumCard16 Act9,Act10,Act12
PolicyHitOnly Act1,Act3,Act11
PolicyHitOnly2 Act4,Act6,Act12
End

Players:
SimplePlayer BJSumState     Trans1  Act1,Act2,Act3,Act11              
SmartPlayer  BJSumCardState Trans2  Act4,Act5,Act6,Act12
End
