Домой Точки Алгоритмы

Игра точки, алгоритмы

Що тут буде?

Понятия не имею, что здесь будет, но могу сказать, чему точно места не найдётся. Здесь не будет никаких вырезок из кода, вообще ничего о технической стороне этого действа — написания программы. Здесь только алгоритмы и «человеческим языком», так сказать. Будем считать, что оформить алгоритм в код для таких реальных пацанов, как мы — вообще не вопрос.

Начало

В начале было слово... Шутка, на самом деле в начале была материя, а слово — результат мышления, которое, в свою очередь, результат деятельности высокоорганизованной материи (мозга)... Видите, как я из далека — чтоб понятно было. Так значит точки? Что есть, собственно, игра в точки? Я разделяю два принципиальных момента игры в точки — технический и ...нетехнический. В смысле, во-первых, у нас должен быть листок в клетку и разноцветные ручки (технический) и, во-вторых, мы должны знать правила игры (нетех... ну ладно, ладно). Научим комп для начала этому. Помня, что мы есть реальные чуваки — взяли окошко, разлиновали на клетки, сделали возможность ставить в перекрестия точки и в них только. Это всё неинтересно. Интересное — научить электрического болвана самостоятельно соединять точки в линии. Один важный момент. Второй момент — соединять только когда нужно, то есть, когда внутри есть чужие точки. Хорошо бы запретить ему обводить свои, но у меня вот не получилось чего-то. Ну вот, начало закончилось — идём учить нашего друга рисовать замкнутые линии.

Первое приближение

Учим рисовать замкнутые линии. Я чуть-чуть подумал и решил сделать весь ИИ как максимально близкую имитацию человеческого И. То есть как человек понимает, что пора бы уже и обвести? Ну смотрит глазами от одной точки к другой, от одной к другой, пока не нащупает (глазами же) замкнутую линию — вот и в моей программе так же — от каждой точки, по всем возможным путям, ходит наш бедный компьютер, пока не вернётся в ту, с которой всё начиналось... Романтично? А то! Долго, конечно, но ничего не поделаешь. Красота требует жертв. Брр... Какая красота? У нас точки! Ага. Ну всем уже во всей красе представилась, я думаю, не очень большая такая рекурсивная функция с условием рекурсии — следующая точка нужная (того же цвета, не захвачена, не та, с которой пришли и т. д., не помню, что там «т. д.»), а условием выхода — пришли куда надо (в начальную). Ещё нужно бы помечать те, в которых были, чтоб по кругу не ходить. Всё, что ли?.. Ну потом, когда нам функция вернёт, что нашла чего-то, мы по тем самым помечанным точкам прошвырнёмся, запишем адреса и сформируем отряд «линия» с последующим определением в «прорисовку». Шли мы по-порядку, записывали по-порядку, значит можно просто по-очереди коротенькой линией все соединить и делов, та. 

было-сталорис. «было-стало»

[почта]
Hosted by uCoz