simple_chess_board 1.8.0 copy "simple_chess_board: ^1.8.0" to clipboard
simple_chess_board: ^1.8.0 copied to clipboard

A simple chess board widget which do not handle game state, but with several options for board orientation, adding arrows, and others.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:simple_chess_board_usage/variants/custom_move_indicator.dart';
import 'package:simple_chess_board_usage/variants/handling_promotions.dart';
import 'package:simple_chess_board_usage/variants/interactive.dart';
import 'package:simple_chess_board_usage/variants/simple.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Simple chess board Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({
    super.key,
  });

  Future<void> _goToSimpleBoard(BuildContext context) async {
    await Navigator.of(context).push(MaterialPageRoute(builder: (context) {
      return SimpleBoardVariant();
    }));
  }

  Future<void> _goToInteractiveBoard(BuildContext context) async {
    await Navigator.of(context).push(MaterialPageRoute(builder: (context) {
      return InteractiveBoard();
    }));
  }

  Future<void> _goToCustomIndicatorsBoard(BuildContext context) async {
    await Navigator.of(context).push(MaterialPageRoute(builder: (context) {
      return CustomMoveIndicator();
    }));
  }

  Future<void> _goToPromotionHandling(BuildContext context) async {
    await Navigator.of(context).push(MaterialPageRoute(builder: (context) {
      return HandlingPromotionsBoard();
    }));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Simple chess board demo"),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          spacing: 10,
          children: [
            ElevatedButton(
              onPressed: () => _goToSimpleBoard(context),
              child: Text("See simple board"),
            ),
            ElevatedButton(
              onPressed: () => _goToInteractiveBoard(context),
              child: Text("See interactive board"),
            ),
            ElevatedButton(
              onPressed: () => _goToCustomIndicatorsBoard(context),
              child: Text("See custom indicators board"),
            ),
            ElevatedButton(
              onPressed: () => _goToPromotionHandling(context),
              child: Text("See nicer promotion handling"),
            )
          ],
        ),
      ),
    );
  }
}
9
likes
150
points
358
downloads

Publisher

verified publisherpassion-programmation-laurentdu64.blogspot.com

Weekly Downloads

A simple chess board widget which do not handle game state, but with several options for board orientation, adding arrows, and others.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

chess, flutter

More

Packages that depend on simple_chess_board