Guest User

Untitled

a guest
Aug 18th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. import random as r
  2.  
  3. EverythingInExistence = [] # doesn't do anything, just a comment in the form of code
  4.  
  5. class Bootstrap:
  6.  
  7. def __init__(self):
  8.  
  9. ux = 6
  10. uy = 6
  11. ut = 3
  12.  
  13. uinput = raw_input(" > (Int) [" + str(ux) + "] Universe X dimension: ")
  14. if uinput != "":
  15. ux = int(uinput)
  16.  
  17. uinput = raw_input(" > (Int) [" + str(uy) + "] Universe Y dimension: ")
  18. if uinput != "":
  19. uy = int(uinput)
  20.  
  21. uinput = raw_input(" > (Int) [" + str(ut) + "] Universe Timesteps to run: ")
  22. if uinput != "":
  23. ut = int(uinput)
  24.  
  25. print "\nRun grid [" + str(ux) + ", " + str(uy) + "] for " + str(ut) + " steps.\n"
  26.  
  27. EverythingInExistence.append(Universe(ux,uy))
  28.  
  29. for t in range(ut):
  30. for i in EverythingInExistence:
  31. print "Run all universes (" + str(t) + ", " + str(i) + ") "
  32. i.update(i)
  33.  
  34. class Universe:
  35.  
  36. def __init__(self, x, y, progenitor=[], deviation=[]):
  37. print "Hello, Universe!"
  38. print "x:" + str(x) + " y:" + str(y)
  39.  
  40. self.univ = [[0 for i in range(y)] for j in range(x)] #init universe grid to 0
  41. self.timeBuffer = [[[None,0] for i in range(y)] for j in range(x)]
  42.  
  43. print "\nInit univ:\n"
  44. for i in self.univ:
  45. print i
  46.  
  47. print "\nInit timeBuffer:\n"
  48. for i in self.timeBuffer:
  49. print i
  50.  
  51. if progenitor and deviation:
  52. univ = [[progenitor[i][j] + deviation[i][j] for i in range(x)] for j in range(y)]
  53. elif progenitor:
  54. univ = [[progenitor[i][j] for i in range(x)] for j in range(y)]
  55. else:
  56. pass
  57. self.x = x+1
  58. self.y = y
  59. self.branches = []
  60.  
  61. def getNextState(self,x,y):
  62. if x == self.x or x == 0 or y == self.y or y == 0:
  63. return 0
  64.  
  65. sum = r.randint(0,8) #[sum(i) for i in self.univ[y-1:y+1]]
  66.  
  67. if sum == 3:
  68. return 1
  69. elif sum == 2 and (self.univ[x][y] == 1):
  70. return 1
  71. elif sum > 6:
  72. self.branch(sum - 6)
  73. return 0
  74. else:
  75. return 0
  76.  
  77. def update(self,univ):
  78. print "Update..."
  79. temp = univ
  80.  
  81. self.univ = [[self.getNextState(i,j) for i in range(self.y)] for j in range(self.x)]
  82.  
  83. print "\nCGoL Update:\n"
  84. for i in self.univ:
  85. print i
  86.  
  87. if self.branches:
  88. print "Do theRealBranch"
  89. #theRealBranch(self.timeBuffer)
  90.  
  91. #for i in range(univ.y):
  92. # for j in range(univ.x):
  93. # print "UpdateXY:" + str(j) + ", " + str(i)
  94.  
  95. branches = []
  96. print "Updated!"
  97.  
  98. def branch(self, sum):
  99. print "Do branch"
  100. self.branches.append([self.x,self.y,sum - 6])
  101. #self.timeBuffer[self.x][self.y] = (0, sum - 6)
  102.  
  103.  
  104. if __name__ == "__main__":
  105. bs = Bootstrap()
  106. print '[%s]' % ', '.join(map(str, EverythingInExistence))
Advertisement
Add Comment
Please, Sign In to add comment