super_tik_tac_toe/lib/clasic.dart

62 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'state.dart';
import 'game.dart';
class ClassicGame extends StatefulWidget {
const ClassicGame({super.key});
@override
State<ClassicGame> createState() => _ClassicGameState();
}
class _ClassicGameState extends State<ClassicGame> {
TTCState turn = TTCState.x;
late TTCGame game;
String get turnText => switch (turn) {
TTCState.empty => "",
TTCState.x => "X",
TTCState.o => "O",
};
void onTurnEnd() {
setState(() {
turn = switch (turn) {
TTCState.x => TTCState.o,
TTCState.o => TTCState.x,
_ => TTCState.x
};
});
}
@override
void initState() {
super.initState();
game = TTCGame(
turn: turn,
onClick: onTurnEnd,
);
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
const Spacer(flex: 5),
Center(
child: Text(
"$turnText's turn",
style: const TextStyle(fontSize: 30, fontWeight: FontWeight.bold),
)),
const Spacer(flex: 1),
TTCGame(
turn: turn,
onClick: onTurnEnd,
),
const Spacer(flex: 5),
],
);
}
}