Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Помогите пожалуйста (https://javascript.ru/forum/project/42862-pomogite-pozhalujjsta.html)

ksa 14.11.2013 08:45

Цитата:

Сообщение от alexan0308
Шо то не так

Аогоритм естественно! :D
А до этого само хранение...

alexan0308 14.11.2013 09:35

Цитата:

Сообщение от ksa (Сообщение 280987)
Аогоритм естественно! :D
А до этого само хранение...

Согласен, не самый оптимальный. Он же навскидку. Может при разработке что то и упростится.
Зато алгоритм достаточно простой и легко реализуемый, и повода плакать я тут не вижу.

Если же у тебя есть по существу соображения, поделись.

ksa 14.11.2013 09:39

Цитата:

Сообщение от alexan0308
Может при разработке что то упростится.

Подход дилетантов...

Цитата:

Сообщение от alexan0308
Если же у тебя есть по существу соображения, поделись.

Не вижу смысла.
Это настоящее тестовое задание для новичков. Я его даю при приеме на работу новичкам т.с. с потенцией. Как правило на эту игру у них уходит не меньше месяца.

И смысл мне тут показавать варианты решений этого теста? :)

alexan0308 14.11.2013 09:44

Цитата:

Сообщение от alexan0308 (Сообщение 280998)
Может при разработке что то и упростится.

Цитата:

Сообщение от ksa (Сообщение 280999)
Подход дилетантов...

Гонишь. Это обычная особенность мозга - что-то додумывать.

Цитата:

Сообщение от ksa (Сообщение 280999)
Я его даю при приеме на работу новичкам т.с. с потенцией. Как правило на эту игру у них уходит не меньше месяца.

С моим алгоритмом уйдет максимум три дня =)

Цитата:

Сообщение от ksa (Сообщение 280999)

И смысл мне тут показавать варианты решений этого теста? :)

А смысл тогда встревать тут? =) Понятно, что всегда можно сделать лучше, чем есть.

ksa 14.11.2013 09:47

Цитата:

Сообщение от alexan0308
Это обычная особенность мозга - что-то додумывать

:blink:
Т.е. понятие "проектирование" тому мозгу не знакомо? :D

Цитата:

Сообщение от alexan0308
С моим алгоритмом уйдет максимум три дня =)

Покажи потом результат в разделе http://javascript.ru/forum/project/
Почитаем, что скажут другие форумчане. :D

Цитата:

Сообщение от alexan0308
А смысл тогда встревать тут?

Эо свободный форум - т.ч. "встреваю" где хочу... ;)

alexan0308 14.11.2013 10:34

Цитата:

Сообщение от alexan0308 (Сообщение 280998)
Согласен, не самый оптимальный. Он же навскидку. Может при разработке что то и упростится. .

Хочешь сказать, додумывание - незнакомо твоему мозгу? :D
Я же не перед дядей на приеме на работу сижу, чтобы от и до проектировать. Тем более это не такая и сложная задача. Ее быстрее сделать, чем расписать

ksa 14.11.2013 10:37

Цитата:

Сообщение от alexan0308
Хочешь сказать, додумывание - незнакомо твоему мозгу?

Я не применяю "додумывание" при разработке приложений. :D

Цитата:

Сообщение от alexan0308
Тем более это не такая и сложная задача. Ее быстрее сделать, чем расписать

Я подожду те 3, обещаных тобой, дня... :yes:

alexan0308 14.11.2013 10:50

Цитата:

Сообщение от ksa (Сообщение 281020)
Я не применяю "додумывание" при разработке приложений. :D
Я подожду те 3, обещаных тобой, дня... :yes:

Cerfuck, успеешь надеюсь? ))
Умныя мысля приходит опосля - народная мудрость ))

ksa 22.11.2013 10:18

Цитата:

Сообщение от alexan0308
14.11.2013, 09:44
С моим алгоритмом уйдет максимум три дня =)

Сегодня уже 22-е, есть что показать?

l-liava-l 22.11.2013 17:53

Цитата:

Когда я подумал об этом, мне пришло такое решение. Можно при создании корабля каждый обозначать своей цифрой ))) И после каждого выстрела пробегать весь массив и и искать клеточки с такой ЖЕ цифрой )) Ну и при попадании менять циферку.

Итак, три массива. Первый массив, например, корабли

0000001100
2220000003
0000000000 и т.д.

Второй - свободные клетки (цифра 0) , 1 - занято. Этот массив нужен только на этапе рандомного заполнения кораблями:
1111011111
1111011111
1111000011

Третий массив- выстрелы. В начале он полностью дублирует ПЕРВЫЙ массив. При попадании в пустое поле меняешь циферку на -1 ( и соотв. рисунок ) При попадании в корабль меняешь циферку на -2 ( соотв. рисунок ). Об убийстве корабля позже. Ты сначала это сделай ))
Ответить с цитированием
А как ты будешь проверять куда выстрелил игрок попал/нет?
Я бы наверное сделал так: (написал первое что пришло в голову, не ругаца)
var map = {
    "a": {
         1: 0,
         2: 0,
         3: 2,
         4: 0 
         ...
      },
     "b": {
         1: 0,
         2: 0,
         3: 2,
         4: 0
        ...
      }
     ...
}

Вот решил игрок стрельнуть по координатам a3, сразу смотрим попал или нет? если нет то отмечаем "мимо",
если да то узнаем сколько палуб у корабля по значению 1 == 1 палубному, 2 == 2х палубному и тд.
если однапалубный то просто отмечаем что убили, с дргуими чуть сложнее.

Например как в данной карте, при выстреле в a3 (или b3) мы проверяем что попали, определили 2х палубный корабль и тупо проверяем значения вокруг. то есть сначала по тому же самому обьекту сверяем a3 - 1 с a3 и a3 + 1 с а3 если не нашли то проверяем в соседних обьектах в данном случае b3, так как "a" - граница. Когда находим элемент просто присваиваем ему значение на 1 меньше (чтобы потом он не проверял окрестности).

Что касается генерации кораблей то тут нужно подумать но вполне решается 1 функцией, но я уже в пижаме)


Часовой пояс GMT +3, время: 20:47.