53 lines
746 B
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,
|
|
}
|
|
}
|