Comments 85
А где картинки?
+5
Тебе свой комп не жалко?)
-1
Не жалко, но я такого не ожидал :-)
~$ uptime
10:22AM up 35 days, 18:21, 11 users, load averages: 1.02, 0.89, 0.80
~$ uptime
10:22AM up 35 days, 18:21, 11 users, load averages: 1.02, 0.89, 0.80
+1
На текущий момент одновременно идёт более ста скачиваний! 8-O
Я буду раздавать дистрибутивы ещё недели две, а то и месяц. Кто не смог скачать сейчас — возращайтесь завта, думаю, основной наплыв скачиваний спадёт. Сейчас я остановил раздачу торентов. Весь мой скромный канал отдан хабражителям :-)
Я буду раздавать дистрибутивы ещё недели две, а то и месяц. Кто не смог скачать сейчас — возращайтесь завта, думаю, основной наплыв скачиваний спадёт. Сейчас я остановил раздачу торентов. Весь мой скромный канал отдан хабражителям :-)
0
Чот 10 игр, 10 побед, скучна как-то
+1
Нуу… 10 из 10 — это вам везёт :-) Но сейчас человек выигрывает действительно чаще 50%. Дело в том, что компутер смотрит на один ход вперёд. Он старается сделать наиболее разумно текущий выстрел. Он не старается простроить стратегию игры. Реализация стратегии — следующий шаг.
0
Даёшь сетевую! Одному и в правду скучновато. Я после 5ти игр сдался.
0
играет честно (то есть, при выдумывании хода, компьютер не подглядывает в ваше поле)
а что в других реализациях он подглядывает? никогда бы не подумал…
а что в других реализациях он подглядывает? никогда бы не подумал…
-1
Не думали «обучить» программу? заставить компьютер поиграть с самим собой, или с пользователями, и выудить из результатов несколько тактик, приводящих к успеху?
Ну и грабить корованы тоже неплохая идея ))
Ну и грабить корованы тоже неплохая идея ))
+1
Это очень обширная тема. Есть несколько наработок. Самое интересное, заставить комп собирать статистику: как пользователь расставляет корабли. На пример, компутер может прочухать, что пользользователь никогда не ставит ничего на A1… Можно заставить компутер подражать пользователю, когда он (компутер) расставляет свои корабли; скажем, придерживать тактики «все корабли — в кучу»… Но оказывается, что игра становится менее интересной. Она становится более предсказуемой. Я не смог придумать такую обучаемость, которая делала бы игру интересней. Но думать продолжаю.
0
картинки накрылись :(
+1
НУ и нахрена было не выложить на какой-нить файлообменник (хотя бы?), эдак по 700 байт в секунду долго тянуть будем…
Какой канал в инет у стрима, это ж адсл, да еще не симметричный? Издевательство.
Какой канал в инет у стрима, это ж адсл, да еще не симметричный? Издевательство.
+1
Я даже из принципа «поддержать» хотел скачать, но при паре байтов в секунду это невозможно =(
0
Ну потому, что сотни народу тянут одновременно. Извините, не ожидал такого резонанаса. Сделайте закладку — приходите вечером.
Мне кажется, что уже позжно перекладывать на файлообменник — хабраэффект спадает за несклько часов.
Мне кажется, что уже позжно перекладывать на файлообменник — хабраэффект спадает за несклько часов.
0
UFO just landed and posted this here
За то время, за которое скачивался ваш морской бой, можно было жизнь прожить.
0
UFO just landed and posted this here
Чем вам файлообменный хостинг не понравился?? disk.yandex.ru к примеру! выложите туда, кто уже скачал, пожалуйста!
+2
>> Никак не мог ожидать такого качалова
До сих пор еле тянется… Попробуйте torrent-трекер временно поднять — разгрузите себе сеть.
До сих пор еле тянется… Попробуйте torrent-трекер временно поднять — разгрузите себе сеть.
0
Камрады, подскажите, у одного меня picamatic.com сдох?
0
а почему GAE не вдохновил?
+1
Приведу только два самых больших недостатка.
Со стороны пользователя основной минус — тормоза. По крайней мере год назад оно очень тормозило на абсолютно ровных местах.
Со стороны разработчика — жутко неудобно, что нельзя выгрузить сорцы. Ну неужели нельзя было прикрутить SVN? Это же элементарная культура!
Когда они это доделают — буду пользоваться, а пока… не вдохновляет.
Со стороны пользователя основной минус — тормоза. По крайней мере год назад оно очень тормозило на абсолютно ровных местах.
Со стороны разработчика — жутко неудобно, что нельзя выгрузить сорцы. Ну неужели нельзя было прикрутить SVN? Это же элементарная культура!
Когда они это доделают — буду пользоваться, а пока… не вдохновляет.
+1
Есть стратегия достаточно простая и эффективная
но конечно не 100% выигрыш,
(НЕ основанная на подглядывании и нейросетях)
человек готов ее изложить и оформить за инвайт на хабре.
опять же при условии что автор ее возьмет на вооружение.
но конечно не 100% выигрыш,
(НЕ основанная на подглядывании и нейросетях)
человек готов ее изложить и оформить за инвайт на хабре.
опять же при условии что автор ее возьмет на вооружение.
0
> при условии что автор ее возьмет на вооружение
а вы уверены, что я не использую именно её? ,-)
а вы уверены, что я не использую именно её? ,-)
0
по-моему принцип «утром деньги, вечером стулья» на хабре не катит.
какбэ для таких дел есть песочница же
какбэ для таких дел есть песочница же
+1
имелось ввиду как раз деньги после стульев.
т.е. если понравилось и будет использоваться целиком или ее часть.
но нужно согласие и наличие свободного инвайта.
сейчас в программе используется не эта стратегия.
т.е. если понравилось и будет использоваться целиком или ее часть.
но нужно согласие и наличие свободного инвайта.
сейчас в программе используется не эта стратегия.
0
скорее нужен человек, который скажет, что
готов дать инвайт за интрересную стратегию игры,
если она ему понравится.
(или наберет сколько-то плюсов)
готов дать инвайт за интрересную стратегию игры,
если она ему понравится.
(или наберет сколько-то плюсов)
0
расстановка по краям поля?:)
0
UFO just landed and posted this here
на мой взгляд поле слишком мелкое, вот бы возможность растянуть окошко побольше а то целиться приходится в клеточки. В принципе комп играет нормально, но со стратегией расстановки по краям поля я его всегда выигрываю, т.к. в первой половине игры краям уделяется очень мало внимания.
+1
Такие вещи делаются уже как сервисы. Вот это я написал году так 1999: www.rt.mipt.ru/~ivan/SeaBattle/
Аналогично, честный AI. Сорцы где-то есть если поискать. Написано на java, если бы делал сейчас то на javascript. Винды нет, так что чесно скажу вашу програму не запускал.
Аналогично, честный AI. Сорцы где-то есть если поискать. Написано на java, если бы делал сейчас то на javascript. Винды нет, так что чесно скажу вашу програму не запускал.
0
не хватает сообщения типа you win или you lose
0
и надо убрать возможность стрелять по территории около уже потопленных кораблей
0
Замечание принято
0
Если кто-нибудь сделает сборку под Мак, киньте ссылку =)
0
Упомянутое в upd3 некомпилирование по причине непроприсанной stdlib.h в arena.cpp вылезло и у меня, под виндой в qt creator'е «из коробки».
Windows XP SP3, Qt Creator 1.3.0, Qt 4.6.0, компилировал g++, собирал mingw32-make.
Что понравилось: Очень меня порадовало автозаполнение поля (с кучей вариантов). Комп играл примерно на одном уровне со мной.
Что не понравилось: нелогичные цвета для кораблей (красный — подбит, жёлтый — потоплен), ИМХО, логичней было бы наоборот, невозможность растянуть окошко.
Какие идеи у меня есть: «конструктор» с готовыми кораблями, чтобы не требовалась проверка перед началом игры, а просто можно было расставить нужное количество кораблей нужного типа с соблюдением границ и т.п. Ну или просто программа не давала бы нарисовать неверно корабли, изначально. Т.к. я постоянно норовил пририсовать себе лишний кораблик, а то и два, а программа не говорила мне, ЧЯДНТ :-)
Windows XP SP3, Qt Creator 1.3.0, Qt 4.6.0, компилировал g++, собирал mingw32-make.
Что понравилось: Очень меня порадовало автозаполнение поля (с кучей вариантов). Комп играл примерно на одном уровне со мной.
Что не понравилось: нелогичные цвета для кораблей (красный — подбит, жёлтый — потоплен), ИМХО, логичней было бы наоборот, невозможность растянуть окошко.
Какие идеи у меня есть: «конструктор» с готовыми кораблями, чтобы не требовалась проверка перед началом игры, а просто можно было расставить нужное количество кораблей нужного типа с соблюдением границ и т.п. Ну или просто программа не давала бы нарисовать неверно корабли, изначально. Т.к. я постоянно норовил пририсовать себе лишний кораблик, а то и два, а программа не говорила мне, ЧЯДНТ :-)
+1
Спасибо за конструктивный коммент!
1) А какие цвета вы считаете логичными? Я пробовал некоторые схемы и сразу скажу: схема «потоплен-красный; ранен-жёлтый» не очень удобная, так как жёлтый меньше бросается в глаза, а именно его-то и надо добивать. карсный же маячит совершенно зазря. Схема «ранен-красный; потоплен-чёрный» лучше… но мрачновата :-) Вы можете поиграться с цветами в файле src/gui/flags_colors.cpp (первые же строчки, там RGB-цвета). Присылайте ваши варианты! А вообще, надо бы скины сделать :-) но это в следующей версии.
2) Про конструктор я не очень понял, но я пробовал делать, чтобы человека контролировало при каждом тыке при расстанове кораблей. И это оказалось не удобно. Прежде чем что-то поставить надо что-то стереть. А со стиранием может быть проблема. Скажем вы уже поставили все однотрудные, и хотите поставить двухтрубный… но для этого надо поставить первую трубу, а это однорубный, а их уже ставить нельзя :-) Или у вас стоят все корабли, но вы хотите убрать трёхтрубный, но стереть трубу не можете, пока у вас стоят все двухтрубные… В общем, полный затык :-)
1) А какие цвета вы считаете логичными? Я пробовал некоторые схемы и сразу скажу: схема «потоплен-красный; ранен-жёлтый» не очень удобная, так как жёлтый меньше бросается в глаза, а именно его-то и надо добивать. карсный же маячит совершенно зазря. Схема «ранен-красный; потоплен-чёрный» лучше… но мрачновата :-) Вы можете поиграться с цветами в файле src/gui/flags_colors.cpp (первые же строчки, там RGB-цвета). Присылайте ваши варианты! А вообще, надо бы скины сделать :-) но это в следующей версии.
2) Про конструктор я не очень понял, но я пробовал делать, чтобы человека контролировало при каждом тыке при расстанове кораблей. И это оказалось не удобно. Прежде чем что-то поставить надо что-то стереть. А со стиранием может быть проблема. Скажем вы уже поставили все однотрудные, и хотите поставить двухтрубный… но для этого надо поставить первую трубу, а это однорубный, а их уже ставить нельзя :-) Или у вас стоят все корабли, но вы хотите убрать трёхтрубный, но стереть трубу не можете, пока у вас стоят все двухтрубные… В общем, полный затык :-)
0
Многотрубные можно (нужно?) ставить не собирая их «по одной трубе», а сразу целиком. Тогда не случится описанных Вами проблем.
0
Тогда нужно делать какой-то механизм выбора корабля. Причём понятный механизм; ибо никто не станет перед игрой читать инструкцию. Кроме того, проблема остаётся: Если сразу корабли расставить не удалось, то их захочется подвигать. Если контролировать каждое дижение, то может оказаться, что чтобы поменять местами трёхтрубный и четырёхтрубный, их надо на время поставить поперёк существующих, а это — нельзя… В общем, я долго думал сам и экспериментировал на окружающих :-) Человеку проще всего просто нарисовать корабли, как он это делат на бумаге — по клеточкам. По крайней мере, я не смог найти ничего лучшего.
0
>Тогда нужно делать какой-то механизм выбора корабля.
Да. Что-нибудь в виде тулбара или меню.
>Если контролировать каждое дижение, то может оказаться, что чтобы поменять местами трёхтрубный и четырёхтрубный, их надо на время поставить поперёк существующих, а это — нельзя…
Можно один из них временно удалить, переставить второй, вернуть первый обратно. В принципе, могу на досуге попробовать набросать черновичок конструктора. Так, как его вижу.я :)
Да. Что-нибудь в виде тулбара или меню.
>Если контролировать каждое дижение, то может оказаться, что чтобы поменять местами трёхтрубный и четырёхтрубный, их надо на время поставить поперёк существующих, а это — нельзя…
Можно один из них временно удалить, переставить второй, вернуть первый обратно. В принципе, могу на досуге попробовать набросать черновичок конструктора. Так, как его вижу.я :)
0
> Да. Что-нибудь в виде тулбара или меню.
Вот и получается, что вместо очевидного тыка туда, где хочется поставить корабль, требуется совершенно неочевидный поход в меню :( Сейчас вся игра управляется тремя кнопками, а тут появится такой наворот… поймёт ли это пользователь, который хочет просто поиграть?
> Можно один из них временно удалить, переставить второй, вернуть первый обратно.
Причём вернуть придётся через тот поход в меню… И как удалить? Правой кнопкой (левая, наверно будет двигать)?
> В принципе, могу на досуге попробовать набросать черновичок конструктора.
Если у вас хватит куража и вы его набросаете — дайте знать; мне было бы интересно посмотреть.
(я спорю не потому, что хочу потроллить :-) а потому, что надеюсь найти лучшее решение)
Вот и получается, что вместо очевидного тыка туда, где хочется поставить корабль, требуется совершенно неочевидный поход в меню :( Сейчас вся игра управляется тремя кнопками, а тут появится такой наворот… поймёт ли это пользователь, который хочет просто поиграть?
> Можно один из них временно удалить, переставить второй, вернуть первый обратно.
Причём вернуть придётся через тот поход в меню… И как удалить? Правой кнопкой (левая, наверно будет двигать)?
> В принципе, могу на досуге попробовать набросать черновичок конструктора.
Если у вас хватит куража и вы его набросаете — дайте знать; мне было бы интересно посмотреть.
(я спорю не потому, что хочу потроллить :-) а потому, что надеюсь найти лучшее решение)
0
Вот тут набросал кой-чего: pastebin.com/m3fb1ec45
Чтобы посмотреть, код нужно сохранить в отдельный файл (например, editor.cpp) и использовать в качестве главного файла (вместо fairseabattle.cpp).
Сделано несколько хаков, но цель была показать основную идею, а не чётко вписаться в существующую концепцию :)
1. сделал свой собственный класс для главного поля (ConstructorField вместо ArenaWidget) — лень было разбираться, как у Вас хранятся поля :)
2. сделал публичным метод void ArenaCellWidget::set_color(QColor const &); чтобы быстро перерисовывать клетки в нужный цвет
Вроде бы всё.
Длина корабля выбирается кнопкой на тулбаре. Поворот — с клавы, кнопка «R» (в принципе можно кнопкам выбора кораблей добавить выпадающее меню с вертикальным и горизонтальным вариантом).
Что нужно доделать (если захотите воспользоваться концепцией):
1. нужно считать количество уже установленных кораблей и делать соответствующую кнопку неактивной, если количество достигло разрешённого (при удалении, соответственно, возвращать обратно)
2. более строго выбирать разрешённые поля — у меня сейчас можно ставить корабли вплотную :)
3. починить баг с поворотом корабля, когда курсор находится вблизи уже существующего корабля
4. много других багов… :)
Чтобы посмотреть, код нужно сохранить в отдельный файл (например, editor.cpp) и использовать в качестве главного файла (вместо fairseabattle.cpp).
Сделано несколько хаков, но цель была показать основную идею, а не чётко вписаться в существующую концепцию :)
1. сделал свой собственный класс для главного поля (ConstructorField вместо ArenaWidget) — лень было разбираться, как у Вас хранятся поля :)
2. сделал публичным метод void ArenaCellWidget::set_color(QColor const &); чтобы быстро перерисовывать клетки в нужный цвет
Вроде бы всё.
Длина корабля выбирается кнопкой на тулбаре. Поворот — с клавы, кнопка «R» (в принципе можно кнопкам выбора кораблей добавить выпадающее меню с вертикальным и горизонтальным вариантом).
Что нужно доделать (если захотите воспользоваться концепцией):
1. нужно считать количество уже установленных кораблей и делать соответствующую кнопку неактивной, если количество достигло разрешённого (при удалении, соответственно, возвращать обратно)
2. более строго выбирать разрешённые поля — у меня сейчас можно ставить корабли вплотную :)
3. починить баг с поворотом корабля, когда курсор находится вблизи уже существующего корабля
4. много других багов… :)
0
Спасибо!
Первые два вопроса :-)
1) Я всё же не очень понял, как его прикрутить и что такое main.moc (последняя строка)
2) Судя по описанию, идея стОящая. Я пока всё же хочу остановиться, стабилизировать то, что есть, а потом двинуться дальше. Но вашу идею я бы хотел поместить в SVN в devel. Себе и другим разработчикам на заметку. Вы не возражаете? Как вас представить в README? Или напишите какой-нибудь copyright в сорцах что-ли, а то будет выглядеть, не красиво, как буд-то я умалчиваю имена контрибьюторов :-)
Первые два вопроса :-)
1) Я всё же не очень понял, как его прикрутить и что такое main.moc (последняя строка)
2) Судя по описанию, идея стОящая. Я пока всё же хочу остановиться, стабилизировать то, что есть, а потом двинуться дальше. Но вашу идею я бы хотел поместить в SVN в devel. Себе и другим разработчикам на заметку. Вы не возражаете? Как вас представить в README? Или напишите какой-нибудь copyright в сорцах что-ли, а то будет выглядеть, не красиво, как буд-то я умалчиваю имена контрибьюторов :-)
0
Почти понял вашу задумку. Вот как я вижу добавку вашего прототипа в devel-дерево
user.rol.ru/~alvm/editor-10-01-12.tgz
там я уже сделал хакнутый публичный set_color, но всё равно пока не собирается. Глянте… я на main.moc грешу :-)
user.rol.ru/~alvm/editor-10-01-12.tgz
там я уже сделал хакнутый публичный set_color, но всё равно пока не собирается. Глянте… я на main.moc грешу :-)
0
Это http://user.rol.ru/~alvm/editor-10-01-12-1.tgz уже собирается, и немного работает, но сигфолтится при нажатии на R.
0
Сейчас гляну и попробую сделать в виде патча относительно текущего свн, чтобы тарболами не заморачиваться.
0
Сделал: pastebin.com/m3a284901 (дифф относительно ревизии 4 из svn)
1. Сохраняем в основной каталог под именем, скажем, editor.patch
2. Делаем patch -p0 < editor.patch
3. qmake && make && ./fairseabattle
Запуск редактора сделан отдельной кнопкой на тулбаре, основной код не затронут. «Хакнутый» класс вынесен в отдельный namespace, так что основной код, опять же, не потревожен.
1. Сохраняем в основной каталог под именем, скажем, editor.patch
2. Делаем patch -p0 < editor.patch
3. qmake && make && ./fairseabattle
Запуск редактора сделан отдельной кнопкой на тулбаре, основной код не затронут. «Хакнутый» класс вынесен в отдельный namespace, так что основной код, опять же, не потревожен.
0
Гаццкий pastebin… префикс "@@" в строке он, видите ли, интерпретирует как собственную команду, а то, что это служебные символы в дифф-ах, ему почему-то неведомо :)
Не копируйте текст со страницы, жмите лучше «download» — скачается нормально, без пропущенных символов.
Не копируйте текст со страницы, жмите лучше «download» — скачается нормально, без пропущенных символов.
0
Что-то «изкоробки» не заработало
src/editor/arenawidget_hacked.cpp:320: error: redefinition of 'Hacked::ArenaCellWidget::ArenaCellWidget(QWidget*, Qt::WindowFlags)'
буду разбираться. В любом случае спасибо!
src/editor/arenawidget_hacked.cpp:320: error: redefinition of 'Hacked::ArenaCellWidget::ArenaCellWidget(QWidget*, Qt::WindowFlags)'
буду разбираться. В любом случае спасибо!
0
Не-не-не! отставить! Всё работает! :-)
Положу этот патч в исходники с инструкцией. Пусть люди посмотрят, кому интересно. Возможно что-то посоветуют, или доделают, или просто мне на память будет потому, что идея хороша. Мне кажется, что так расставлять проще. Надо оттестировать на людях :-)
Положу этот патч в исходники с инструкцией. Пусть люди посмотрят, кому интересно. Возможно что-то посоветуют, или доделают, или просто мне на память будет потому, что идея хороша. Мне кажется, что так расставлять проще. Надо оттестировать на людях :-)
0
насчет нелогичности, было бы здорово сделать чтобы настройки (вариант игры, кто первый ходит, скорость) сохранялись при закрытии
0
На первый взгляд могу сказать следующее: слишком много цветов — рассеивается внимание. Цветов должно быть три — красный(подбитые) синий(отсутствие) и серый(неизвестная зона).
Разница в цвете между выстрелом, и просто окружением корабля — не несёт никакой информационной нагрузки — удобнее было бы просто синим. Плюс было бы здорово, если бы убитый корабль — состоял из белых квадратиков, зачёркнутых красным крестом (как в детстве) — это касается как своих кораблей так и врага.
А так если бы не радуга — отличная вещь!
Разница в цвете между выстрелом, и просто окружением корабля — не несёт никакой информационной нагрузки — удобнее было бы просто синим. Плюс было бы здорово, если бы убитый корабль — состоял из белых квадратиков, зачёркнутых красным крестом (как в детстве) — это касается как своих кораблей так и врага.
А так если бы не радуга — отличная вещь!
0
Жаль, что не на русском языке.
0
А Вам не известны программы, позволяющие играть двум компьютерным противникам? Было бы интересно сравнить разные стратегии…
0
Чуть подшаманил, что бы с Qt5 собиралось и ворнингов не было: https://github.com/h4tr3d/fairseabattle
+1
Sign up to leave a comment.
Морской бой с искусственным интеллектом — по-честному