Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def isAlive(alive, neighborCt):
- return alive and neighborCt == 2 \
- or neighborCt == 3
- def generateSignals(cell):
- (x, y) = cell
- return [
- (x-1, y-1), (x-1, y), (x-1, y+1),
- (x, y-1), (x, y+1),
- (x+1, y-1), (x+1, y), (x+1, y+1),
- ]
- def generateSignalMap(cells):
- signalMap = {}
- for cell in cells:
- if cell not in signalMap:
- signalMap[cell] = 0
- for signal in generateSignals(cell):
- if signal in signalMap:
- signalMap[signal] += 1
- elif signal in cells:
- signalMap[signal] = 1
- return signalMap
- #example testing
- TESTS = [
- isAlive(1, 3) == True,
- isAlive(1, 4) == False,
- isAlive(0, 3) == True,
- isAlive(0, 1) == False,
- generateSignals((0, 0)) == [
- (-1, -1), (-1, 0), (-1, 1),
- (0, -1), (0, 1),
- (1, -1), (1, 0), (1, 1),
- ],
- generateSignals((10, 10)) == [
- (9, 9), (9, 10), (9, 11),
- (10, 9), (10, 11),
- (11, 9), (11, 10), (11, 11),
- ],
- generateSignalMap( [] ) == {},
- generateSignalMap([(2,2), (4,4)]) == {
- (2, 2): 0,
- (4, 4): 0,
- },
- generateSignalMap( [(2,1), (2, 2)] ) == {
- (2, 1): 1,
- (2, 2): 1,
- },
- generateSignalMap( [(2,1), (2, 2)] ) == {
- (2, 1): 1,
- (2, 2): 1,
- },
- ]
- def getTestResults(tests):
- return list( map(
- lambda test: "PASS" if test else "FAIL",
- tests
- ) )
- print(getTestResults(TESTS))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement