Враховуючи набір плиток на сітці, я хочу визначити:
- Якщо плитки роблять укладену фігуру
- Якщо плитки роблять додану фігуру, коли ви рахуєте сторони дошки як край фігури
- Якщо будь-яке з попередніх двох тверджень істинне, які додаткові плитки потрапляють всередину доданої фігури, форму початкової плитки.
Гравець почне натискати на одну плитку, потім перетягнути палець на інші плитки, щоб створити ланцюжок з одноколірних плиток. Я перевірю, як піду, щоб побачити, чи дійсна наступна плитка. Вих. Якщо гравець починає на червоною черепицею, їх тільки на наступний дійсний хід до сусіднього червоною черепицею (діагоналей зробити підрахунок). Коли користувач піднімає палець, мені потрібно мати можливість перевірити 3 пункти вище.
Тож моя первісна думка полягала в тому, що, оскільки я перевіряв справність ланцюга щоразу, коли йшов, коли гравець піднімав палець, я міг перевірити, чи є перша та остання плитки сусідніми. (Я вже знаю, що вони одного кольору.) Якби вони були поруч, я мав уявлення, що я зробив вкладену фігуру, і я збирався приїхати сюди, щоб спробувати і побачити, чи не пропускаю я щось велике, і дістати якесь логічне / математичне підтвердження того, що моя думка була правильною (або приклад, що підтверджує її неправильність.)
Але саме тоді я подумав про предмет № 2: мені також доведеться враховувати ланцюги, які використовують край дошки як сторону доданої фігури. У такому випадку перший і останній пункт ланцюга не був би суміжним, але я все одно мав би вкладену фігуру. Тому зараз я повернувся до квадратного, трохи.
Що я можу зробити з цим ланцюжком координат сітки, щоб зрозуміти, чи роблять вони додану фігуру чи ні? І одного разу я дійсно знаю , що є додається фігура, що це кращий спосіб , щоб отримати додатковий список всіх плиток , які потрапляють в її межах?
Вище я намалював фотографії того, на що я очікую 4 можливі результати цього тесту.
Ланцюг не робить поставлену фігуру.
Ланцюг робить фігуру вкладеної.
Якщо ви рахуєте сторони дошки як край (або більше одного краю) фігури, ланцюг робить вкладену фігуру.
Ланцюг робить додану фігуру, але є додаткові точки даних (дійсно вибрані користувачем як частина ланцюга), які не є частиною створеної фігури.
Випадок 4 є найскладнішим, тому що вам доведеться витягнути "зайві" ланцюжки ланцюга, щоб знайти вкладену фігуру та шматки, які потрапляють всередину неї (але не навколо "незамкненої" області).
Отже ... У когось є ідея про хороший спосіб вирішити це, чи просто відправна точка для мене? Я начебто ходжу по колах у цей момент і можу використати інший набір очей.