【发布时间】:2015-12-08 18:49:09
【问题描述】:
我正在构建一个国际象棋游戏,将 7 个皇后随机放置在棋盘上,而不会互相击中。该板由 7 行和 7 列构成。到目前为止,我做了以下步骤
- 制作了 5 个类别:游戏、棋盘、盒子、棋子和皇后。
- 游戏的创建和实例。
- 使用 createBoard 方法创建了一个新的 Board 对象。
- 创建了一个 showBoard 方法来显示板。
现在我想将第一个皇后放在棋盘上的一个随机框中,但我不知道如何访问多维数组的对象。 set_piece 方法应该访问棋盘对象并在随机框中放置一个 Q,然后将该框标记为占用 = true。有人知道应该如何构造 Game 类中的 set_piece 方法吗?
游戏类:
class Game {
var $board;
var $length;
public function createBoard($length) {
$this->board = new Board($length);
$this->length = $length;
}
public function showBoard() {
// Create table
$table_str = '<table border="1px">';
for($row=1; $row <= $this->length; $row++) {
$table_str .= "<tr>";
for($col=1; $col <= $this->length; $col++) {
$total = $row + $col;
if($total%2==0) {
$table_str .= "<td height=100px width=100px bgcolor=#FFFFFF></td>";
} else {
$table_str .= "<td height=60px width=60px bgcolor=#000000></td>";
}
}
$table_str .= "</tr>";
}
return $table_str;
}
public function set_piece() {
}
}
板级:
class Board {
public $box;
public function __construct($length) {
for($i=0; $i < $length; $i++){
for($j=0; $j< $length; $j++){
$this->box[$i+1][$j+1] = new Box($i+1, $j+1);
}
}
}
}
盒子类:
class Box {
public $piece;
public $occupied = false;
}
单品类:
class Piece {
}
女王级:
class Queen extends Piece {
}
索引:
$game = new Game();
$game->createBoard(7);
$game->set_piece();
echo $game->showBoard();
echo "<pre>";
print_r($game->board);
echo "</pre>";
我尝试访问的数组如下所示:
Board Object
(
[box] => Array
(
[1] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
[2] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
[3] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
[4] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
[5] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
[6] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
[7] => Array
(
[1] => Box Object
(
[piece] =>
[occupied] =>
)
[2] => Box Object
(
[piece] =>
[occupied] =>
)
[3] => Box Object
(
[piece] =>
[occupied] =>
)
[4] => Box Object
(
[piece] =>
[occupied] =>
)
[5] => Box Object
(
[piece] =>
[occupied] =>
)
[6] => Box Object
(
[piece] =>
[occupied] =>
)
[7] => Box Object
(
[piece] =>
[occupied] =>
)
)
)
)
【问题讨论】:
-
Anyone an idea how the set_piece。没有。除非你向我们解释它应该做什么。
标签: php oop object multidimensional-array chess