@@ -66,6 +66,34 @@ class GameBrain {
6666 }
6767 }
6868
69+ func setDefaults( ) {
70+
71+ //prepareView
72+ borders = [ ]
73+ createBorders ( )
74+
75+ //prepare segments
76+ snake = [ ]
77+ //main default point for the head
78+ headPoint = centerPoint ( )
79+
80+ //setting default direction
81+ setDirection ( " Up " )
82+
83+ //creating the head
84+ snake. append ( createHead ( ) )
85+ snake. append ( createHead ( ) )
86+ snake. append ( createHead ( ) )
87+
88+ //create segment to eat
89+ food = newSegment ( )
90+ }
91+
92+ init ( viewSize: CGSize ) {
93+ screen = viewSize
94+ setDefaults ( )
95+ }
96+
6997 private func newSegment( ) -> SnakeSegment {
7098 return SnakeSegment ( point: randomPoint ( ) , side: side)
7199 }
@@ -144,49 +172,19 @@ class GameBrain {
144172 private func createHead( ) -> SnakeSegment {
145173 let headSegment = SnakeSegment ( point: headPoint, side: side)
146174 headSegment. isEaten = true
147- headSegment. isHead = true
148175 return headSegment
149176 }
150177
151- func setDefaults( ) {
152-
153- //prepareView
154- borders = [ ]
155- createBorders ( )
156-
157- //prepare segments
158- snake = [ ]
159- //main default point for the head
160- headPoint = centerPoint ( )
161-
162- //setting default direction
163- setDirection ( " Up " )
164-
165- //creating the head
166- snake. append ( createHead ( ) )
167- snake. append ( createHead ( ) )
168- snake. append ( createHead ( ) )
169-
170-
171- //create segment to eat
172- food = newSegment ( )
173- }
174-
175- init ( viewSize: CGSize ) {
176- screen = viewSize
177- setDefaults ( )
178- }
179-
180178 func updateHead( ) {
181179
182180 headPoint. x += direction. x
183181 headPoint. y += direction. y
184182
185183 for border in borders {
186184
187- if border. rect ( ) . contains ( headPoint) {
188- // border.isEaten = true
185+ if border. rect. contains ( headPoint) {
189186
187+ print ( " Dead " )
190188 //add the death
191189 }
192190 }
@@ -196,22 +194,10 @@ class GameBrain {
196194
197195 private func moveHead( ) {
198196
199- guard let head = snake. first else {
200- return
201- }
202-
203- head. isHead = false
204-
205197 snake. insert ( createHead ( ) , atIndex: 0 )
206198
207199 snake. removeLast ( )
208200
209- guard let tail = snake. last else {
210- return
211- }
212-
213- tail. isTail = true
214-
215201 checkFood ( )
216202 }
217203
@@ -220,13 +206,11 @@ class GameBrain {
220206 return
221207 }
222208
223- let isEaten = CGRectIntersectsRect ( head. rect ( ) , food. rect ( ) )
209+ let isEaten = CGRectIntersectsRect ( head. rect, food. rect)
224210
225211 if isEaten {
226212
227- food. isHead = true
228- head. isHead = false
229- snake. append ( food)
213+ snake. insert ( food, atIndex: 0 )
230214
231215 food = newSegment ( )
232216 }
0 commit comments