Skip to content

Commit fa927d8

Browse files
committed
snake grows when eating
1 parent 1ef644d commit fa927d8

File tree

1 file changed

+13
-19
lines changed

1 file changed

+13
-19
lines changed

src/App.js

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,33 +56,31 @@ const applySnakePosition = (prevState) => {
5656

5757
// const snakeCoordinatesWithoutLast = prevState.snake.coordinates.slice()
5858

59+
const snakeHead = DIRECTION_TICKS[prevState.controls.direction](
60+
prevState.snake.coordinates[0].x,
61+
prevState.snake.coordinates[0].y,
62+
);
63+
64+
const isSnakeEating = getIsSnakeEating(prevState);
65+
const snakeTail = isSnakeEating
66+
? prevState.snake.coordinates
67+
: prevState.snake.coordinates.slice(0, prevState.snake.coordinates.length - 1)
68+
5969
return {
6070
snake: {
61-
coordinates: [
62-
DIRECTION_TICKS[prevState.controls.direction](
63-
prevState.snake.coordinates[0].x,
64-
prevState.snake.coordinates[0].y,
65-
),
66-
// ...prevState.snake.coordinates,
67-
],
71+
coordinates: [snakeHead].concat(snakeTail)
6872
},
6973
};
7074
};
7175

72-
const applySnakeAte = (prevState) => ({
73-
snake: {
74-
75-
},
76-
});
77-
7876
const doChangeDirection = (direction) => () => ({
7977
controls: {
8078
direction,
8179
},
8280
});
8381

84-
const isSnakeEating = ({ snake, snack }) =>
85-
isPosition(snake.coordinates[0].x, snack.coordinate.x) && isPosition(snake.coordinates[0].y, snack.coordinate.y);
82+
const getIsSnakeEating = ({ snake, snack }) =>
83+
isPosition(snake.coordinates[0].x, snake.coordinates[0].y, snack.coordinate.x, snack.coordinate.y)
8684

8785
class App extends Component {
8886
constructor(props) {
@@ -121,10 +119,6 @@ class App extends Component {
121119
}
122120

123121
onTick = () => {
124-
// if (isSnakeEating(this.state)) {
125-
// this.setState(applySnakeAte);
126-
// }
127-
128122
this.setState(applySnakePosition);
129123
}
130124

0 commit comments

Comments
 (0)