diff --git a/fastlane/metadata/android/en-US/changelogs/24.txt b/fastlane/metadata/android/en-US/changelogs/24.txt new file mode 100644 index 0000000000000000000000000000000000000000..7454dff072f1545dfb562f15b2516bf45a9c96ec --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/24.txt @@ -0,0 +1 @@ +Fix collision detection. diff --git a/fastlane/metadata/android/fr-FR/changelogs/24.txt b/fastlane/metadata/android/fr-FR/changelogs/24.txt new file mode 100644 index 0000000000000000000000000000000000000000..17e735102127ad3fefa1a3c6fe3e5f04fda429bd --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/24.txt @@ -0,0 +1 @@ +Correction sur détection de collision. diff --git a/lib/models/activity/activity.dart b/lib/models/activity/activity.dart index 51260bda26d26d153a7a0030799798709fe112ee..2861a1f4c5f3641ab189c23dd620ce8dbcf0f12e 100644 --- a/lib/models/activity/activity.dart +++ b/lib/models/activity/activity.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:snake/models/activity/board.dart'; @@ -158,8 +160,11 @@ class Activity { return false; } + // first snake cell to check (end of tail), after next move + final int start = max(1, snake.cells.length - snake.size); + // check head is not looped on snake body - for (int i = 0; i < snake.cells.length - 1; i++) { + for (int i = start; i < snake.cells.length - 1; i++) { if (head.col == snake.cells[i].col && head.row == snake.cells[i].row) { return false; } diff --git a/pubspec.yaml b/pubspec.yaml index 5cecc9b3779c396e10626409133eaab2319c16c6..674ab5f501b6e4f7a16095693b10d11d26e3d6ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: snake game publish_to: "none" -version: 0.5.3+23 +version: 0.5.4+24 environment: sdk: "^3.0.0"