Skip to main content

Module types

Module types 

Source
Expand description

将棋の基本型定義

このモジュールは将棋で使用する基本的な型を提供する。

§主要な型

§盤面座標

  • Square - マス(0-80、9x9 盤面の各マスを表す)
  • File - 筋(1-9、右から左へ)
  • Rank - 段(一-九、上から下へ)

§

  • PieceType - 駒種(歩、香、桂、銀、金、角、飛、玉、と、成香、…)
  • Piece - 駒(駒種 + 手番の組み合わせ)
  • Hand - 持ち駒(各駒種の枚数をビットパック)

§指し手

  • Move32 - 32bit 指し手(移動元、移動先、成り、駒打ち、取った駒など)
  • Move - 16bit 指し手(コンパクト版、移動元、移動先、成り、駒打ちのみ)

§ビットボード

  • Bitboard - 81bit ビットボード(各マスの状態を1ビットで表現)

§ゲーム状態

§Examples

use rsshogi::types::{Color, Square, File, Rank, PieceType, Piece};

// 手番
let black = Color::BLACK;
let white = Color::WHITE;
assert_eq!(black.flip(), white);

// マス(7七)
let sq = Square::from_file_rank(File::FILE_7, Rank::RANK_7);
assert_eq!(sq.to_string(), "7g");

// 駒(先手の歩)
let piece = Piece::from_parts(black, PieceType::PAWN);
assert_eq!(piece.to_string(), "P");

Re-exports§

pub use bitboard::Bitboard;
pub use color::Color;
pub use entering_king_rule::EnteringKingRule;
pub use eval::Eval;
pub use file::File;
pub use game_result::GameResult;
pub use hand::HAND_BIT_MASK;
pub use hand::HAND_BORROW_MASK;
pub use hand::Hand;
pub use hand::HandPiece;
pub use moves::AperyMove;
pub use moves::AperyMove32;
pub use moves::MOVE_END;
pub use moves::MOVE_NONE;
pub use moves::MOVE_NULL;
pub use moves::MOVE_RESIGN;
pub use moves::MOVE_WIN;
pub use moves::Move;
pub use moves::Move32;
pub use moves::Move32Metadata;
pub use piece::Piece;
pub use piece::PieceType;
pub use rank::Rank;
pub use rank::is_promotable_rank;
pub use repetition_state::RepetitionState;
pub use square::SQ_11;
pub use square::SQ_12;
pub use square::SQ_13;
pub use square::SQ_14;
pub use square::SQ_15;
pub use square::SQ_16;
pub use square::SQ_17;
pub use square::SQ_18;
pub use square::SQ_19;
pub use square::SQ_21;
pub use square::SQ_22;
pub use square::SQ_23;
pub use square::SQ_24;
pub use square::SQ_25;
pub use square::SQ_26;
pub use square::SQ_27;
pub use square::SQ_28;
pub use square::SQ_29;
pub use square::SQ_31;
pub use square::SQ_32;
pub use square::SQ_33;
pub use square::SQ_34;
pub use square::SQ_35;
pub use square::SQ_36;
pub use square::SQ_37;
pub use square::SQ_38;
pub use square::SQ_39;
pub use square::SQ_41;
pub use square::SQ_42;
pub use square::SQ_43;
pub use square::SQ_44;
pub use square::SQ_45;
pub use square::SQ_46;
pub use square::SQ_47;
pub use square::SQ_48;
pub use square::SQ_49;
pub use square::SQ_51;
pub use square::SQ_52;
pub use square::SQ_53;
pub use square::SQ_54;
pub use square::SQ_55;
pub use square::SQ_56;
pub use square::SQ_57;
pub use square::SQ_58;
pub use square::SQ_59;
pub use square::SQ_61;
pub use square::SQ_62;
pub use square::SQ_63;
pub use square::SQ_64;
pub use square::SQ_65;
pub use square::SQ_66;
pub use square::SQ_67;
pub use square::SQ_68;
pub use square::SQ_69;
pub use square::SQ_71;
pub use square::SQ_72;
pub use square::SQ_73;
pub use square::SQ_74;
pub use square::SQ_75;
pub use square::SQ_76;
pub use square::SQ_77;
pub use square::SQ_78;
pub use square::SQ_79;
pub use square::SQ_81;
pub use square::SQ_82;
pub use square::SQ_83;
pub use square::SQ_84;
pub use square::SQ_85;
pub use square::SQ_86;
pub use square::SQ_87;
pub use square::SQ_88;
pub use square::SQ_89;
pub use square::SQ_91;
pub use square::SQ_92;
pub use square::SQ_93;
pub use square::SQ_94;
pub use square::SQ_95;
pub use square::SQ_96;
pub use square::SQ_97;
pub use square::SQ_98;
pub use square::SQ_99;
pub use square::SQ_D;
pub use square::SQ_L;
pub use square::SQ_LD;
pub use square::SQ_LU;
pub use square::SQ_NONE;
pub use square::SQ_R;
pub use square::SQ_RD;
pub use square::SQ_RU;
pub use square::SQ_U;
pub use square::SQ_ZERO;
pub use square::Square;
pub use square::SquareTable;
pub use square::is_promotable_square;

Modules§

bitboard
81 マス将棋盤用ビットボード
color
entering_king_rule
入玉宣言勝ちのルール設定
eval
file
game_result
hand
moves
piece
rank
repetition_state
千日手(同一局面反復)の状態定義
square