U
    c1                     @   s   d dl Z d dlZd dlZd dlT ejjZejjZejjZejj	Z	ej
jjZej
jjZd add Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdadd Zdd Zdd Zdag ad d! Z d"d# Z!dS )$    N)*c                 C   s   | t krtS t S N)FirstSymbolSecondSymbol)player r   T/home/hp/service/external/books/aicte-python/code/unit3/tictactoe/logic/twoplayer.py
nextPlayer   s    r	   c                   C   s   t S r   )r   r   r   r   r   firstPlayer   s    r
   c                 C   sJ   t dD ]<}d}t dD ]}t| | | kr|d7 }q|dkr dS qdS N   r      TFrangeboard)symbolrowntimescolr   r   r   	rowWinner   s    
 r   c                 C   sJ   t dD ]<}d}t dD ]}t| | | kr|d7 }q|dkr dS qdS r   r   )r   r   r   r   r   r   r   	colWinner"   s    
 r   c                 C   sb   d}d}t dD ]8}t| | | kr,|d7 }t| d|  | kr|d7 }q|dksZ|dkr^dS dS )Nr   r   r      TFr   )r   Z	ntimesfwdZ	ntimesbwdr   r   r   r   
diagWinner+   s    
r   c                 C   s2   t d|  t| rdS t| r"dS t| r.dS dS )Nziswinner...TF)printr   r   r   r   r   r   r   isWinner8   s    
   r   c                   C   s   dS )NFr   r   r   r   r   isDraw?   s    r   c                 C   s   | t | |< td7 ad S )Nr   )r   nmoves)r   r   r   r   r   r   moveB   s    r   c                 C   sH   d|   krdkrDn n,d|  kr,dkrDn nt |  | tkrDdS dS )Nr   r   TF)r   EmptySymbol)r   r   r   r   r   isValidG   s    0r    c                 C   s    t dkrdS tt| rdS dS )N	   TF)r   r   r	   r   r   r   r   gameOverM   s
      r"   c                   C   s.   t trtt nt tr$tt nt  d S r   )r   r   resultr   r   r   r   r   checkWinnerS   s
    

r$    c                 C   s0   t || t||r,tt|| ttadS dS )NTF)r   r    r   r   r	   rcstrr   r   r   r   r   processCommon]   s    

r(   c                  C   sT   t  attsDt  tdt d } tt|  \}}t| || qt  t	  d S )NPlayer z: )
r
   r   r"   showinputmapintsplitr(   r$   r&   r   r   r   loadGameTextf   s    r/   c                 C   s~   t  }tt| \}}t}t|||r>t| | j|d t	trzt
d t dt t dd| d  t jdd d S )Ntextz
Game over.r   r)   z wins.Zdisabled)state)rowcolgetr,   r-   r.   r   r(   gridZ	configurer"   r   deleteZENDinsert)Zrcr'   r   r   Z	oldplayerr   r   r   
processGUIw   s    r8   c                  C   s   t  at } t atdD ]F}tg  tdD ].}t| tdd t| | j||d q0qtjdddd t	dt
 |   d S )Nr   _r0   )r   columnr   )r   r:   Z
columnspanz<Return>)r
   r   ZTkZEntryr3   r   r5   appendZLabelZbindr8   Zmainloop)rootr   r   r   r   r   loadGameGUI   s    
r=   c                 C   s   | dkrt   nt  d S )Nr1   )r/   r=   )moder   r   r   loadGame   s     r?   )"sysZtictactoe.logic	tictactoeZtictactoe.display.textZtkinterlogicr   r   r   r   Zdisplayr1   r#   r*   r   r	   r
   r   r   r   r   r   r   r    r"   r$   r   r(   r/   r8   r3   r5   r=   r?   r   r   r   r   <module>   s:   

			