import 'dart:async'; import '../models/game_event.dart'; import '../models/player.dart'; import 'player_driver.dart'; class DriverUser extends PlayerDriver { late Completer requestMove; DriverUser(Player player) : super(player); @override Future tryDraw() { return Future.value(true); } @override Future move() { requestMove = Completer(); player.manager.add(GameLockEvent(false)); // 招法提示 player.manager.requestHelp(); return requestMove.future; } @override Future ponder() { // TODO: implement ponder throw UnimplementedError(); } @override void completeMove(String move) { if (!requestMove.isCompleted) { requestMove.complete(move); } } @override Future tryRetract() { throw UnimplementedError(); } }