# TTTLetter class
"""Implements the functionality of a letter in Boggle."""

from graphics import *
from board import Board

class TTTCube:
    """A TTT Cube has one attribute that defines it:
         * _letter:  denotes the letter 'X', 'O', or '' on the face of a TTT Cube
    """

    __slots__ = ['_letter']

    def __init__(self, letter=""):
        """Initializes the TTTCube with a visible letter"""
        # set row, column and letter attributes
        self._letter = letter

    def get_letter(self):
        """Returns the visible letter on the cube"""
        return self._letter

    def set_letter(self, char):
        """Updates the visible letter on the cube if it is valid (X, O, or '')"""
        if char in ["X","O","","-"]:
            self._letter = char

    def __str__(self):
        """String representation of a TTTCube"""
        return "{}".format(self.get_letter())

    def __repr__(self):
        """Debugging representation of a TTTCube"""
        return str(self)

if __name__ == "__main__":
    win = GraphWin("Tic Tac Toe", 400, 400)
    board = Board(win, rows=3, cols=3)

    board.draw_board()

    tttcube1 = TTTCube("X")
    tttcube2 = TTTCube("O")
 
    tttcube1.place_cube(board,  "light blue")
    tttcube2.place_cube(board, "pink")

    # pause for mouse click before exiting
    point = win.getMouse()
    win.close()
