예제 #1
0
def create_new_network(network, box_size, random):
    number_of_square = box_size * box_size
    for antenna in range(number_of_square):
        if can_antenna_be_turned_on(antenna, network, box_size) and _flip_coin(random):
            network = turn_on_antenna(antenna, network)
        else:
            network = turn_off_antenna(antenna, network)
    return network
예제 #2
0
    def test_can_antenna_be_turned_on(self):
        # □-□-□-□-■
        # □-□-□-□-□
        # □-□-■-□-□
        # □-□-□-□-■
        # □-□-□-□-□

        network = create_network([4, 12, 20])
        assert can_antenna_be_turned_on(0, network, 5)
        assert can_antenna_be_turned_on(1, network, 5)
        assert can_antenna_be_turned_on(5, network, 5)
        assert can_antenna_be_turned_on(19, network, 5)

        assert not can_antenna_be_turned_on(3, network, 5)
        assert not can_antenna_be_turned_on(7, network, 5)
        assert not can_antenna_be_turned_on(11, network, 5)
        assert not can_antenna_be_turned_on(13, network, 5)
        assert not can_antenna_be_turned_on(17, network, 5)