diff --git a/src/ui/flutter/lib/board/pieces_painter.dart b/src/ui/flutter/lib/board/pieces_painter.dart index e84aaf92..b722cc44 100644 --- a/src/ui/flutter/lib/board/pieces_painter.dart +++ b/src/ui/flutter/lib/board/pieces_painter.dart @@ -128,21 +128,34 @@ class PiecesPainter extends PainterBase { var pieceInnerRadius = pieceRadius * 0.99; // 决定棋子外圈有宽 // 绘制棋子边界 - paint.color = Piece.isWhite(pps.piece) - ? Properties.whitePieceBorderColor - : Properties.blackPieceBorderColor; + switch (pps.piece) { + case Piece.blackStone: + paint.color = Properties.blackPieceBorderColor; + canvas.drawCircle(pps.pos, pieceRadius, paint); // 临时调试用 + paint.color = Properties.blackPieceColor; + canvas.drawCircle(pps.pos, pieceInnerRadius, paint); + break; + case Piece.whiteStone: + paint.color = Properties.whitePieceBorderColor; + canvas.drawCircle(pps.pos, pieceRadius, paint); // 临时调试用 + paint.color = Properties.whitePieceColor; + canvas.drawCircle(pps.pos, pieceInnerRadius, paint); + break; + case Piece.ban: + print("pps.piece is Ban"); + paint.color = Properties.banBorderColor; + // TODO + paint.color = Properties.banColor; + canvas.drawLine(new Offset(0, 0), + new Offset(pieceInnerRadius, pieceInnerRadius), paint); + canvas.drawLine(new Offset(pieceInnerRadius, 0), + new Offset(0, pieceInnerRadius), paint); + break; + default: + assert(false); + break; + } - canvas.drawCircle(pps.pos, pieceRadius, paint); // 临时调试用 - - // 绘制棋子内部 - - // 棋子颜色 - paint.color = Piece.isWhite(pps.piece) - ? Properties.whitePieceColor - : Properties.blackPieceColor; - //paint.color = ColorConst.WhitePieceColor; - - canvas.drawCircle(pps.pos, pieceInnerRadius, paint); /* final textSpan = TextSpan(text: Piece.Names[pps.piece], style: textStyle); diff --git a/src/ui/flutter/lib/common/properties.dart b/src/ui/flutter/lib/common/properties.dart index ba6edfef..bb957e77 100644 --- a/src/ui/flutter/lib/common/properties.dart +++ b/src/ui/flutter/lib/common/properties.dart @@ -48,5 +48,8 @@ class Properties { static const whitePieceColor = Color.fromARGB(0xFF, 0xFF, 0xFF, 0xFF); static const whitePieceBorderColor = Color.fromARGB(0xFF, 0x66, 0x00, 0x00); + static const banColor = Color.fromARGB(0xFF, 0xFF, 0x00, 0x00); + static const banBorderColor = Color.fromARGB(0x80, 0xFF, 0x00, 0x00); + static const pieceTextColor = Color.fromARGB(0xCC, 0xFF, 0xFF, 0xFF); } diff --git a/src/ui/flutter/lib/mill/mill.dart b/src/ui/flutter/lib/mill/mill.dart index f0557e10..f69fc0d2 100644 --- a/src/ui/flutter/lib/mill/mill.dart +++ b/src/ui/flutter/lib/mill/mill.dart @@ -95,6 +95,10 @@ class Piece { static bool isBlack(String c) => '@'.contains(c); static bool isWhite(String c) => 'O'.contains(c); + + static bool isBan(String c) => 'X'.contains(c); + + static bool isEmpty(String c) => '*'.contains(c); } class Move {