Проблема с логикой программы - смены ячеек в таблице местами.

IKARUS

Новичок
Проблема с логикой программы - смены ячеек в таблице местами.

Здравствуйте.Я новичок в php (около недели назад начал писать), потому пожалуйста сильно не пинайте за вопросы.....

Я пишу сейчас небольшую програмку-игру, которая заключается в том,что у меня есть таблица,в ней есть пустые ячейки, есть ячейки с пробелом,а есть черная ячейка с кнопками. Кнопок 4 - Вверх, вниз, влево, вправо. При нажатии на одну из них соседняя ячейка (если в ней есть пробел) меняется местами с черной.Т.е. как бы черная ячейка двигается в нужном направлении по таблице.

Проблема в том что я никак не продумаю логику этой навигации.

Вот скрин самой проги, код:

PHP:
<?php
/* Задаем переменные-элементы карты */
$el_0="<table bordercolor='000000' border='1'><tr>";
$el_1="<td width='80' height='80' bgcolor='ffffff'>&nbsp;";
$el_2="<td width='80' height='80' bgcolor='ffffff'>";
$el_3="<td width='80' height='80' bgcolor='ffffff'>Конец";
$el_4="<tr>";

$gamer="<td width='80' height='80' bgcolor='000000'>

<center><font color='ffffff' action='index.php'>
   <form name='gamer' method='get'>
   <input type='submit' value='W' name='gamer'><br>
   <input type='submit' value='A' name='gamer'><input type='submit' value='X' name='gamer'><input type='submit' value='D' name='gamer'><br>
   <input type='submit' value='S' name='gamer'>


</font></center>";


/* Формировка карты */




 

echo $el_0,$gamer,$el_1,$el_1,$el_1,$el_1,$el_1,$el_4,$el_1,$el_1,$el_1,$el_1,$el_1,$el_1,$el_4,$el_1,$el_1,$el_1,$el_1,$el_1,$el_1,$el_4,$el_1,$el_1,$el_1,$el_1,$el_1,$el_1,$el_4 ,$el_1,$el_1,$el_1,$el_1,$el_1,$el_1;

?>
PS: название темы дурацкое,но уж не знаю как назвать еще.
 

cDLEON

Онанист РНРСlub
Уххх...Индусы отдыхают 8)))
открой для себя [m]array[/m]
 

IKARUS

Новичок
Я понимаю что циклы..я не очень врубаюсь в логику скрипта с этими циклами
 

cDLEON

Онанист РНРСlub
dimagolov
без массива, циклы не нужны будут :)
Забиваем массив данными. Формируем "комнату".
К тому-же, всё - что нам нужно будет менять - это положение "игрока". следовательно, нафига нам циклы? просто смещаем указатель массива в нужную сторону.
Циклы нам понадобятся только тогда, когда нужно будет эту байду вывести пользователю ))0
 

IKARUS

Новичок
cDLEON
в массив записать информацию типа "Положение по верт, положение гор."?а как это с таблицей согласовать?
 

dimagolov

Новичок
я всегда думал, что координаты это 2 числа. не думаю, что их есть смысл в массив оформлять
 

prolis

Новичок
1. Вычислить смещение по осям в зависимости от нажатых кнопок:
$movX=?;$movY=?;
2. Добавить в форму управления текущие координаты:
<input type='hidden' value='".intval($_GET['currentX'])+$movX."' name='currentX'>
<input type='hidden' value='".intval($_GET['currentY'])+$movY."' name='currentY'>
3. Формируем таблицу циклами по столбцам и строкам. Если индексы циклов совпадают с $_GET['currentX']+$movX или $_GET['currentY']+$movY - вставляем вместо пробела твоего $gamer
 

Ravanger

Новичок
dimagolov, IKARUS
в массив оформляется игровое поле, аля матрица, допустим 10x10
потом
PHP:
$vcells = 10;
$hcells = 10;
for ($v = 0; $v < $vcells; $v++) {
     //render vertical cells
     for ($h = 0; $h < $vcells; $h++) {
          if ($user['vcell'] == $v && $user['hcell'] == $h) {
                markCellAsBusy();
          }
          // render horisontal cells
     }
}
как то так
 

Ravanger

Новичок
IKARUS
определяешь массив $cells
PHP:
$cells = array(
       0 => array('v_ind' => 0, 'h_ind' => 0, 'is_path' => true),
       1 => array('v_ind' => 0, 'h_ind' => 1, 'is_path' => true),
       2 => array('v_ind' => 0, 'h_ind' => 2, 'is_path' => false),
       .....
)
и так далее, таким образом ты можешь определить свой шаблон пути для каждого уровня например

---

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

cDLEON

Онанист РНРСlub
dimagolov
Я же сказал - саму комнату, вернее её структуру.
 
Сверху