Changeset 11:a40cbd127d39
- Timestamp:
- 12/04/10 21:22:08 (5 years ago)
- Branch:
- default
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Automata.py
r3 r11 ą 1 1 class Automata(object):ą 2 ą #field[][] ąą 2 #field[][] - Õąķč čģāīė īīķčą 3 3 #states[]ą 4 ą #āå čēģåķåč īīķč źėåīź ļīė č čēģåķåķč ā ļčźå īīķčé ļåäėąćą¬ äåėą® §ååē ķåļīåäāåķķīå īįąµåķčå ź īīāåā¬µčģ ļčźąģ źēåģļėą źėąą, źīīØé įäå ²ąķč® ā čķååéåą 5 ą def __init__(self,width,height,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):ą 6 45 passą 7 ą def nextStep():ą 8 ą passą 9 ą def changeSize(width,height):ą 10 ą passą 11 ą def containState(symbol):ą ą 46 ą ą 47 def contain_state(symbol):ą 12 48 return Falseą -
State.py
r4 r11 ą 1 1 class State(object):ą 2 ą def __init__(self,name,symbol,color,nums,key):ą ą 2 ą ą 3 def __init__(self, name, symbol, color, nums):ą 3 4 #name - čģ, symbol - čģāīė, źīīØé ēąļčØāąå ā ąéė čėč ²ąķč ā ģąčāå, color - “āå īīįąęåķč, nums - ėīāč ļåå²īäą - ļčīź “č ī 0 äī 9, åėč ąźīå źīė-āī īźęą¬µč² źėåīź ąźčģ ęå īīķčåģ - ļåå²īä, īīāåā¬µą źķīļźą ķą źėąāåą 4 ą self.name =nameą5 ą self.symbol =symbolą6 ą self.color =colorą7 ą self.nums =numsą8 ą self.key=keyą 9 ą def next State(self,num):ąą 5 self.name = nameą ą 6 self.symbol = symbolą ą 7 self.color = colorą ą 8 self.nums = numsą ą 9 ą ą 10 def next_state(self, num):ą 10 11 #num - §čėī īźęą¬µč² źėåīź ā ąźīģ ęå īīķččą 11 12 return num in self.numsą ą 13 ą 12 14 def __repr__(self):ą 13 ą passąą 15 return nameą
Note: See TracChangeset
for help on using the changeset viewer.