Взгляните на некоторые алгоритмы генерации лабиринтов - они делают то же самое, что и вы, и как таковые - то, что вам нужно для создания сетки.Выберите простой «клеточный резчик» из тех, с которыми я связан;случайным образом вращайте все фрагменты, et voilà!
В комментарии к вашему вопросу отмечается, что превращение алгоритма в код предполагает его разбивку на куски - так мы и сделаем:
Вы начнете с сетки потенциальных мест расположения проводов (возможно, 2D, но 3D-игра была бы потрясающей).
Чтобы создать разрешимый уровень, вы могли бы сделать пару вещей - создать уровень и посмотреть, является ли он разрешимым (плохим) или создать решаемый уровень, а затем «разгадать» его (лучше).Как я упоминал выше, создание решенного уровня включает в себя алгоритмы, очень похожие на создание лабиринта - у решенного уровня будет много проходимых «путей», как в лабиринте.Разрушение уровня будет просто проходить через все кусочки проволоки и немного их вращать.
Но как насчет создания лабиринта?Ресурс, на который я ссылаюсь, содержит несколько алгоритмов, которые идеально подходят для вашего использования - простой рандомизированной DFS должно хватить для ваших нужд.
Вы заметите, что я рассмотрел общий случай, связанный с разветвленными проводами - какэто означает, что исключение ветвления означает, что вам нужно больше кодировать, чтобы интеллектуально «обрезать» ветки - то есть возвращение назад, когда ваш единственный истинный путь застрял, скажем, в углу, из-за случайного движения, вероятно, необходимого для создания интересного уровня.
Вы также должны заметить, что решение для такой игры, если я правильно понял, потребовало бы использования всего данного провода (я знаю некоторые игры, подобные этой).В противном случае в игру, возможно, было бы намного проще играть, учитывая тактику вышеупомянутого поколения.