1 | """Copyright 2010 Aydarkhanov Ruslan, Kurochkin Ilya, Rusinov Ivan |
---|
2 | |
---|
3 | This file is part of Foobar. |
---|
4 | |
---|
5 | Foobar is free software: you can redistribute it and/or modify it under |
---|
6 | the terms of the GNU General Public License as published |
---|
7 | by the Free Software Foundation, either version 2 of the License, |
---|
8 | or (at your option) any later version. |
---|
9 | |
---|
10 | Foobar is distributed in the hope that it will be useful, |
---|
11 | but WITHOUT ANY WARRANTY; without even the implied warranty |
---|
12 | of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
---|
13 | See the GNU General Public License for more details. |
---|
14 | |
---|
15 | You should have received a copy of the GNU General Public License |
---|
16 | along with Foobar. If not, see http://www.gnu.org/licenses/. |
---|
17 | """ |
---|
18 | |
---|
19 | fromˆàstateˆàimportˆà* |
---|
20 | |
---|
21 | classˆàAutomata(object): |
---|
22 | ˆà ˆà ˆà ˆà defˆà__init__(self,ˆàwidth=150,ˆàheight=70,ˆàstates=None): |
---|
23 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.width =ˆàwidth |
---|
24 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.height =ˆàheight |
---|
25 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàstates ==ˆàNone: |
---|
26 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.states =ˆà[State("Dead",ˆà'-',ˆà"white",ˆà'0',ˆà[5]), |
---|
27 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà State("Alive",ˆà'+',ˆà"black",ˆà'1',ˆà[0,ˆà1]ˆà+ˆàrange(4,ˆà9))] |
---|
28 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà else: |
---|
29 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.states =ˆàstates |
---|
30 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.symbols =ˆà{} |
---|
31 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.st_sym =ˆà{} |
---|
32 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆànum,ˆàst inˆàenumerate(self.states): |
---|
33 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.symbols[st.symbol]ˆà=ˆànum |
---|
34 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.st_sym[st.symbol]ˆà=ˆàst |
---|
35 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.field =ˆà[] |
---|
36 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(height): |
---|
37 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.field.append([]) |
---|
38 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(width): |
---|
39 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.field[row].append(self.states[0].symbol) |
---|
40 | |
---|
41 | ˆà ˆà ˆà ˆà defˆànext_step(self): |
---|
42 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed =ˆà[] |
---|
43 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(1,ˆàself.height -ˆà1): |
---|
44 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(1,ˆàself.width -ˆà1): |
---|
45 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà symbol =ˆàself.field[row][col] |
---|
46 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num =ˆà0 |
---|
47 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàvert inˆàrange(row -ˆà1,ˆàrow +ˆà2): |
---|
48 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàhoriz inˆàrange(col -ˆà1,ˆàcol +ˆà2): |
---|
49 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.field[vert][horiz]ˆà==ˆàsymbol: |
---|
50 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num +=ˆà1 |
---|
51 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.st_sym[symbol].next_state(num -ˆà1): |
---|
52 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed.append((row,ˆàcol)) |
---|
53 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
54 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(1,ˆàself.height -ˆà1): |
---|
55 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà symbol1 =ˆàself.field[row][0] |
---|
56 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà symbol2 =ˆàself.field[row][self.width -ˆà1] |
---|
57 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num1 =ˆà0 |
---|
58 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num2 =ˆà0 |
---|
59 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàvert inˆàrange(row -ˆà1,ˆàrow +ˆà2): |
---|
60 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàhoriz inˆà[0,ˆà1,ˆàself.width -ˆà1]: |
---|
61 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.field[vert][horiz]ˆà==ˆàsymbol1: |
---|
62 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num1 +=ˆà1 |
---|
63 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàhoriz inˆà[self.width -ˆà2,ˆàself.width -ˆà1,ˆà0]: |
---|
64 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.field[vert][horiz]ˆà==ˆàsymbol2: |
---|
65 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num2 +=ˆà1 |
---|
66 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.st_sym[symbol1].next_state(num1 -ˆà1): |
---|
67 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed.append((row,ˆà0)) |
---|
68 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.st_sym[symbol2].next_state(num2 -ˆà1): |
---|
69 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed.append((row,ˆàself.width -ˆà1)) |
---|
70 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
71 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(1,ˆàself.width -ˆà1): |
---|
72 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà symbol1 =ˆàself.field[0][col] |
---|
73 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà symbol2 =ˆàself.field[self.height -ˆà1][col] |
---|
74 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num1 =ˆà0 |
---|
75 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num2 =ˆà0 |
---|
76 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàhoriz inˆàrange(col -ˆà1,ˆàcol +ˆà2): |
---|
77 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàvert inˆà[0,ˆà1,ˆàself.height -ˆà1]: |
---|
78 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.field[vert][horiz]ˆà==ˆàsymbol1: |
---|
79 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num1 +=ˆà1 |
---|
80 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàvert inˆà[self.height -ˆà2,ˆàself.height -ˆà1,ˆà0]: |
---|
81 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.field[vert][horiz]ˆà==ˆàsymbol2: |
---|
82 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num2 +=ˆà1 |
---|
83 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.st_sym[symbol1].next_state(num1 -ˆà1): |
---|
84 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed.append((0,ˆàcol)) |
---|
85 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.st_sym[symbol2].next_state(num2 -ˆà1): |
---|
86 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed.append((self.height -ˆà1,ˆàcol)) |
---|
87 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
88 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow,ˆàcol inˆà[(0,ˆà0),ˆà(self.height -ˆà1,ˆàself.width -ˆà1), |
---|
89 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà (0,ˆàself.width -ˆà1),ˆà(self.height -ˆà1,ˆà0)]: |
---|
90 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà symbol =ˆàself.field[row][col] |
---|
91 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num =ˆà0 |
---|
92 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàvert_long inˆàrange(row +ˆàself.height -ˆà1,ˆà |
---|
93 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà row +ˆàself.height +ˆà2): |
---|
94 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàhoriz_long inˆàrange(col +ˆàself.width -ˆà1,ˆà |
---|
95 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà col +ˆàself.width +ˆà2): |
---|
96 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà vert =ˆàvert_long %ˆàself.height |
---|
97 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà horiz =ˆàhoriz_long %ˆàself.width |
---|
98 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.field[vert][horiz]ˆà==ˆàsymbol: |
---|
99 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà num +=ˆà1 |
---|
100 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.st_sym[symbol].next_state(num -ˆà1): |
---|
101 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà changed.append((row,ˆàcol)) |
---|
102 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
103 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow,ˆàcol inˆàchanged: |
---|
104 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà index =ˆà(self.symbols[self.field[row][col]]ˆà+ˆà |
---|
105 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà 1)ˆà%ˆà len(self.states) |
---|
106 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.field[row][col]ˆà=ˆàself.states[index].symbol |
---|
107 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà returnˆàchanged |
---|
108 | |
---|
109 | ˆà ˆà ˆà ˆà defˆàchange_size(self,ˆàvalue,ˆàside): |
---|
110 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà "0-up, 1-right, 2-down, 3-left" |
---|
111 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field =ˆà[] |
---|
112 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
113 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàside ==ˆà0: |
---|
114 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.height +=ˆàvalue |
---|
115 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(value): |
---|
116 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field.append([]) |
---|
117 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(self.width): |
---|
118 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.states[0].symbol) |
---|
119 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà init =ˆàvalue |
---|
120 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàvalue <ˆà0: |
---|
121 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà init =ˆà0 |
---|
122 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(init,ˆàself.height): |
---|
123 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field.append([]) |
---|
124 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(self.width): |
---|
125 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.field[row -ˆàvalue][col]) |
---|
126 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
127 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàside ==ˆà2: |
---|
128 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.height +=ˆàvalue |
---|
129 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà term =ˆàvalue |
---|
130 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàvalue <ˆà0: |
---|
131 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà term =ˆà0 |
---|
132 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(self.height -ˆàterm): |
---|
133 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field.append([]) |
---|
134 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(self.width): |
---|
135 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.field[row][col]) |
---|
136 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(self.height -ˆàterm,ˆàself.height): |
---|
137 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field.append([]) |
---|
138 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(self.width): |
---|
139 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.states[0].symbol) |
---|
140 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
141 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàside ==ˆà1: |
---|
142 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.width +=ˆàvalue |
---|
143 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà term =ˆàvalue |
---|
144 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàvalue <ˆà0: |
---|
145 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà term =ˆà0 |
---|
146 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(self.height): |
---|
147 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field.append([]) |
---|
148 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(self.width -ˆàterm): |
---|
149 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.field[row][col]) |
---|
150 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(self.height): |
---|
151 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(self.width -ˆàterm,ˆàself.width): |
---|
152 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.states[0].symbol) |
---|
153 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà |
---|
154 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàside ==ˆà3: |
---|
155 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.width +=ˆàvalue |
---|
156 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(self.height): |
---|
157 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field.append([]) |
---|
158 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(value): |
---|
159 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.states[0].symbol) |
---|
160 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà init =ˆàvalue |
---|
161 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ifˆàvalue <ˆà0: |
---|
162 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà init =ˆà0 |
---|
163 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàrow inˆàrange(self.height): |
---|
164 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà forˆàcol inˆàrange(init,ˆàself.width): |
---|
165 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà new_field[row].append(self.field[row][col -ˆàvalue]) |
---|
166 | ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.field =ˆànew_field |
---|