Documentation ¶
Index ¶
Constants ¶
const (
// Author - 囲碁思考エンジンの作者名だぜ☆(^~^)
Author = "Satoshi Takahashi"
)
const BOARD_SIZE = 100
00~99
const RESIGN_MOVE = Move(0)
0 は 投了ということにするぜ(^~^)
Variables ¶
var App l01.Lesson01App
App - アプリケーション変数の宣言
Functions ¶
Types ¶
type HandIdx ¶
type HandIdx uint
const ( HAND_K1 HandIdx = iota // 0: 先手玉 HAND_R1 HAND_B1 HAND_G1 HAND_S1 HAND_N1 HAND_L1 HAND_P1 HAND_K2 HAND_R2 HAND_B2 HAND_G2 HAND_S2 HAND_N2 HAND_L2 HAND_P2 HAND_SIZE HAND_TYPE_SIZE = HAND_SIZE / 2 // 割り切れる HAND_IDX_BEGIN = HAND_K1 HAND_IDX_END = HAND_SIZE // この数を含まない )
Hand piece type (先後付きの持ち駒の種類)
* 0~15 * 持ち駒を打つときに利用 * 駒台に玉も置ける
func FromCodeToHandIndex ¶
func FromSqToHandIndex ¶
type HandSq ¶
type HandSq Square
const ( // 持ち駒を打つ 100~115 // 先手飛打 HANDSQ_K1 HandSq = 100 + iota HANDSQ_R1 HANDSQ_B1 HANDSQ_G1 HANDSQ_S1 HANDSQ_N1 HANDSQ_L1 HANDSQ_P1 HANDSQ_K2 HANDSQ_R2 HANDSQ_B2 HANDSQ_G2 HANDSQ_S2 HANDSQ_N2 HANDSQ_L2 HANDSQ_P2 HANDSQ_END HANDSQ_BEGIN = HANDSQ_K1 HANDSQ_SIZE = (HANDSQ_END - HANDSQ_BEGIN) HANDSQ_TYPE_SIZE = HANDSQ_SIZE / 2 // 割り切れる )
func FromCodeToHandSq ¶
func FromSqToHandSq ¶
type Move ¶
type Move uint16
Move - 指し手
15bit で表せるはず(^~^) .pdd dddd dsss ssss
1~7bit: 移動元(0~127) 8~14bit: 移動先(0~127) 15bit: 成(0~1)
func (Move) Destructure ¶
Destructure - 移動元マス、移動先マス、成りの有無
移動元マス 0000 0000 0111 1111 (Mask) 0x007f .pdd dddd dsss ssss
移動先マス 0011 1111 1000 0000 (Mask) 0x3f80 .pdd dddd dsss ssss
成 0100 0000 0000 0000 (Mask) 0x4000 .pdd dddd dsss ssss
func (Move) ReplaceDestination ¶
ReplaceDestination - Replace 7 destination square bits 1100 0000 0111 1111 (Clear) 0xc07f .pdd dddd dsss ssss
func (Move) ReplacePromotion ¶
ReplacePromotion - Replace 1 promotion bit 0100 0000 0000 0000 (Stand) 0x4000 1011 1111 1111 1111 (Clear) 0xbfff .pdd dddd dsss ssss
func (Move) ReplaceSource ¶
ReplaceSource - Replace 7 source square bits 1111 1111 1000 0000 (Clear) 0xff80 .pdd dddd dsss ssss
type Piece ¶
type Piece uint8
先後付きの駒
const ( PIECE_EMPTY Piece = iota // 0: 駒なし PIECE_K1 // 1: ▲玉 PIECE_R1 // 2: ▲飛 PIECE_B1 // 3: ▲角 PIECE_G1 // 4: ▲金 PIECE_S1 // 5: ▲銀 PIECE_N1 // 6: ▲桂 PIECE_L1 // 7: ▲香 PIECE_P1 // 8: ▲歩 PIECE_PR1 // 9: ▲竜 PIECE_PB1 //10: ▲馬 PIECE_PS1 //11: ▲全 PIECE_PN1 //12: ▲圭 PIECE_PL1 //13: ▲杏 PIECE_PP1 //14: ▲と PIECE_K2 //15: ▽玉 PIECE_R2 //16: ▽飛 PIECE_B2 //17: ▽角 PIECE_G2 //18: ▽金 PIECE_S2 //19: ▽銀 PIECE_N2 //20: ▽桂 PIECE_L2 //21: ▽香 PIECE_P2 //22: ▽歩 PIECE_PR2 //23: ▽竜 PIECE_PB2 //24: ▽馬 PIECE_PS2 //25: ▽全 PIECE_PN2 //26: ▽圭 PIECE_PL2 //27: ▽杏 PIECE_PP2 //28: ▽と )
駒
func FromPhaseAndPieceTypeToPiece ¶
FromPhaseAndPieceTypeToPiece - 駒作成。空マスは作れません
type Position ¶
type Position struct { // [19] は 1九、 [91] は 9一(^~^)反時計回りに90°回転した将棋盤の状態で入ってるぜ(^~^)想像しろだぜ(^~^) Board []Piece // 持ち駒の数だぜ(^~^) R, B, G, S, N, L, P, r, b, g, s, n, l, p Hands []int // 先手が1、後手が2(^~^) Phase Phase // 何手目か(^~^) MovesNum int // 指し手のリスト(^~^) Moves []Move }
Position - 局面
func NewPosition ¶
func NewPosition() *Position
func (*Position) GetPieceAtIndex ¶
func (*Position) GetPieceAtSq ¶
func (*Position) ReadPosition ¶
ReadPosition - 局面を読み取ります。マルチバイト文字は含まれていないぜ(^q^)
func (*Position) ResetToStartpos ¶
func (pos *Position) ResetToStartpos()
ResetToStartpos - 初期局面にします。
type Square ¶
type Square int8
マス番号 00~99,100~113
const (
HANDSQ_TYPE_SIZE_SQ Square = Square(HANDSQ_TYPE_SIZE)
)
const (
HAND_TYPE_SIZE_SQ Square = Square(HAND_TYPE_SIZE)
)
const (
SQ_EMPTY Square = 0 // マス番号を指定しないことを意味するマス番号
)
func FromFileRankToSq ¶
Source Files ¶
- models_board.go
- models_hand_idx.go
- models_hand_sq.go
- models_move.go
- models_phase.go
- models_phase_piece.go
- models_phase_piece_piecetype.go
- models_piece.go
- models_piece_piecetype.go
- models_piecetype.go
- models_piecetype_square.go
- models_position.go
- models_position2.go
- models_sq.go
- usi.go
- usi_hand_idx.go
- usi_hand_sq.go
- usi_move.go
- usi_piece.go
- views.go