Select Git revision
-
Benoît Harrault authoredBenoît Harrault authored
letters.dart 3.14 KiB
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../provider/data.dart';
import '../utils/constants.dart';
import '../widgets/dialog_gameover.dart';
class LetterButtons extends StatelessWidget {
const LetterButtons({super.key});
@override
Widget build(BuildContext context) {
final Orientation orientation = MediaQuery.of(context).orientation;
var size = MediaQuery.of(context).size;
final double paddingTop = MediaQuery.of(context).padding.top;
final double itemHeight = (size.height - paddingTop) / 2;
final double itemWidth = size.width / 2;
final Data myProvider = Provider.of<Data>(context);
final List<String> lettersList = letters.split('');
final List<Widget> keys = [];
for (var key in lettersList) {
keys.add(
Padding(
padding: const EdgeInsets.all(2.0),
child: TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.grey,
foregroundColor: Colors.white,
shadowColor: const Color(accent),
),
onPressed: myProvider.usedLetters.contains(key)
? null
: () async {
myProvider.updateUsedLetters(key);
if (myProvider.secretWord.contains(key)) {
for (int index = 0; index < myProvider.secretWord.length; index++) {
if (key == myProvider.secretWord[index]) {
myProvider.updateHiddenWord(index, key);
}
}
if (myProvider.hiddenWord == myProvider.secretWord) {
myProvider.addVictory();
showDialog(
context: context,
builder: (context) => const DialogGameOver(victory),
);
}
} else {
myProvider.addError();
if (myProvider.errors == 8) {
await Future.delayed(const Duration(milliseconds: 900)); //????
myProvider.addDefeat();
showDialog(
context: context,
builder: (context) => const DialogGameOver(defeat),
);
}
}
},
child: Text(
key,
textAlign: TextAlign.center,
),
),
),
);