为什么我这里不能初始化棋盘?

问题描述 投票:0回答:1

我正在尝试从模板创建一个国际象棋库。我正在尝试将棋盘初始化为包含棋子作为结构的二维数组。

我在这一行遇到语法错误:

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 },
            
        
        }
    }

有什么想法可以纠正语法吗?

rust chess
1个回答
0
投票

初始化它

板:[无; 64],

或者为其创建一个构建器模式以在板位置分配值。

© www.soinside.com 2019 - 2024. All rights reserved.