import 'package:gobang/models/position.dart'; import 'package:gobang/models/care_taker.dart'; import 'package:gobang/models/memo.dart'; class Checkerboard { Checkerboard._(); static final Checkerboard instance = Checkerboard._(); static Checkerboard getInstance() => instance; List _state = []; List get state => _state; final CareTaker _careTaker = CareTaker(); void add(Position position) { _state.add(position); _careTaker.add(_save()); } void _from(Memo memo) { _state = List.of(memo.state); } Memo _save() => Memo(_state); void clean() { _state = []; _careTaker.clear(); } void undo() { final memo = _careTaker.getLast(); _from(memo); } }