import 'package:flutter_chinese_chees/models/game_event.dart'; import '../driver/player_driver.dart'; import '../global.dart'; import 'game_manager.dart'; class Player { GameManager manager; String lastPosition = ''; String team = 'r'; String title = '红方'; int totalTime = 0; int stepTime = 0; late DriverType _driverType; late PlayerDriver driver; Player( this.team, this.manager, { this.title = '', DriverType type = DriverType.user, }) { _driverType = type; } set driverType(DriverType type) { _driverType = type; driver = PlayerDriver.createDriver(this, _driverType); } DriverType get driverType => _driverType; bool get isUser => _driverType == DriverType.user; bool get isRobot => _driverType == DriverType.robot; bool get canBacktrace => driver.canBacktrace; // 通知界面,从界面上过来的着法不需要调用 Future onMove(String move) { logger.info('onmove'); manager.add(GameMoveEvent(move)); return Future.value(move); } Future onDraw() => driver.tryDraw(); Future move() => driver.move(); void completeMove(String move) { driver.completeMove(move); } }