MCPcopy Create free account
hub / github.com/codemistic/Data-Structures-and-Algorithms / move_snake

Function move_snake

CPP/Problems/maze_game.c:101–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99}
100
101void move_snake(int snk[2], int ply[2], char maze[l][w])
102{
103 int x = snk[0];
104 int y = snk[1];
105
106 maze[x][y] = ' ';
107 int num = 0;
108 int dist = 1e8;
109
110 // If chaser move up
111 if (maze[x - 1][y] != 'O' && maze[x - 1][y] != 'X' && x - 1 > 0)
112 {
113 int diff = abs(ply[0] - (x - 1)) + abs(ply[1] - (y));
114 if (diff < dist)
115 {
116 dist = diff;
117 num = 1;
118 }
119 }
120
121 // If chaser move down
122 if (maze[x + 1][y] != 'O' && maze[x + 1][y] != 'X' && x + 1 < l - 1)
123 {
124 int diff = abs(ply[0] - (x + 1)) + abs(ply[1] - (y));
125 if (diff < dist)
126 {
127 dist = diff;
128 num = 2;
129 }
130 }
131
132 // If chaser move right
133 if (maze[x][y + 1] != 'O' && maze[x][y + 1] != 'X' && y + 1 < w - 1)
134 {
135 int diff = abs(ply[0] - x) + abs(ply[1] - (y + 1));
136 if (diff < dist)
137 {
138 dist = diff;
139 num = 3;
140 }
141 }
142
143 // If chaser move left
144 if (maze[x][y - 1] != 'O' && maze[x][y - 1] != 'X' && y - 1 > 0)
145 {
146 int diff = abs(ply[0] - x) + abs(ply[1] - (y - 1));
147 if (diff < dist)
148 {
149 dist = diff;
150 num = 4;
151 }
152 }
153
154 if (num == 1)
155 {
156 snk[0]--;
157 }
158 else if (num == 2)

Callers 1

playFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected