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