B
     ^u                 @   s   d dl Z d dlZd dlZdZG dd dZedkr|eee jd ee jd ee jd d	Ze	d
 e
ee jd  dS )    NZ123456c               @   s8   e Zd Zdd ZdddZdd Zdd	 ZdddZdS )Modelc             C   s@   t t| _dgd | _d| d gd |g | _||d| _d S )NgUUUUUU?         )FL)listoutcomesemitfairProbloadProbtranProb)selfpFLpLFp6 r   ]/Users/cnotredame/Dropbox/Teaching/Practicals_Bed/bed/practicals_db/ex.7.3/sol/1.2.odc.sol.py__init__
   s    
zModel.__init__Nc             C   s   |r|| _ ntd| _ d S )NZFL)staterandomchoice)r   Zwhichr   r   r   setState   s     zModel.setStatec             C   sZ   | j dkr| j}n| j}t }d}x*tt|D ]}||| 7 }||k r2P q2W | j| S )Nr   r   )r   r   r   r   rangelenr
   )r   r   fSir   r   r   rollDice   s    
  zModel.rollDicec                s2    fdd} j  j }t }||k r.|  d S )Nc                  s    j dkrd _ nd _ d S )Nr   r   )r   r   )r   r   r   switch"   s    
 zModel.transit.<locals>.switch)r   r   r   )r   r   pr   r   )r   r   transit!   s
     zModel.transitd   c             C   sD   t  }t  }x2t|D ]&}tjd|  | jf  |   qW d S )Nz%s%s
)r   r   sysstdoutwriter   r   r!   )r   NZrollsZstatesr   r   r   r   sequence)   s    zModel.sequence)N)r"   )__name__
__module____qualname__r   r   r   r!   r'   r   r   r   r   r   	   s
   

r   __main__r         )r   r   r   r      )r#   rer   r	   r   r(   floatargvmr   r'   intr   r   r   r   <module>   s   +,
