我正在尝试从模板创建一个国际象棋库。我正在尝试将棋盘初始化为包含棋子作为结构的二维数组。
我在这一行遇到语法错误:
board:[0][0] = white_pawn_1: Piece { colour: 0, role: 0 },
这就是之前的代码的样子:
use std::fmt;
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum GameState {
InProgress,
Check,
GameOver,
CheckMate
}
/* IMPORTANT:
* - Document well!
* - Write well structured and clean code!
* - Read the Rust documentation, ask questions if you get stuck!
*/
struct Piece {
colour: u8,
role: u8
}
impl Piece {
fn description (&self) {
print!("Colour: {}, ", self.colour);
println!("Role: {}", self.role);
}
fn new(colour: u8, role: u8) -> Piece {
Piece {colour: colour, role: role}
}
}
pub struct Game {
/* save board, active colour, ... */
state: GameState,
board: [Option<Piece>; 8 * 8],
white_pawn_1: Piece,
white_pawn_2: Piece,
white_pawn_3: Piece,
white_pawn_4: Piece,
white_rook: Piece,
white_knight: Piece,
white_bishop: Piece,
white_queen: Piece,
white_king: Piece,
black_pawn_1: Piece,
black_pawn_2: Piece,
black_pawn_3: Piece,
black_pawn_4: Piece,
black_rook: Piece,
black_knight: Piece,
black_bishop: Piece,
black_queen: Piece,
black_king: Piece
}
impl Game {
/// Initialises a new board with pieces.
pub fn new() -> Game {
Game {
/* initialise board, set active colour to white, ... */
state: GameState::InProgress,
white_pawn_1: Piece { colour: 0, role: 0 },
white_pawn_2: Piece { colour: 0, role: 0 },
white_pawn_3: Piece { colour: 0, role: 0 },
white_pawn_4: Piece { colour: 0, role: 0 },
white_rook: Piece { colour: 0, role: 1 },
white_knight: Piece { colour: 0, role: 2 },
white_bishop: Piece { colour: 0, role: 3 },
white_queen: Piece { colour: 0, role: 4 },
white_king: Piece { colour: 0, role: 5 },
black_pawn_1: Piece { colour: 1, role: 0 },
black_pawn_2: Piece { colour: 1, role: 0 },
black_pawn_3: Piece { colour: 1, role: 0 },
black_pawn_4: Piece { colour: 1, role: 0 },
black_rook: Piece { colour: 1, role: 1 },
black_knight: Piece { colour: 1, role: 2 },
black_bishop: Piece { colour: 1, role: 3 },
black_queen: Piece { colour: 1, role: 4 },
black_king: Piece { colour: 1, role: 5 },
board:[0][0] = white_pawn_1: Piece { colour: 0, role: 0 },
}
}
有什么想法可以纠正语法吗?
用
初始化它板:[无; 64],
或者为其创建一个构建器模式以在板位置分配值。