Цитата:
|
Мне все равно на их основе нужно создавать html-блоки - таблицы или дивы.
|
Биржевые сводки, тоже придётся представлять в виде таблиц и div'ов.
Ты что их тоже в html хранить будешь
Цитата:
|
то массив ship[1][4]?
|
а корабль по горизонтали или вертикали ? а может у него более сложная форма ? вот чтобы об этом не думать берёш массив 4 на 4 и корабль в нём может быть любой.
Цитата:
|
И с чем его сопоставлять, если у поля все ячейки пустые
|
ты же не один корабль разместиш на карте, или твои корабли можно ставить друг на друга ?
по делу
установка без проверки, пример на массивах.
ship массив с кораблём, map игровая карта.
x,y это координаты установки.
setShip (x,y){
for (var yShip=0;yShip<4;yShip++){
for (var xShip=0;xShip<4;xShip++){
if ( ship[XShip,yShip] > 0 ) map[x+XShip,y+yShip ]=1;
}
}
}
Установка корабля с проверкой возможности установки.
функция вернёт false если корабль установить не удалось.
setShip (x,y){
var test=0;
// циклы проверяют возможность установки.
for (var yShip=0;yShip<4;yShip++){
for (var xShip=0;xShip<4;xShip++){
if ( ship[xShip,yShip] > 0 && map[x+xShip,y+yShip ]>0) { test++;break};
}
}
// если установка возможна, то копируем корабль из одного массива в другой
if (test==0){
for (var yShip=0;yShip<4;yShip++){
for (var xShip=0;xShip<4;xShip++){
if ( ship[xShip,yShip] > 0 ) map[x+xShip,y+yShip ]=1;
}
}
// если всё ништяк тогда true
return true;
} else {
// если установка невозможна, вернём false
return false;
}
}
Ты не обижайся за критику. Тут не мало профи, так что есть смысл их слушать.
Есть разница между данными и представлением. Твоя таблица это представление. Все профи хотят изолировать данные от представления, потому что так код яснее, и им проще оперировать. А сложную программу без такого подхода и вовсе написать невозможно, человеческий мозг просто невывезет такую кашу. Вот поэтому массив а не таблица.