Changeset 20:eef739e055f4
- Timestamp:
- 12/04/10 23:28:47 (5 years ago)
- Branch:
- default
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Automata.py
r17 r20 1 from State import * 2 1 3 class Automata(object): 2 4 #field[][] - Ն膒 膃 4 6 #symbols = {} - : 冐__states 5 7 6 def __init__(self, width, height, states ):8 def __init__(self, width, height, states=None): 7 9 self.width = width 8 10 self.height = height 9 self.states = states 11 if states == None: 12 self.states = [State("Dead", ' ', white, [5]), 13 State("Alive", '+', black, [1] + range(4, 9))] 14 else: 15 self.states = states 10 16 self.symbols = {} 11 17 for num, st in enumerate(self.states): 45 51 "0-up, 1-right, 2-down, 3-left" 46 52 new_field = [] 53 47 54 if side == 0: 48 55 self.height += value 51 58 for col in range(self.width): 52 59 new_field[row].append(states[0].symbol) 53 for row in range(value, self.height): 54 if row < 0: continue 60 init = value 61 if value < 0: 62 init = 0 63 for row in range(init, self.height): 55 64 new_field.append([]) 56 65 for col in range(self.width): 57 66 new_field[row].append(self.field[row - value][col]) 67 58 68 if side == 2: 59 69 self.height += value 60 for row in range(0, self.height): 61 if row > self.height + value - 1: continue 70 term = -value 71 if value > 0: 72 term = 0 73 for row in range(self.height - term): 62 74 new_field.append([]) 63 75 for col in range(self.width): 67 79 for col in range(self.width): 68 80 new_field[row].append(states[0].symbol) 81 82 if side == 1: 83 self.width += value 84 term = -value 85 if value > 0: 86 term = 0 87 for row in range(self.height): 88 new_field.append([]) 89 for col in range(self.width - term): 90 new_field[row].append(self.field[row][col]) 91 for row in range(self.height): 92 for col in range(self.width, self.width + value): 93 new_field[row].append(states[0].symbol) 94 95 if side == 3: 96 self.width += value 97 for row in range(self.height): 98 new_field.append([]) 99 for col in range(value): 100 new_field[row].append(states[0].symbol) 101 init = value 102 if value < 0: 103 init = 0 104 for row in range(self.height): 105 for col in range(init, self.width): 106 new_field[row].append(self.field[row][col - value]) 107 self.field = new_field
Note: See TracChangeset
for help on using the changeset viewer.