Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. def isAlive(alive, neighborCt):
  2. return alive and neighborCt == 2 \
  3. or neighborCt == 3
  4.  
  5. def generateSignals(cell):
  6. (x, y) = cell
  7. return [
  8. (x-1, y-1), (x-1, y), (x-1, y+1),
  9. (x, y-1), (x, y+1),
  10. (x+1, y-1), (x+1, y), (x+1, y+1),
  11. ]
  12.  
  13. def generateSignalMap(cells):
  14. signalMap = {}
  15. for cell in cells:
  16. if cell not in signalMap:
  17. signalMap[cell] = 0
  18. for signal in generateSignals(cell):
  19. if signal in signalMap:
  20. signalMap[signal] += 1
  21. elif signal in cells:
  22. signalMap[signal] = 1
  23. return signalMap
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39. #example testing
  40. TESTS = [
  41. isAlive(1, 3) == True,
  42. isAlive(1, 4) == False,
  43. isAlive(0, 3) == True,
  44. isAlive(0, 1) == False,
  45.  
  46. generateSignals((0, 0)) == [
  47. (-1, -1), (-1, 0), (-1, 1),
  48. (0, -1), (0, 1),
  49. (1, -1), (1, 0), (1, 1),
  50. ],
  51. generateSignals((10, 10)) == [
  52. (9, 9), (9, 10), (9, 11),
  53. (10, 9), (10, 11),
  54. (11, 9), (11, 10), (11, 11),
  55. ],
  56.  
  57. generateSignalMap( [] ) == {},
  58. generateSignalMap([(2,2), (4,4)]) == {
  59. (2, 2): 0,
  60. (4, 4): 0,
  61. },
  62. generateSignalMap( [(2,1), (2, 2)] ) == {
  63. (2, 1): 1,
  64. (2, 2): 1,
  65. },
  66. generateSignalMap( [(2,1), (2, 2)] ) == {
  67. (2, 1): 1,
  68. (2, 2): 1,
  69. },
  70. ]
  71. def getTestResults(tests):
  72. return list( map(
  73. lambda test: "PASS" if test else "FAIL",
  74. tests
  75. ) )
  76. print(getTestResults(TESTS))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement