Documentation ¶
Overview ¶
評価関数
駒の価値
利きのテスト
Index ¶
- Constants
- Variables
- func AddControlBishop(pPos *Position, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard, sign int16, ...)
- func AddControlLance(pPos *Position, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard, sign int16, ...)
- func AddControlRook(pPos *Position, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard, sign int16, ...)
- func CountAllPieces(pPos *Position) [8]int
- func CountErrorCountLists(countList1 [8]int, countList2 [8]int) int
- func EvalControlVal(pPosSys *PositionSystem) int16
- func EvalMaterial(piece Piece) int16
- func MainLoop()
- func NifuFirst(pPos *Position, file Square) bool
- func NifuSecond(pPos *Position, file Square) bool
- func OnBoard(sq Square) bool
- func OnHands(sq Square) bool
- func ShowAllPiecesCount(pPos *Position)
- func ShuffleBoard(pPosSys *PositionSystem, pPos *Position)
- func SumAbsControl(pPosSys *PositionSystem, ph1_c ControlLayerT, ph2_c ControlLayerT) [2]int
- func TestControl(pPosSys *PositionSystem, pPos *Position) (bool, string)
- func ValidateSq(sq Square)
- func ValidateThereArePieceIn(pPos *Position, sq Square)
- func WaterColor(pCB1 *ControlBoard, pCB2 *ControlBoard, pCB3 *ControlBoard, pCB4 *ControlBoard, ...)
- type BuildT
- type ControlBoard
- type ControlBoardSystem
- func (pCtrlBrdSys *ControlBoardSystem) ClearControlDiff(buildType BuildT)
- func (pCtrlBrdSys *ControlBoardSystem) ClearControlLayer1(ph1_c ControlLayerT, ph2_c ControlLayerT)
- func (pCtrlBrdSys *ControlBoardSystem) DiffControl(c1 ControlLayerT, c2 ControlLayerT, c3 ControlLayerT)
- func (pCtrlBrdSys *ControlBoardSystem) MergeControlDiff(buildType BuildT)
- func (pCtrlBrdSys *ControlBoardSystem) RecalculateControl(pPos *Position, ph1_c1 ControlLayerT, ph2_c1 ControlLayerT)
- type ControlLayerT
- type CuttingType
- type EngineConf
- type Move
- func (move Move) GetDestination() Square
- func (move Move) GetPromotion() bool
- func (move Move) GetSource() Square
- func (move Move) ReplaceDestination(sq Square) Move
- func (move Move) ReplacePromotion(promotion bool) Move
- func (move Move) ReplaceSource(sq Square) Move
- func (move Move) ToCode() string
- type MoveEnd
- type Phase
- type Piece
- type PieceType
- type PosLayerT
- type Position
- func (pPos *Position) GetPieceLocation(index int) Square
- func (pPos *Position) Hetero(from Square, to Square) bool
- func (pPos *Position) Homo(from Square, to Square) bool
- func (pPos *Position) IsEmptySq(sq Square) bool
- func (pPos *Position) Sprint(phase Phase, startMovesNum int, offsetMovesIndex int, moves_text string) string
- func (pPos *Position) SprintLocation() string
- type PositionSystem
- func (pPosSys *PositionSystem) DoMove(pPos *Position, move Move)
- func (pPosSys *PositionSystem) Dump() string
- func (pPosSys *PositionSystem) FlipPhase()
- func (pPosSys *PositionSystem) GetPhase() Phase
- func (pPosSys *PositionSystem) ReadPosition(pPos *Position, command string)
- func (pPosSys *PositionSystem) SprintControl(c ControlLayerT) string
- func (pPosSys *PositionSystem) SprintDiff(b1 PosLayerT, b2 PosLayerT) string
- func (pPosSys *PositionSystem) SprintRecord() string
- func (pPosSys *PositionSystem) SprintSfenResignation(pPos *Position) string
- func (pPosSys *PositionSystem) UndoMove(pPos *Position)
- type Profile
- type Square
- type Variables
Constants ¶
const ( // 先手用 CONTROL_LAYER_SUM1 = ControlLayerT(0) // 先手の利きボード CONTROL_LAYER_DIFF1_ROOK_OFF = ControlLayerT(1) // 飛の利き 負(差分) CONTROL_LAYER_DIFF1_BISHOP_OFF = ControlLayerT(2) // 角の利き 負(差分) CONTROL_LAYER_DIFF1_LANCE_OFF = ControlLayerT(3) // 香の利き 負(差分) CONTROL_LAYER_DIFF1_LANCE_ON = ControlLayerT(4) // 香の利き 正(差分) CONTROL_LAYER_DIFF1_BISHOP_ON = ControlLayerT(5) // 角の利き 正(差分) CONTROL_LAYER_DIFF1_ROOK_ON = ControlLayerT(6) // 飛の利き 正(差分) // 先手用/開発時のみ CONTROL_LAYER_DIFF1_PUT = ControlLayerT(7) // 打とか指すとか CONTROL_LAYER_DIFF1_REMOVE = ControlLayerT(8) CONTROL_LAYER_DIFF1_CAPTURED = ControlLayerT(9) // 後手用 CONTROL_LAYER_SUM2 = ControlLayerT(10) // 後手の利きボード CONTROL_LAYER_DIFF2_ROOK_OFF = ControlLayerT(11) CONTROL_LAYER_DIFF2_BISHOP_OFF = ControlLayerT(12) CONTROL_LAYER_DIFF2_LANCE_OFF = ControlLayerT(13) CONTROL_LAYER_DIFF2_LANCE_ON = ControlLayerT(14) CONTROL_LAYER_DIFF2_BISHOP_ON = ControlLayerT(15) CONTROL_LAYER_DIFF2_ROOK_ON = ControlLayerT(16) // 後手用/開発時のみ CONTROL_LAYER_DIFF2_PUT = ControlLayerT(17) // 打とか指すとか CONTROL_LAYER_DIFF2_REMOVE = ControlLayerT(18) CONTROL_LAYER_DIFF2_CAPTURED = ControlLayerT(19) // テスト(先手用) CONTROL_LAYER_TEST_COPY1 = ControlLayerT(20) // テスト用 CONTROL_LAYER_TEST_ERROR1 = ControlLayerT(21) // テスト用 CONTROL_LAYER_TEST_RECALCULATION1 = ControlLayerT(22) // テスト用 再計算 // テスト(後手用) CONTROL_LAYER_TEST_COPY2 = ControlLayerT(23) CONTROL_LAYER_TEST_ERROR2 = ControlLayerT(24) CONTROL_LAYER_TEST_RECALCULATION2 = ControlLayerT(25) // 評価値用 CONTROL_LAYER_EVAL1 = ControlLayerT(26) // 評価関数用 CONTROL_LAYER_EVAL2 = ControlLayerT(27) // 評価関数用 CONTROL_LAYER_EVAL3 = ControlLayerT(28) // 評価関数用 // 計測 CONTROL_LAYER_DIFF_TYPE_SIZE_RELEASE = ControlLayerT(6) CONTROL_LAYER_DIFF_TYPE_SIZE_DEV = ControlLayerT(9) CONTROL_LAYER_DIFF1_START = ControlLayerT(1) CONTROL_LAYER_DIFF1_END_RELEASE = CONTROL_LAYER_DIFF1_START + CONTROL_LAYER_DIFF_TYPE_SIZE_RELEASE // この数を含まない。テスト用も含まない CONTROL_LAYER_DIFF1_END_DEV = CONTROL_LAYER_DIFF1_START + CONTROL_LAYER_DIFF_TYPE_SIZE_DEV // この数を含まない。テスト用も含まない CONTROL_LAYER_DIFF2_START = ControlLayerT(11) CONTROL_LAYER_DIFF2_END_RELEASE = CONTROL_LAYER_DIFF2_START + CONTROL_LAYER_DIFF_TYPE_SIZE_RELEASE // この数を含まない。テスト用も含まない CONTROL_LAYER_DIFF2_END_DEV = CONTROL_LAYER_DIFF2_START + CONTROL_LAYER_DIFF_TYPE_SIZE_DEV // この数を含まない。テスト用も含まない CONTROL_LAYER_ALL_SIZE = ControlLayerT(29) // この数を含まない )
const ( // 持ち駒を打つ 100~115 // 先手飛打 SQ_K1 = Square(100) SQ_R1 = Square(101) SQ_B1 = Square(102) SQ_G1 = Square(103) SQ_S1 = Square(104) SQ_N1 = Square(105) SQ_L1 = Square(106) SQ_P1 = Square(107) SQ_K2 = Square(108) SQ_R2 = Square(109) SQ_B2 = Square(110) SQ_G2 = Square(111) SQ_S2 = Square(112) SQ_N2 = Square(113) SQ_L2 = Square(114) SQ_P2 = Square(115) SQ_HAND_START = SQ_K1 SQ_HAND_END = SQ_P2 + 1 // この数を含まない )
const ( PIECE_TYPE_EMPTY = PieceType(0) // 空マス PIECE_TYPE_K = PieceType(1) PIECE_TYPE_R = PieceType(2) PIECE_TYPE_B = PieceType(3) PIECE_TYPE_G = PieceType(4) PIECE_TYPE_S = PieceType(5) PIECE_TYPE_N = PieceType(6) PIECE_TYPE_L = PieceType(7) PIECE_TYPE_P = PieceType(8) PIECE_TYPE_PR = PieceType(9) PIECE_TYPE_PB = PieceType(10) PIECE_TYPE_PS = PieceType(11) PIECE_TYPE_PN = PieceType(12) PIECE_TYPE_PL = PieceType(13) PIECE_TYPE_PP = PieceType(14) )
const ( POS_LAYER_MAIN = PosLayerT(0) POS_LAYER_COPY = PosLayerT(1) // テスト用 POS_LAYER_DIFF1 = PosLayerT(2) // テスト用 POS_LAYER_DIFF2 = PosLayerT(3) // テスト用 POS_LAYER_SIZE = 4 )
const ( // 空マス ZEROTH = Phase(0) // 先手 FIRST = Phase(1) // 後手 SECOND = Phase(2) )
const ( PIECE_EMPTY = iota PIECE_K1 PIECE_R1 PIECE_B1 PIECE_G1 PIECE_S1 PIECE_N1 PIECE_L1 PIECE_P1 PIECE_PR1 PIECE_PB1 PIECE_PS1 PIECE_PN1 PIECE_PL1 PIECE_PP1 PIECE_K2 PIECE_R2 PIECE_B2 PIECE_G2 PIECE_S2 PIECE_N2 PIECE_L2 PIECE_P2 PIECE_PR2 PIECE_PB2 PIECE_PS2 PIECE_PN2 PIECE_PL2 PIECE_PP2 )
駒
const ( // 持ち駒を打つ 0~15 (Index) HAND_K1_IDX = 0 HAND_R1_IDX = 1 // 先手飛打 HAND_B1_IDX = 2 HAND_G1_IDX = 3 HAND_S1_IDX = 4 HAND_N1_IDX = 5 HAND_L1_IDX = 6 HAND_P1_IDX = 7 HAND_K2_IDX = 8 HAND_R2_IDX = 9 HAND_B2_IDX = 10 HAND_G2_IDX = 11 HAND_S2_IDX = 12 HAND_N2_IDX = 13 HAND_L2_IDX = 14 HAND_P2_IDX = 15 HAND_SIZE = 16 HAND_TYPE_SIZE = 8 HAND_IDX_START = HAND_K1_IDX HAND_IDX_END = HAND_SIZE // この数を含まない )
const ( PCLOC_K1 = iota PCLOC_K2 PCLOC_R1 PCLOC_R2 PCLOC_B1 PCLOC_B2 PCLOC_L1 PCLOC_L2 PCLOC_L3 PCLOC_L4 PCLOC_START = 0 PCLOC_END = 10 //この数を含まない PCLOC_SIZE = 10 )
Piece location
const ( BUILD_DEV = BuildT(0) BUILD_RELEASE = BuildT(1) )
const ( CuttingNone = CuttingType(0) CuttingKingCapture = CuttingType(1) )
const (
// Author - 囲碁思考エンジンの作者名だぜ☆(^~^)
Author = "Satoshi Takahashi"
)
const BOARD_SIZE = 100
00~99
const MAX_VALUE = 32767
const MOVES_SIZE = 512
電竜戦が一番長いだろ(^~^)
const NOT_PROMOTE = false
成りの手は生成しません
const PHASE_ARRAY_SIZE = 2
[0], [1]
const RESIGN_MOVE = Move(0)
0 は 投了ということにするぜ(^~^)
const RESIGN_MOVE_END = MoveEnd(0)
0 は 投了ということにするぜ(^~^)
const RESIGN_VALUE = -32768
const SQUARE_EMPTY = Square(0)
マス番号を指定しないことを意味するマス番号
Variables ¶
var HandPieceMap1 = [HAND_SIZE]Piece{ PIECE_K1, PIECE_R1, PIECE_B1, PIECE_G1, PIECE_S1, PIECE_N1, PIECE_L1, PIECE_P1, PIECE_K2, PIECE_R2, PIECE_B2, PIECE_G2, PIECE_S2, PIECE_N2, PIECE_L2, PIECE_P2}
var OneDigitNumbers = [10]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
position sfen の盤のスペース数に使われますN
Functions ¶
func AddControlBishop ¶
func AddControlBishop(pPos *Position, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard, sign int16, excludeFrom Square)
AddControlBishop - 長い利きの駒の利きを調べて、利きの差分テーブルの値を増減させます
func AddControlLance ¶
func AddControlLance(pPos *Position, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard, sign int16, excludeFrom Square)
AddControlLance - 長い利きの駒の利きを調べて、利きの差分テーブルの値を増減させます
func AddControlRook ¶
func AddControlRook(pPos *Position, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard, sign int16, excludeFrom Square)
AddControlRook - 長い利きの駒の利きを調べて、利きの差分テーブルの値を増減させます
func CountErrorCountLists ¶
CountErrorCountLists - 数えた駒の枚数を比較します
func EvalControlVal ¶
func EvalControlVal(pPosSys *PositionSystem) int16
EvalControlVal - 葉局面での利きの評価
func ShuffleBoard ¶
func ShuffleBoard(pPosSys *PositionSystem, pPos *Position)
ShuffleBoard - 盤上の駒、持ち駒をシャッフルします ゲーム中にはできない動きをするので、利きの計算は無視します。 最後に利きは再計算します
func SumAbsControl ¶
func SumAbsControl(pPosSys *PositionSystem, ph1_c ControlLayerT, ph2_c ControlLayerT) [2]int
SumAbsControl - 利きテーブルの各マスを絶対値にし、その総和を返します
func TestControl ¶
func TestControl(pPosSys *PositionSystem, pPos *Position) (bool, string)
TestControl
func ValidateThereArePieceIn ¶
func WaterColor ¶
func WaterColor(pCB1 *ControlBoard, pCB2 *ControlBoard, pCB3 *ControlBoard, pCB4 *ControlBoard, pCB5 *ControlBoard)
WaterColor - 水で薄めたような評価値にします pCB3 = 0 pCB4 = 0 pCB5 = 0 pCB1 - pCB2 = pCB3 pCB3 - pCB4 = pCB5
Types ¶
type ControlBoard ¶
type ControlBoard struct { // 表示用の名前 Title string // マスへの利き数、または差分、さらには評価値が入っています Board1 [BOARD_SIZE]int16 }
ControlBoard - 利きボード
func ControllBoardFromPhase ¶
func ControllBoardFromPhase( phase Phase, pPh1_CB *ControlBoard, pPh2_CB *ControlBoard) *ControlBoard
func (*ControlBoard) AddControl ¶
func (pCB *ControlBoard) AddControl(sq_list []Square, from Square, sign int16)
AddControl - 盤上のマスを指定することで、そこにある駒の利きを調べて、利きの差分テーブルの値を増減させます
type ControlBoardSystem ¶
type ControlBoardSystem struct { // マスへの利き数、または差分が入っています。デバッグ目的で無駄に分けてるんだけどな(^~^) PBoards [CONTROL_LAYER_ALL_SIZE]*ControlBoard }
ControlBoardSystem - 利きボード・システム
func NewControlBoardSystem ¶
func NewControlBoardSystem() *ControlBoardSystem
func (*ControlBoardSystem) ClearControlDiff ¶
func (pCtrlBrdSys *ControlBoardSystem) ClearControlDiff(buildType BuildT)
ClearControlDiff - 利きの差分テーブルをクリアーするぜ(^~^)
func (*ControlBoardSystem) ClearControlLayer1 ¶
func (pCtrlBrdSys *ControlBoardSystem) ClearControlLayer1(ph1_c ControlLayerT, ph2_c ControlLayerT)
ClearControlLayer - 利きボードのクリアー
func (*ControlBoardSystem) DiffControl ¶
func (pCtrlBrdSys *ControlBoardSystem) DiffControl(c1 ControlLayerT, c2 ControlLayerT, c3 ControlLayerT)
DiffControl - 利きテーブルの差分計算
func (*ControlBoardSystem) MergeControlDiff ¶
func (pCtrlBrdSys *ControlBoardSystem) MergeControlDiff(buildType BuildT)
MergeControlDiff - 利きの差分を解消するぜ(^~^)
func (*ControlBoardSystem) RecalculateControl ¶
func (pCtrlBrdSys *ControlBoardSystem) RecalculateControl( pPos *Position, ph1_c1 ControlLayerT, ph2_c1 ControlLayerT)
RecalculateControl - 利きの再計算
type CuttingType ¶
type CuttingType int
type EngineConf ¶
type EngineConf struct {
Profile Profile
}
EngineConf - Tomlファイル。
func LoadEngineConf ¶
func LoadEngineConf(path string) (*EngineConf, error)
LoadEngineConf - ゲーム設定ファイルを読み込みます。
type Move ¶
type Move uint16
Move - 指し手
15bit で表せるはず(^~^) .pdd dddd dsss ssss
1~7bit: 移動元(0~127) 8~14bit: 移動先(0~127) 15bit: 成(0~1)
func GenMoveList ¶
func GenMoveList(pPosSys *PositionSystem, pPos *Position) []Move
GenMoveList - 現局面の指し手のリスト。合法手とは限らないし、全ての合法手を含むとも限らないぜ(^~^)
func NewMoveValue ¶
func NewMoveValue() Move
func NewMoveValue2 ¶
NewMoveValue2 - 初期値として 移動元マス、移動先マスを指定してください TODO 成、不成も欲しいぜ(^~^)
func (Move) GetDestination ¶
GetDestination - 移動元マス 0011 1111 1000 0000 (Mask) 0x3f80 .pdd dddd dsss ssss
func (Move) GetPromotion ¶
GetPromotion - 成 0100 0000 0000 0000 (Mask) 0x4000 .pdd dddd dsss ssss
func (Move) ReplaceDestination ¶
ReplaceDestination - 移動先マス 1100 0000 0111 1111 (Clear) 0xc07f .pdd dddd dsss ssss
func (Move) ReplacePromotion ¶
ReplacePromotion - 成 0100 0000 0000 0000 (Stand) 0x4000 1011 1111 1111 1111 (Clear) 0xbfff .pdd dddd dsss ssss
func (Move) ReplaceSource ¶
ReplaceSource - 移動元マス 1111 1111 1000 0000 (Clear) 0xff80 .pdd dddd dsss ssss
type MoveEnd ¶
type MoveEnd uint8
MoveEnd - 移動先と成り
pddd dddd
1~7bit: 移動先(0~127) 8bit: 成(0~1)
func GenControl ¶
GenControl - 利いているマスの一覧を返します。動けるマスではありません。 成らないと移動できないが、成れば移動できるマスがあるので、移動先と成りの2つセットで返します。 TODO 成る、成らないも入れたいぜ(^~^)
func NewMoveEndValue ¶
func NewMoveEndValue() MoveEnd
func NewMoveEndValue2 ¶
NewMoveEndValue2 - 初期値として 移動元マス、成り を指定してください
func (MoveEnd) GetDestination ¶
GetDestination - 移動先マス 0111 1111 (Mask) 0x7f pddd dddd
func (MoveEnd) GetPromotion ¶
GetPromotion - 成 1000 0000 (Mask) 0x80 pddd dddd
func (MoveEnd) ReplaceDestination ¶
ReplaceDestination - 移動先マス 1000 0000 (Clear) 0x80 pddd dddd
func (MoveEnd) ReplacePromotion ¶
ReplacePromotion - 成 1000 0000 (Stand) 0x80 0111 1111 (Clear) 0x7f pddd dddd
type Position ¶
type Position struct { // Go言語で列挙型めんどくさいんで文字列で(^~^) // [19] は 1九、 [91] は 9一(^~^)反時計回りに90°回転した将棋盤の状態で入ってるぜ(^~^)想像しろだぜ(^~^) Board [BOARD_SIZE]Piece // 駒の場所 // [0]先手玉 [1]後手玉 [2:3]飛 [4:5]角 [6:9]香 PieceLocations [PCLOC_SIZE]Square // 持ち駒の数だぜ(^~^)玉もある(^~^) K, R, B, G, S, N, L, P, k, r, b, g, s, n, l, p Hands1 [HAND_SIZE]int // 先手から見た駒得評価値 MaterialValue int16 }
Position - 局面 TODO 利きボードも含めたい
func NewPosition ¶
func NewPosition() *Position
func (*Position) GetPieceLocation ¶
func (*Position) Hetero ¶
Hetero - 移動元と移動先の駒を持つプレイヤーが異なれば真。移動先が空マスでも真 持ち駒は指定してはいけません。 Homo の逆だぜ(^~^)片方ありゃいいんだけど(^~^)
func (*Position) Sprint ¶
func (pPos *Position) Sprint(phase Phase, startMovesNum int, offsetMovesIndex int, moves_text string) string
Print - 局面出力(^q^)
func (*Position) SprintLocation ¶
SprintLocation - あの駒どこにいんの?を表示
type PositionSystem ¶
type PositionSystem struct { // 開発モードフラグ。デフォルト値:真。 'usi' コマンドで解除 BuildType BuildT // 局面 PPosition [POS_LAYER_SIZE]*Position // 利きボード・システム PControlBoardSystem *ControlBoardSystem // 開始局面の時点で何手目か(^~^)これは表示のための飾りのようなものだぜ(^~^) StartMovesNum int // 開始局面から数えて何手目か(^~^)0から始まるぜ(^~^) OffsetMovesIndex int // 指し手のリスト(^~^) // 1手目は[0]へ、512手目は[511]へ入れろだぜ(^~^) Moves [MOVES_SIZE]Move // 取った駒のリスト(^~^)アンドゥ ムーブするときに使うだけ(^~^)指し手のリストと同じ添え字を使うぜ(^~^) CapturedList [MOVES_SIZE]Piece // contains filtered or unexported fields }
PositionSystem - 局面にいろいろな機能を付けたもの
func NewPositionSystem ¶
func NewPositionSystem() *PositionSystem
func (*PositionSystem) DoMove ¶
func (pPosSys *PositionSystem) DoMove(pPos *Position, move Move)
DoMove - 一手指すぜ(^~^)
func (*PositionSystem) Dump ¶
func (pPosSys *PositionSystem) Dump() string
Dump - 内部状態を全部出力しようぜ(^~^)?
func (*PositionSystem) FlipPhase ¶
func (pPosSys *PositionSystem) FlipPhase()
FlipPhase - フェーズをひっくり返すぜ(^~^)
func (*PositionSystem) ReadPosition ¶
func (pPosSys *PositionSystem) ReadPosition(pPos *Position, command string)
ReadPosition - 局面を読み取ります。マルチバイト文字は含まれていないぜ(^q^)
func (*PositionSystem) SprintControl ¶
func (pPosSys *PositionSystem) SprintControl(c ControlLayerT) string
SprintControl - 利き数ボード出力(^q^)
Parameters ---------- * `c` - 利き数ボードのレイヤー番号(^~^)
func (*PositionSystem) SprintDiff ¶
func (pPosSys *PositionSystem) SprintDiff(b1 PosLayerT, b2 PosLayerT) string
Print - 2局面の比較用画面出力(^q^)
func (*PositionSystem) SprintRecord ¶
func (pPosSys *PositionSystem) SprintRecord() string
SprintRecord - 棋譜表示(^~^)
func (*PositionSystem) SprintSfenResignation ¶
func (pPosSys *PositionSystem) SprintSfenResignation(pPos *Position) string
SprintSfen - SFEN文字列返せよ(^~^)投了図を返すぜ(^~^)棋譜の部分を捨てるぜ(^~^)
func (*PositionSystem) UndoMove ¶
func (pPosSys *PositionSystem) UndoMove(pPos *Position)
UndoMove - 棋譜を頼りに1手戻すぜ(^~^)
type Square ¶
type Square uint32
マス番号 00~99,100~113
func MoveEndListToControlList ¶
MoveEndListToControlList - 移動先、成りのリストを、移動先のリストに変換します
Source Files ¶
- control_board.go
- control_board_paint.go
- control_board_scanner.go
- control_board_system.go
- engine-conf-toml.go
- engine-conf.go
- evaluation.go
- evaluation_material.go
- genmove.go
- global.go
- kifuwarabe.go
- move.go
- move_end.go
- piece.go
- position.go
- position_print.go
- position_system.go
- position_system_print.go
- position_system_testing.go
- search.go
- validation.go