freego/piece.go

53 lines
746 B
Go

package freego
//Rank represents the rank of a piece
//go:generate enumer -type=Rank
type Rank int
//Rank rank pieces
const (
Flag Rank = iota
Spy
Scout
Miner
Captain
General
Marshal
Bomb
Unknown
)
//Piece :game piece
type Piece struct {
Rank Rank
Owner Colour
Hidden bool
}
//NewPieceFromInt creates a new piece
func NewPieceFromInt(r int, o Colour) *Piece {
return &Piece{
Rank: Rank(r),
Owner: o,
Hidden: false,
}
}
//NewPiece generates a piece by rank
func NewPiece(r Rank, o Colour) *Piece {
return &Piece{
Rank: r,
Owner: o,
Hidden: true,
}
}
//NewUnknownPiece creates a new hidden piece
func NewUnknownPiece(o Colour) *Piece {
return &Piece{
Owner: o,
Rank: Unknown,
Hidden: true,
}
}