Перейти к публикации
Форум - ComputerCraft
Nezn

Морской Бой

Рекомендованные сообщения

battleship-630x300.jpg
Всем привет!


Получив совет от опытных пользователей форума, я сразу же скачал себе мод OpenComputers и стал его изучать. Уже появились некоторые идеи по программам, но пока не могу реализовать, так как недостаточно знаний. Пока что выкладываю первую программу, альфа версия, будет дорабатываться


Наверное, все знают игру морской бой, поэтому не надо объяснять, как в неё играть.
Пока что сделал только против компьютера, но планирую сделать и между игроками.

Видео довольно скучное, можно его не смотреть, там просто демонстрация
http://youtube.com/watch?v=-8S1a27ykxc
 

 

Скриншоты:


UostCOa.png
Установка кораблей, можно перетаскивать или просто нажать кнопку
 
SyNfUhf.png
При минимальных настройках
 
lWYiZ7R.png
Сам процесс игры (попаданияпромахи)
 
peUMdqU.png
Или победа


 

 

 

 

Запуск:

pastebin run vyjzpm9y 

Есть два необязательных аргумента.
Первый аргумент - fast, он включает минимальные настройки, при которых поле выглядит не как шашечка, а как сплошной синий цвет.
Второй - notime, это временный аргумент, он исчезнет в релизе. Позволяет убрать задержки после хода компьютера.
Примеры запуска с аргументами

pastebin run vyjzpm9y fast 
pastebin run vyjzpm9y _ notime  
pastebin run vyjzpm9y fast notime 

 
Требования:

  • Компьютер 2 уровня
  • Графическая карта 2 уровня
  • Память 1.5 уровня
  • Монитор 2 уровня

Рекомендуемые:

  • Компьютер 3 уровня
  • Графическая карта 3 уровня
  • Память 1.5 уровня
  • Процессор 3 уровня

oGznXLr.png
 

 

Планы разработки:

  1. Улучшить GUI
  2. Попытаться оптимизировать
  3. Добавить возможность играть против игроков
  4. Добавить поддержку английского языка
  5. Добавить возможность поворота кораблей
  6. Сделать игру компьютера умной
  7. ...

 

 

Исходный код: ссылка

 

Прошу писать о найденных багах, если кто-то этим пользоваться вообще будет, ну а также не откажусь от советов и рекомендаций.

Изменено пользователем Nezn
  • Like 9

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Шикарно!

Сделай режим "игрок vs игрок" на OpenNet. Недавно как раз была идея такая: в датацентре стоит сервер с логинами/паролями, который обслуживает игроков, прога-клиент может запрашивать список игроков, ожидающих игру, попасть в список ожидающих и выбрать другого игрока. Потом сервер просто обменивает сообщения клиентов.

За такое и медаль выдать можно!

Изменено пользователем MineUbuntu

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Шикарно!

Сделай режим "игрок vs игрок" на OpenNet. Недавно как раз была идея такая: в датацентре стоит сервер с логинами/паролями, который обслуживает игроков, прога-клиент может запрашивать список игроков, ожидающих игру, попасть в список ожидающих и выбрать другого игрока. Потом сервер просто обменивает сообщения клиентов.

За такое и медаль выдать можно!

Спасибо, примерно так и хотел, но сначала нужно сделать хотя бы между двумя игроками. Попробую разобраться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, примерно так и хотел, но сначала нужно сделать хотя бы между двумя игроками. Попробую разобраться.

 GUI красивое,делай между двумя игроками,а потом можешь что-бы па адресу через OpenNet играть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Комп не учитывает добивание кораблей и правила одного поля буфера между кораблями? Просто рандомит по полю 10x10?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Просто рандомит по полю 10x10?
 

Да, я пока думаю над этим

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделай так что, если ии попал по твоему кораблю он начал, в соседние клетки стрелять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Сделай так что, если ии попал по твоему кораблю он начал, в соседние клетки стрелять.
 

Пока что это в разработке, придумываю оптимальный вариант

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для морского боя немного не хватает зрелищности. Я бы, будучи на твоём месте, проигрывал разные весёлые звуки, и рисовал бы при победе весолого человечка, а при поражении злого.

 

Например при промахе ничего не пищать, при попадании пикать весёлым звуком, при победе проигрывать песенку и при поражении тоже песенку, только грустную.

 

А то сидишь и тыкакшь по экранчику, скучно, а со звуками будет весело, ИМХО.

Изменено пользователем Rab

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

проигрывал разные весёлые звуки, и рисовал бы при по беде весолово человечка, а при поражении злого.

Я о возможности проигрывать звуки только что узнал :D 

Попробую что-нибудь придумать, спасибо за идею 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

За такую огромную прогу совершенно необходимо выдать статус [V] или даже [VP]!

  • Like 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно сделать морской бой на дебаг-картах, чтобы корабли выстреливали заряженный TNT и попадания проверялись через testforblock. При определенном проценте повреждений корабль тонет, можно еще добавить возможность перемещать корабли во время боя.

Только есть два минуса - нужна дебаг-карта и много места. Но зато будет намного зрелищней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно сделать морской бой на дебаг-картах, чтобы корабли выстреливали заряженный TNT и попадания проверялись через testforblock. При определенном проценте повреждений корабль тонет, можно еще добавить возможность перемещать корабли во время боя.

Только есть два минуса - нужна дебаг-карта и много места. Но зато будет намного зрелищней.

Я один вспомнил рекламу сухариков, когда двое мужиков на замёрзшей реке корабли небольшие из льда сделали, а потом поля заминировали и по очереди взрывали клетки?

----------------

А так, на сервере отключено уничтожение блоков взрывом.

Изменено пользователем MineUbuntu

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я один вспомнил рекламу сухариков, когда двое мужиков на замёрзшей реке корабли небольшие из льда сделали, а потом поля заминировали и по очереди взрывали клетки?

----------------

А так, на сервере отключено уничтожение блоков взрывом.

Спавнить неподвижного зомби на каждой клетке и проверять радарами на месте ли зомби

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спавнить неподвижного зомби на каждой клетке и проверять радарами на месте ли зомби

 

Смысл? Если есть дебаг-карта, то и разрешение на взрывы можно выпросить))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смысл? Если есть дебаг-карта, то и разрешение на взрывы можно выпросить))

Кстати, есть плагины, позволяющие в одном мире запретить взрывы, а в другом оставить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, есть плагины, позволяющие в одном мире запретить взрывы, а в другом оставить

Кстати, есть флаг для привата, который позволяет включить взрывы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×