flutter_stateless_chessboard 0.0.4 flutter_stateless_chessboard: ^0.0.4 copied to clipboard
A Chessboard Widget for Flutter. This package provides just the chessboard. The game logic can be implemented using chess library.
import 'package:flutter/material.dart';
import 'package:flutter_stateless_chessboard/flutter_stateless_chessboard.dart';
import 'utils.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Random Chess App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String fen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return Scaffold(
appBar: AppBar(
title: Text("Random Chess"),
),
body: Center(
child: Chessboard(
fen: fen,
size: size.width,
onMove: (move) {
final nextFen = makeMove(fen, {
'from': move.from,
'to': move.to,
'promotion': 'q',
});
if (nextFen != null) {
setState(() {
fen = nextFen;
});
final nextMove = getRandomMove(fen);
if (nextMove != null) {
Future.delayed(Duration(milliseconds: 300)).then((value) {
setState(() {
fen = makeMove(fen, nextMove);
});
});
}
}
},
),
),
);
}
}