Changes in Automata.py [11:a40cbd127d39:3:c86adbd7d440]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Automata.py
r11 r3 ą 1 1 class Automata(object):ą 2 ą #field[][] - Õąķč čģāīė īīķčąą 2 #field[][]ą 3 3 #states[]ą 4 ą #symbols = {} - čģāīė: ķīģå_ā_statesą 5 ą ą 6 ą def __init__(self, width, height, states):ą 7 ą self.width = widthą 8 ą self.height = heightą 9 ą self.states = statesą 10 ą self.symbols = {}ą 11 ą for num, st in enumerate(self.states):ą 12 ą self.symbols[st.symbol] = numą 13 ą self.field = []ą 14 ą for row in range(height):ą 15 ą self.field.append([])ą 16 ą for col in range(width):ą 17 ą self.field[row].append(states[0].symbol)ą 18 ą ą 19 ą def next_step():ą 20 ą new_state = []ą 21 ą for row in range(self.height):ą 22 ą new_state.append([])ą 23 ą for col in range(self.width):ą 24 ą symbol = field[row][col]ą 25 ą num = 0ą 26 ą for vert_long in range(row + self.height - 1, ą 27 ą row + self.height + 2):ą 28 ą for horiz_long in range(col + self.width - 1, ą 29 ą col + self.width + 2):ą 30 ą vert = vert_long % self.heightą 31 ą horiz = horiz_long % self.widthą 32 ą if (vert == row) & (horiz = col): continueą 33 ą if self.field[vert][horiz] == symbol:ą 34 ą num += 1ą 35 ą new_state[row].append(ą 36 ą self.states[self.symbols[symbol]].next_state(num))ą 37 ą ą 38 ą for row in range(self.height):ą 39 ą for col in range(self.width):ą 40 ą if new_state[row][col]:ą 41 ą self.field[row][col] = self.states[(self.symbols[symbol]ą 42 ą + 1) % len(states)].symbolą 43 ą ą 44 ą def change_size(value, side):ą ą 4 #āå čēģåķåč īīķč źėåīź ļīė č čēģåķåķč ā ļčźå īīķčé ļåäėąćą¬ äåėą® §ååē ķåļīåäāåķķīå īįąµåķčå ź īīāåā¬µčģ ļčźąģ źēåģļėą źėąą, źīīØé įäå ²ąķč® ā čķååéåą ą 5 def __init__(self,width,height,states):ą 45 6 passą 46 ą ą 47 ą def contain_state(symbol):ą ą 7 def nextStep():ą ą 8 passą ą 9 def changeSize(width,height):ą ą 10 passą ą 11 def containState(symbol):ą 48 12 return Falseą
Note: See TracChangeset
for help on using the changeset viewer.