From 83c2ffe69d4e03665a488487b7847256af5cf0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Thu, 31 Oct 2024 16:17:36 +0100 Subject: [PATCH] Fix check looped snake --- fastlane/metadata/android/en-US/changelogs/24.txt | 1 + fastlane/metadata/android/fr-FR/changelogs/24.txt | 1 + lib/models/activity/activity.dart | 7 ++++++- pubspec.yaml | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/24.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/24.txt 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 0000000..7454dff --- /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 0000000..17e7351 --- /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 51260bd..2861a1f 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 5cecc9b..674ab5f 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" -- GitLab