Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ceddral
fahrradwurstmond
Commits
3fbcacbe
Commit
3fbcacbe
authored
Sep 17, 2021
by
ceddral
Browse files
board: define type for field types
parent
ec56470b
Changes
2
Hide whitespace changes
Inline
Side-by-side
board.go
View file @
3fbcacbe
...
...
@@ -17,27 +17,37 @@ const (
)
// 'constants'
var
(
typeBG
map
[
byt
e
]
tg
.
Color
typeFG
map
[
byt
e
]
tg
.
Color
typeBG
map
[
FTyp
e
]
tg
.
Color
typeFG
map
[
FTyp
e
]
tg
.
Color
)
func
InitBoard
()
{
// I miss c++ constexpr
typeBG
=
make
(
map
[
byt
e
]
tg
.
Color
)
typeFG
=
make
(
map
[
byt
e
]
tg
.
Color
)
typeBG
[
'm'
]
=
tg
.
ColorRed
typeBG
[
'b'
]
=
tg
.
ColorGreen
typeBG
[
'w'
]
=
tg
.
ColorGreen
typeBG
[
'r'
]
=
tg
.
ColorYellow
typeFG
[
'm'
]
=
tg
.
ColorBlack
typeFG
[
'b'
]
=
tg
.
ColorBlack
typeFG
[
'w'
]
=
tg
.
ColorWhite
typeFG
[
'r'
]
=
tg
.
ColorBlack
typeBG
=
make
(
map
[
FTyp
e
]
tg
.
Color
)
typeFG
=
make
(
map
[
FTyp
e
]
tg
.
Color
)
typeBG
[
fCloister
]
=
tg
.
ColorRed
typeBG
[
fFarm
]
=
tg
.
ColorGreen
typeBG
[
fRoad
]
=
tg
.
ColorGreen
typeBG
[
fCity
]
=
tg
.
ColorYellow
typeFG
[
fCloister
]
=
tg
.
ColorBlack
typeFG
[
fFarm
]
=
tg
.
ColorBlack
typeFG
[
fRoad
]
=
tg
.
ColorWhite
typeFG
[
fCity
]
=
tg
.
ColorBlack
}
type
FType
byte
const
(
fRoad
FType
=
'w'
fCity
FType
=
'r'
fCloister
FType
=
'm'
fFarm
FType
=
'b'
fTower
FType
=
't'
)
type
Field
struct
{
preRendered
[]
byte
t
byt
e
t
FTyp
e
id
byte
fgOverride
tg
.
Color
c
byte
...
...
@@ -46,7 +56,7 @@ type Field struct {
type
Piece
struct
{
f
[][][]
Field
// 'graphic' representation [rotation][row][col]
fieldIdToType
map
[
byte
]
byt
e
fieldIdToType
map
[
byte
]
FTyp
e
copies
int
}
...
...
@@ -504,11 +514,11 @@ func readpieces(filename string) (pieces []Piece, err error) {
}
}
row
=
0
curPiece
.
fieldIdToType
=
make
(
map
[
byte
]
byt
e
)
curPiece
.
fieldIdToType
=
make
(
map
[
byte
]
FTyp
e
)
meta
:=
strings
.
Split
(
s
.
Text
(),
" "
)
curPiece
.
fieldIdToType
[
'X'
]
=
'b'
curPiece
.
fieldIdToType
[
'X'
]
=
fFarm
for
i
,
c
:=
range
[]
byte
(
meta
[
0
])
{
curPiece
.
fieldIdToType
[
byte
(
i
)
+
'0'
]
=
c
curPiece
.
fieldIdToType
[
byte
(
i
)
+
'0'
]
=
FType
(
c
)
}
curPiece
.
copies
,
err
=
strconv
.
Atoi
(
meta
[
1
])
if
err
!=
nil
{
...
...
game.go
View file @
3fbcacbe
...
...
@@ -134,15 +134,15 @@ func toToken(b byte) Token {
return
tNone
}
func
(
t
Token
)
placeable
(
fType
byt
e
)
bool
{
func
(
t
Token
)
placeable
(
fType
FTyp
e
)
bool
{
switch
(
t
)
{
case
tFollower
:
return
true
case
tBigFollower
:
return
true
case
tMayor
:
return
fType
==
'r'
||
fType
==
't'
case
tWagon
:
return
fType
!=
'b'
||
fType
==
't'
case
tBuilder
:
return
fType
==
'r'
||
fType
==
'w'
case
tPig
:
return
fType
==
'b'
case
tTower
:
return
fType
==
't'
case
tMayor
:
return
fType
==
fCity
||
fType
==
fTower
case
tWagon
:
return
fType
!=
fFarm
||
fType
==
fTower
case
tBuilder
:
return
fType
==
fCity
||
fType
==
fRoad
case
tPig
:
return
fType
==
fFarm
case
tTower
:
return
fType
==
fTower
default
:
panic
(
"unexpected token can not be converted to byte representation"
)
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment