chess.dart 640 B

123456789101112131415161718192021222324252627
  1. import 'package:flutter/material.dart';
  2. import 'package:gobang/models/chess_shape.dart';
  3. import 'package:gobang/models/circle_shape.dart';
  4. /// 棋子抽象类(桥接:颜色与外观分离)
  5. /// 颜色为享元内部状态;实际绘制以外层 Position.chessShape 为准。
  6. abstract class Chess {
  7. Color get color;
  8. ChessShape get chessShape;
  9. }
  10. class BlackChess extends Chess {
  11. @override
  12. Color get color => Colors.black;
  13. @override
  14. ChessShape get chessShape => CircleShape();
  15. }
  16. class WhiteChess extends Chess {
  17. @override
  18. Color get color => Colors.white;
  19. @override
  20. ChessShape get chessShape => CircleShape();
  21. }