O œLc@sÌdZddlTeedƒƒZeeƒZdZeeZdZ e deeƒZ d„Z d„Z d „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Ze ƒeƒe jƒdS(uv Tic Tac Toe, phase 5: Keep track where X's and O's have been placed. Created on Jun 15, 2010 @author: Matt Boutell i(u*u-Please enter the number of rows and columns: i–iuTic Tac Toe Phase 5cCs˜xGtdtƒD]6}ttd|tƒtt|tƒƒjtƒqWxGtdtƒD]6}tt|tdƒt|ttƒƒjtƒqZWdS(Nii(urangeu BOARDSIZEuLineuPointuPPSu WINDOWSIZEudrawuwin(ui((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyu drawLiness 4cCs!tt|dtt|tƒS(Ni(uPointuPPSuINSET(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyurectUpperRightscCstt|tt|tƒS(N(uPointuPPSuINSET(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyu rectUpperLeftscCs%tt|dtt|dtƒS(Ni(uPointuPPSuINSET(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyurectLowerRight scCs!tt|tt|dtƒS(Ni(uPointuPPSuINSET(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyu rectLowerLeft#scCs%tt|tdt|tdƒS(Ni(uPointuPPS(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyucenter&scCsTtt||ƒt||ƒƒjtƒtt||ƒt||ƒƒjtƒdS(N(uLineu rectLowerLefturectUpperRightudrawuwinu rectUpperLefturectLowerRight(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyudrawX)s(cCs+tt||ƒtdtƒjtƒdS(Ni(uCircleucenteruPPSuINSETudrawuwin(urowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyudrawO-scCsVd}xItD]A}x8tD]0}|r6t||ƒn t||ƒ| }qWq WdS(NT(uTrueu BOARDRANGEudrawXudrawO(uisDrawXurowucol((uWC:\Users\clifton\Documents\Courses\CSSE120\Python Workspace\Solutions\src\tictactoe5.pyu fillBoard0s cCsHg}x?tD]7}g}xtD]}|jdƒq W|j|ƒq Wt|ƒd}xétttƒD]×}tjƒ}t|j ƒt ƒ}t|j ƒt ƒ}xP|||dkrùtjƒ}t|j ƒt ƒ}t|j ƒt ƒ}qªW|rt ||ƒd|||s(