Показать сообщение отдельно
  #8 (permalink)  
Старый 14.11.2011, 01:18
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
Мне все равно на их основе нужно создавать 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; 
   }
}


Ты не обижайся за критику. Тут не мало профи, так что есть смысл их слушать.
Есть разница между данными и представлением. Твоя таблица это представление. Все профи хотят изолировать данные от представления, потому что так код яснее, и им проще оперировать. А сложную программу без такого подхода и вовсе написать невозможно, человеческий мозг просто невывезет такую кашу. Вот поэтому массив а не таблица.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 14.11.2011 в 01:49.
Ответить с цитированием