어떻게 배열 상/하/좌/우 대각선PHP 세션 배열
$board = array(A B C D E F G H
0 array(0,0,0,0,0,0,0,0),
1 array(0,0,0,0,0,0,0,0),
2 array(0,0,0,0,0,0,0,0),
3 array(0,0,0,0,0,0,0,0),
4 array(0,0,0,0,0,0,0,0),
5 array(0,0,0,0,0,0,0,0),
6 array(0,0,0,0,0,0,0,0),
7 array(0,0,0,0,0,0,0,0)
);
내가 세션에이 배열을 저장하기 위해 노력하고 내부의 요소를 이동하는 세션 사용 세션에이 배열을 저장할 수 있습니다
$pieces = array(
//checkers pieces player 1
"b" => '<img src="bp.png" width="33" height="37" alt="black piece">',
//Checkers pieces for player2
"r" => '<img src="rp.png" width="33" height="32" alt="red piece">',
// Empty Squares
// Black
"bs" => '<img src="bs.png" width="30" height="30" alt="black square">',
// Red
"rs" => '<img src="rs.png" width="30" height="30" alt="black square">'
);
// 'es' represents empty squares
$board = array( A B C D E F G H
0 array('b','rs','b','rs','b','rs','b','rs'),
1 array('rs','b','rs','b','rs','b','rs','b'),
2 array('b','rs','b','rs','b','rs','b','rs'),
3 array('rs','bs','rs','bs','rs','bs','rs','bs'),
4 array('bs','rs','bs','rs','bs','rs','bs','rs'),
5 array('r','bs','r','bs','r','bs','r','bs'),
6 array('bs','r','bs','r','bs','r','bs','r'),
7 array('r','bs','r','bs','r','bs','r','bs')
);
function map(&$value, $key, $map) {
if(array_key_exists($value, $map)) {
$value = $map[$value];
}
}
array_walk_recursive($board, 'map', $pieces);
과는
나는 array_walk_recursive
후$_SESSION['board'] = $board;
했다을 출력 할 때의 8x8 테이블 보드에 나올 예정 난 G2는이 기능
// parses the users input --FROM-- and to where the user wnats to move the piece
// if the user inputs F1 it parses that into (0,0) coordinates
function parseSquare() {
if (strlen($square) != 2) {
return FALSE;
}
$coords = array(ord('A') - ord($square[0]),
$square[1] - 1);
// Perform bounds-checking.
if ($coords[0] < 0 || $coords[0] > 7 || $coords[1] < 0 || $coords[1] > 7) {
return FALSE;
}
return $coords;
}
$coords = parseSquare($square);
if ($coords === FALSE) {
// Invalid input, handle this case.
} else {
$piece = $board[$coords[0]][$coords[1]]; // for example
}
좌표로 구문 분석 (입력) 할 수 - 617,451,515,
사용자는 F5 (입력 박스)에서이 함수에 inputing된다
echo "<table border='1'>\n";
foreach ($_SESSION['board'] as $row)
{
echo "<tr>\n";
foreach ($row as $piece){
echo "<td>";
echo "$piece ";
echo "</td>\n";
}
}
echo "</tr>\n";
echo "</table>\n";
}
에 넣어 위의 함수를 사용하여 대각선으로 이동하십시오.
$_SESSION['board'][[$new_i]-1][[$new_j] + 1] = $_SESSION['board'][$old_i][$old_j];
$_SESSION['board'][$old_i][$old_j] = ...;
위의 내 게시물을 업데이트했습니다. – hgbso
@hgbso : 거기에 새로운 질문이 없습니다. – casablanca
$ _SESSION [ 'board'] [$ new_i -1] [$ new_j +1] = $ _SESSION [ 'board'] [$ old_i] [$ old_j]; $ _SESSION [ 'board'] [$ old_i] [$ old_j] = ...; 이것을 사용하여 대각선으로 이동할 수 있습니다 – hgbso