Select Git revision
settings_game.dart
-
Benoît Harrault authoredBenoît Harrault authored
letters.dart 3.10 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({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
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;
Data _myProvider = Provider.of<Data>(context);
List<String> lettersList = letters.split('');
List<Widget> keys = [];
lettersList.forEach((key) {
keys.add(
Padding(
padding: const EdgeInsets.all(2.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
primary: Colors.grey,
onPrimary: Colors.white,
shadowColor: 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) => DialogGameOver(victory),
);
}
} else {
_myProvider.addError();
if (_myProvider.errors == 8) {
await Future.delayed(Duration(milliseconds: 900)); //????
_myProvider.addDefeat();
showDialog(
context: context,
builder: (context) => DialogGameOver(defeat),
);
}
}
},
child: Text(
key,
textAlign: TextAlign.center,
),
),
),
);
});
return Container(