Блог пользователя Abra

Автор Abra, 12 лет назад, По-русски
Привет.

Внезапно (наверное, чтобы не готовиться к экзаменам =) решил накодить что-нибудь большое и интересное, чтобы серьезно, с контролем версий, интерфейсом и пр.) Выбрал в качестве платформы андроид, благо у меня есть телефон на нем, и я знаю Яву. 

Писать я решил клеточные автоматы - это интересно, и на маркете я не нашел приложения с тем функционалом, что я планировал реализовать.

Вот что получилось:

// извиняюсь за лого, нарисованное в 4 ночи в пейнте)

Фичи:
- относительно быстро считает
(самое эффективное, что придумал: для каждой клетки динамикой узнаем количество живых клеток в ее окрестности, знаем, живет она или умирает)
// интересно, можно ли быстрее?
- можно создать свои правила для клеточного автомата или выбрать существующие (Conway's Life, Day And Night, HighLife и много еще на выбор)
- можно создавать свои собственные паттерны или тоже выбрать существующий
- вес в 30 кб

Просьба качать, ставить, тестить и оценивать =)

И у меня такой вопрос к опытным в этом деле людям (такие, думаю, здесь найдутся =).
Как привлечь народ?

  • Проголосовать: нравится
  • +14
  • Проголосовать: не нравится

»
12 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Qr-Code:

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Э-э-э... Пардон, ты клетки хранишь в матрице Life#cells что ли? %)
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    да)
    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

      Это ж не тру подход! ;-)

      Я на первом курсе когда интересовался (в очередной раз) этой игрушкой, стал хранить только живые клетки в массиве, сортируя по одной из координат. Тогда шаг алгоритма занимает что-то вроде O(log(N)*sqrt(N))... (upd: я дурак, забыл что сортировка кой-чего тоже требует по времени - однако можно наверное в Heap хранить, чтобы не пересортировывать, как делал я) Очевидный плюс - игра на бесконечном поле - второй плюс - быстродействие не зависит от линейных размеров колонии (т.е. десяток разлетающихся в разные стороны планеров обрабатываются за понятное время). Очевидный гемор, впрочем, небольшой - поиск клеток, где должны зародиться организмы.

      Потом я поумнел, ужаснулся и переделал с хранением в хэш-таблице. Получилось немного хуже, но таблица была самодельная. Думаю, с HashMap<Cell> шансы будут отличные. ;-)

      По поводу "как привлечь народ", думаю, что шансов мало - эта забава популярна почти строго среди программистов, и то среди отнюдь не всех. Хотя считаю что это не должно смущать. Мне самому было её интереснее программировать, чем потом играть. %)

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Что это такое вообще? Есть ссылка на правила или описание игры?
  • »
    »
    12 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +22 Проголосовать: не нравится

    Это игра для 0 пользователей на которую были потрачены терраватты энергии и миллионы машино-часов (и баксов) во времена когда компы были большими. ;-)

    Life

    Жизнь (by Гарднер, по-русски)

    To Abrackadabra видишь, а ты людей завлекать хотел. ;-)

    Upd: пример эволюции одной из популярных конфигураций в Life (из той же википедии, для рекламы):


  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Нда, все стало ясно) Просто я тут, на физтехе, поспрашивал, все вроде знают =)

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У нас в школе (гы-гы, физ-тех школа при физтехе питерском) каждый четвёртый школьник пытался её писать, когда я там учился (и я конечно - тогда ещё тоже на матрице)... А сейчас спрашивал школьников (в той же школе), когда что-то им преподавал - один из десяти "что-то слышал"...