gobang_board.dart 775 B

12345678910111213141516171819202122232425262728
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:gobang/controllers/game_controller.dart';
  4. import 'package:gobang/widgets/board_painter.dart';
  5. /// 可点击的五子棋棋盘
  6. class GobangBoard extends StatelessWidget {
  7. const GobangBoard({super.key, required this.size});
  8. final double size;
  9. @override
  10. Widget build(BuildContext context) {
  11. final c = Get.find<GameController>();
  12. return Obx(
  13. () => GestureDetector(
  14. onTapDown: (d) => c.onBoardTap(d.localPosition, size),
  15. child: CustomPaint(
  16. size: Size.square(size),
  17. painter: BoardPainter(
  18. pieces: List.unmodifiable(c.board.state),
  19. version: c.paintVersion.value,
  20. ),
  21. ),
  22. ),
  23. );
  24. }
  25. }