Äīźóģåķņ āē’ņ čē źżųą ļīčńźīāīé ģąųčķū. Ąäšåń īščćčķąėüķīćī äīźóģåķņą : http://kodomo.cmm.msu.ru/trac/cca/changeset/3%3Ac86adbd7d440/Automata.py?old=11%3Aa40cbd127d39&old_path=Automata.py
Äąņą čēģåķåķč’: Unknown
Äąņą čķäåźńčšīāąķč’: Sat Mar 1 22:26:56 2014
Źīäčšīāźą: IBM-866

Ļīčńźīāūå ńėīāą: ļ ļ ļ
Diff [a40cbd127d3960c30fba294537a622ac24b2faa9:c86adbd7d44015f579edd4bcb79d8679de0db416] for Automata.py ņĄÓ Cyclyc Cell Automata

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Automata.py

    r11 r3 ˆą
    11class Automata(object):ˆą
    2ˆą        #field[][]  - †Õ††ą†ķ†č†’ †‘†č†ģ†ā†ī†ė †‘†ī†‘†’†ī†ƒ†ķ†č†ƒˆą
    ˆą2        #field[][]ˆą
    33        #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):ˆą
    456                passˆą
    46ˆąˆą
    47ˆą        def contain_state(symbol):ˆą
    ˆą7        def nextStep():ˆą
    ˆą8                passˆą
    ˆą9        def changeSize(width,height):ˆą
    ˆą10                passˆą
    ˆą11        def containState(symbol):ˆą
    4812                return Falseˆą
Note: See TracChangeset for help on using the changeset viewer.