driver_user.dart 898 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'dart:async';
  2. import '../models/game_event.dart';
  3. import '../models/player.dart';
  4. import 'player_driver.dart';
  5. class DriverUser extends PlayerDriver {
  6. late Completer<String> requestMove;
  7. DriverUser(Player player) : super(player);
  8. @override
  9. Future<bool> tryDraw() {
  10. return Future.value(true);
  11. }
  12. @override
  13. Future<String?> move() {
  14. requestMove = Completer<String>();
  15. player.manager.add(GameLockEvent(false));
  16. // 招法提示
  17. player.manager.requestHelp();
  18. return requestMove.future;
  19. }
  20. @override
  21. Future<String> ponder() {
  22. // TODO: implement ponder
  23. throw UnimplementedError();
  24. }
  25. @override
  26. void completeMove(String move) {
  27. if (!requestMove.isCompleted) {
  28. requestMove.complete(move);
  29. }
  30. }
  31. @override
  32. Future<bool> tryRetract() {
  33. throw UnimplementedError();
  34. }
  35. }