Ejemplo n.º 1
0
    def __init__(self,
                 nlins=NLINS,
                 ncols=NCOLS,
                 pop_baixa=BAIXA_POP,
                 pop_alta=ALTA_POP):
        if nlins < 0:
            raise ValorEstruturalInvalido("Numero de linhas menor que zero!")
        if ncols < 0:
            raise ValorEstruturalInvalido("Numero de colunas menor que zero!")

        self._nlins = nlins
        self._ncols = ncols

        # A representacao interna da matriz de jogo e um vetor unidimensional.
        # O metodo par_coord_para_unidim e responsavel pela conversao de
        # coordenadas bidimensionais para unidimensionais
        self._matriz_jogo = []

        self._tamanho_total = nlins * ncols

        # Pelas regras do jogo, qualquer celula viva com menos do que
        # pop_baixa vizinhos morre por solidao, e com mais do que
        # pop_alta vizinhos morre por superpopulacao. Celulas vivas
        # so permanecem vivas com um pop_baixa <= n <= pop_alta, n
        # sendo o numero de vizinhos. Celulas mortas se tornam vivas
        # com pop_alta vizinhos.
        self._pop_baixa = pop_baixa
        self._pop_alta = pop_alta

        # Preenche o jogo inicial com celulas vazias
        for i in range(0, self._tamanho_total):
            self._matriz_jogo.append(CelulaJogoDaVida())
class TestCelulaJogoDaVida(unittest.TestCase):
    def setUp(self):
        self.celula = CelulaJogoDaVida(viva=False,
                                       simbolo_viva='[X]',
                                       simbolo_morta='[ ]')

    def test_init_viva(self):
        self.assertFalse(self.celula.viva)

    def test_init_simbolo_viva(self):
        self.assertEqual(self.celula.simbolo_viva, '[X]')

    def test_init_simbolo_morta(self):
        self.assertEqual(self.celula.simbolo_morta, '[ ]')

    def test_viva_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.celula.viva = False

    def test_simbolo_viva_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.celula.simbolo_viva = '[$]'

    def test_simbolo_morta_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.celula.simbolo_morta = '[#]'

    def test_muda_estado(self):
        self.celula.muda_estado()
        self.assertTrue(self.celula.viva)
        self.celula.muda_estado()
        self.assertFalse(self.celula.viva)

    def test_nasce(self):
        self.celula.nasce()
        self.assertTrue(self.celula.viva)

    def test_morre(self):
        self.celula.morre()
        self.assertFalse(self.celula.viva)
class TestCelulaJogoDaVida(unittest.TestCase):
    def setUp(self):
        self.celula = CelulaJogoDaVida(viva=False,
                                       simbolo_viva='[X]',
                                       simbolo_morta='[ ]')

    def test_init_viva(self):
        self.assertFalse(self.celula.viva)

    def test_init_simbolo_viva(self):
        self.assertEqual(self.celula.simbolo_viva, '[X]')

    def test_init_simbolo_morta(self):
        self.assertEqual(self.celula.simbolo_morta, '[ ]')

    def test_viva_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.celula.viva = False

    def test_simbolo_viva_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.celula.simbolo_viva = '[$]'

    def test_simbolo_morta_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.celula.simbolo_morta = '[#]'

    def test_muda_estado(self):
        self.celula.muda_estado()
        self.assertTrue(self.celula.viva)
        self.celula.muda_estado()
        self.assertFalse(self.celula.viva)

    def test_nasce(self):
        self.celula.nasce()
        self.assertTrue(self.celula.viva)

    def test_morre(self):
        self.celula.morre()
        self.assertFalse(self.celula.viva)
Ejemplo n.º 4
0
    def __init__(self,
                 nlins=NLINS,
                 ncols=NCOLS,
                 pop_low=LOW_POP,
                 pop_high=HIGH_POP):
        if nlins < 0:
            raise classException("Number of lines less than zero!")
        if ncols < 0:
            raise classException("Number of collumns less than zero!")

        self._nlins = nlins
        self._ncols = ncols
        self._game_board = []
        self._full_size = nlins * ncols
        self._pop_low = pop_low
        self._pop_high = pop_high

        # Initilize
        for i in range(0, self._full_size):
            self._game_board.append(CelulaJogoDaVida())
 def setUp(self):
     self.celula = CelulaJogoDaVida(viva=False,
                                    simbolo_viva='[X]',
                                    simbolo_morta='[ ]')
 def setUp(self):
     self.celula = CelulaJogoDaVida(viva=False,
                                    simbolo_viva='[X]',
                                    simbolo_morta='[ ]')