@@ -37,13 +37,17 @@ class GameBrain {
3737
3838 private var screen : CGSize !
3939
40- private var insets : CGPoint ! {
40+ private var fRect : CGRect ! {
4141 get {
42- let horizontal = ( screen. width % side) / 2
42+ let x = ( screen. width % side)
4343
44- let vertical = ( screen. height % side) / 2
44+ let y = ( screen. height % side)
4545
46- return CGPoint ( x: horizontal, y: vertical)
46+ let width = screen. width - x
47+
48+ let height = screen. height - y
49+
50+ return CGRect ( x: x/ 2 , y: y/ 2 , width: width, height: height)
4751 }
4852 }
4953
@@ -57,62 +61,54 @@ class GameBrain {
5761
5862 bordersArray. append ( border)
5963 }
60-
6164 return bordersArray
6265 }
6366 }
6467
6568 private func createBorders( ) {
66-
67- let width = screen. width - insets. x * 2
68-
69- let height = screen. height - insets. y * 2
7069
71- let leftBorder = CGRect ( x: insets . x, y: insets . y, width: side, height: height)
70+ let leftBorder = CGRect ( x: fRect . origin . x, y: fRect . origin . y, width: side, height: fRect . height)
7271
7372 bordersDictonary [ " Left " ] = leftBorder
7473
75- let rightBorder = CGRect ( x: screen. width - insets . x - side, y: insets . y, width: side, height: height)
74+ let rightBorder = CGRect ( x: screen. width - fRect . origin . x - side, y: fRect . origin . y, width: side, height: fRect . height)
7675
7776 bordersDictonary [ " Right " ] = rightBorder
7877
79- let topBorder = CGRect ( x: side + insets . x, y: insets . y, width: width, height: side)
78+ let topBorder = CGRect ( x: side + fRect . origin . x, y: fRect . origin . y, width: fRect . width, height: side)
8079
8180 bordersDictonary [ " Top " ] = topBorder
8281
83- let botBorder = CGRect ( x: side + insets . x, y: screen. height - insets . y - side, width: width, height: side)
82+ let botBorder = CGRect ( x: side + fRect . origin . x, y: screen. height - fRect . origin . y - side, width: fRect . width, height: side)
8483
85- bordersDictonary [ " Bot " ] = botBorder
84+ bordersDictonary [ " Bot " ] = botBorder
85+
86+ print ( bordersDictonary)
8687 }
8788
8889 var segments : [ GameSegment ] !
8990
90- private func createRandomSegment ( ) {
91+ private func randomPoint ( ) -> CGPoint {
9192
92- let side32 = side. convertToUInt32 ( )
93+ let side32 = side. toUInt32 ( )
9394
94- let width32 = screen . width. convertToUInt32 ( )
95+ let width32 = ( fRect . width - side * 2 ) . toUInt32 ( )
9596
96- let height32 = screen . height. convertToUInt32 ( )
97+ let height32 = ( fRect . height - side * 2 ) . toUInt32 ( )
9798
98- let randomMultiX = arc4random_uniform ( width32 / side32 - side32 )
99+ let randomMultiX = arc4random_uniform ( width32 / side32 - side . toUInt32 ( ) )
99100
100- let randomMultiY = arc4random_uniform ( height32 / side32 - side32 )
101+ let randomMultiY = arc4random_uniform ( height32 / side32 - side . toUInt32 ( ) )
101102
102- let newX : CGFloat = CGFloat ( randomMultiX) * side
103- let newY : CGFloat ! = CGFloat ( randomMultiY) * side
103+ let newX : CGFloat = CGFloat ( randomMultiX) * side + fRect . origin . x
104+ let newY : CGFloat ! = CGFloat ( randomMultiY) * side + fRect . origin . y
104105
105- let newPoint = CGPoint ( x: newX, y: newY)
106-
107- let newSegment = GameSegment ( point: newPoint, isEaten: false , side: side)
108- segments. append ( newSegment)
109-
110- print ( newPoint)
106+ return CGPoint ( x: newX, y: newY)
111107 }
112108
113109 private var direction : ( CGPoint ) !
114110
115- func setDefaultPosition ( defaultPosition : CGPoint , viewSize: CGSize ) {
111+ func setDefaults ( viewSize: CGSize ) {
116112
117113 //prepareView
118114 bordersDictonary = [ : ]
@@ -122,8 +118,7 @@ class GameBrain {
122118 //prepare segments
123119 segments = [ ]
124120 //main default point for the head
125- headPoint. x = defaultPosition. x
126- headPoint. y = defaultPosition. y
121+ headPoint = randomPoint ( )
127122
128123 //setting default direction
129124 setDirection ( " Up " )
@@ -133,7 +128,8 @@ class GameBrain {
133128 segments. append ( headSegment)
134129
135130 //create segment to eat
136- createRandomSegment ( )
131+ let newSegment = GameSegment ( point: randomPoint ( ) , isEaten: false , side: side)
132+ segments. append ( newSegment)
137133 }
138134
139135 func updateHead( ) {
@@ -153,9 +149,9 @@ class GameBrain {
153149 }
154150
155151 private func checkFood( ) {
156- let headRect = segments [ 0 ] . segmentRect ( )
152+ let headRect = segments [ 0 ] . rect ( )
157153
158- let redSegment = segments [ 1 ] . segmentRect ( ) //just check, can make an error
154+ let redSegment = segments [ 1 ] . rect ( ) //just check, can make an error
159155
160156 let isEaten = CGRectIntersectsRect ( headRect, redSegment)
161157
@@ -167,7 +163,7 @@ class GameBrain {
167163
168164extension CGFloat {
169165
170- func convertToUInt32 ( ) -> UInt32 {
166+ func toUInt32 ( ) -> UInt32 {
171167 return UInt32 ( self )
172168 }
173169}
0 commit comments