Для начала задам вопрос: на чем вы это делаете?
Если вы это собираетесь делать на HTML, то вы в неправильном направлении. Это лучше всего делать на Canvas.
А что касается резиновости, то тут все просто: мы вычисляем размер canavas, на основании этих размеров высчитываем все нужные нам значения.
Пример
Пусть у нас Тетрис 10х10 клеток, а размеры Canvas - 640х480. Мы хотим, что бы у нас все было по минимальному измерению Canvas. Тогда мы находим его
var min = (canvas.width < canvas.height) ? +canvas.width : +canvas.height
делим его на 10, что бы получить клетку
var size = min / 10
и на основании этого размера делаем передвижение фигур и т.д.
function move(time) {
var realtime = time - lasttime;
realtime = realtime - realtime % ourInterval;
figure.y += (realtime == 0) ? 0 : realtime / ourInterval * size;
lasttime += realtime;
}