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)
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='[ ]')