v1.1.2flutter_stateless_chessboard
Flutter के लिए एक शतरंज बोर्ड विजेट। इस पैकेज में केवल शतरंज बोर्ड ही प्रदान किया गया है। खेल की तर्कशास्त्र को चिस लाइब्रेरी का उपयोग करके लागू किया जा सकता है।
Flutter के लिए शतरंज बोर्ड विजेट
{"sdk":"flutter"}^1.0.16^0.7.0^0.0.12^6.0.1{"sdk":"flutter"}यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
A Stateless Chessboard Widget for Flutter. This package provides just the chessboard. The game logic can be implemented using chess library. Check example/main.dart file, for implementing game logic.
Simple Chess App]To use Chessboard widget, add flutter_stateless_chessboard as a dependency in your pubspec.yaml
void main() {
runApp(
new MaterialApp(
home: Scaffold(
body: Center(
child: Chessboard(
size: 300,
fen: "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",
onMove: (move) {
// optional
// TODO: process the move
print("move from ${move.from} to ${move.to}");
},
orientation: BoardColor.BLACK, // optional
lightSquareColor: Color.fromRGBO(240, 217, 181, 1), // optional
darkSquareColor: Color.fromRGBO(181, 136, 99, 1), // optional
),
),
),
),
);
}
For handling promotion. You can implement onPromote param. And return the PieceType you want to promote to. See below example.
Chessboard(
fen: "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",
size: 400,
onMove: ...,
onPromote: () {
return showDialog<PieceType>(
context: context,
builder: (_) {
return AlertDialog(
title: Text('Promotion'),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
ListTile(
title: Text("Queen"),
onTap: () => navigator.pop(PieceType.QUEEN),
),
ListTile(
title: Text("Rook"),
onTap: () => navigator.pop(PieceType.ROOK),
),
ListTile(
title: Text("Bishop"),
onTap: () => navigator.pop(PieceType.BISHOP),
),
ListTile(
title: Text("Knight"),
onTap: () => navigator.pop(PieceType.KNIGHT),
),
],
),
);
},
);
},
);
Handling Promotion
By default, library uses chess_vectors_flutter for pieces. But you can build your own piece widget by implementing buildPiece param. See below example.
Chessboard(
fen: "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",
size: 400,
buildPiece: (piece, size) {
if (piece == Piece.WHITE_PAWN) {
return Icon(
Icons.person,
size: size,
color: Colors.white,
);
} else if (piece == Piece.BLACK_PAWN) {
return Icon(
Icons.person,
size: size,
color: Colors.black,
);
}
},
);
If you don't return widget for a PieceType default widget will be rendered. This is how the above Chessboard will look.
fen that should be show on the board (example rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1)
Size of the chessboard widget
Called when a move is made on the board. Passing a ShortMove(from, to, promotion).
Specify orientation of the chessboard.
color of light square on chessboard.
color of dart square on chessboard.
handle piece promotion
handle building of custom piece