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

alexan0308 12.11.2013 16:35

Цитата:

Сообщение от Cerfuck (Сообщение 280653)
Ну я же не настолько нуб. Работаю верстальщиком. Опыт есть.

Ок.
Цитата:

Сообщение от ksa (Сообщение 280648)
Пипец!

А шо не так, ksa?

ksa 12.11.2013 16:37

Цитата:

Сообщение от alexan0308
А шо не так

Количество функций. :)

alexan0308 12.11.2013 16:51

Цитата:

Сообщение от ksa (Сообщение 280658)
Количество функций. :)

Ах да, все же корабли прямые. Просто давно не играл в морской бой. Почему то подумал, что там есть квадратные корабли 2 на 2. Тогда хватит двух функций. Просто нужно добавить один аргумент - количество клеток в корабле.

alexan0308 12.11.2013 17:20

Ну еще подумав, можно добавить еще один логический аргумент )) и тогда хватит одной функции на все корабли ))) просто это все приходит уже при разработке. Не все сразу ))

ksa 12.11.2013 18:41

Цитата:

Сообщение от alexan0308
хватит одной функции на все корабли

Алилуйяяя!

alexan0308 13.11.2013 16:22

Цитата:

Сообщение от Cerfuck (Сообщение 280584)
Я сейчас хочу сделать выстрелы. То есть я ранил корабль. Это понятно как сделать - взять координату клетки на странице, сравнить ее с массивом, если в этой клетке стоит корабль то помечаем эту клетку, как раненую. А дальше? допустим 4 палубный корабль. ранили его 4 раза и как программа поймет, что он убит. вот это не могу понять.

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

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

0000001100
2220000003
0000000000 и т.д.

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

Третий массив- выстрелы. В начале он полностью дублирует ПЕРВЫЙ массив. При попадании в пустое поле меняешь циферку на -1 ( и соотв. рисунок ) При попадании в корабль меняешь циферку на -2 ( соотв. рисунок ). Об убийстве корабля позже. Ты сначала это сделай ))

ksa 13.11.2013 16:29

Цитата:

Сообщение от alexan0308 (Сообщение 280856)
Первый массив, например, корабли

0000001100
2220000003
0000000000 и т.д.

Как будешь вычислять ранил или убил? :)

alexan0308 13.11.2013 17:07

Цитата:

Сообщение от ksa (Сообщение 280859)
Как будешь вычислять ранил или убил? :)

Цитата:

Сообщение от alexan0308 (Сообщение 280856)
Третий массив- выстрелы. В начале он полностью дублирует ПЕРВЫЙ массив. При попадании в пустое поле меняешь циферку на -1 ( и соотв. рисунок ) При попадании в корабль меняешь циферку на -2 ( соотв. рисунок ).

Допустим попал в поле где написано 5. Значит, попал в корабль. Меняешь поле на -2. Ищешь, остались ли в этом массиве 5-ки. Если остались, то корабль ранен. Ставишь соответствующую картинкУ "ранен".
Если 5-рок не осталось, то корабль убит. Пробегаешь по первому массиву ищешь там 5-ки. При нахождении оных меняешь соответствующие поля на картинкИ "убит".
Все. Осталось писать руками. Возможно, по пути придумаются упрощения.

ksa 13.11.2013 18:43

Цитата:

Сообщение от alexan0308
Допустим попал в поле где написано 5. Значит, попал в корабль. Меняешь поле на -2. Ищешь, остались ли в этом массиве 5-ки. Если остались, то корабль ранен.

ППЦ... :cray:

alexan0308 13.11.2013 19:11

Цитата:

Сообщение от ksa (Сообщение 280899)
ППЦ... :cray:

Шо то не так, уважаемый?


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