Files
check-flutter/src/main.dart
T

105 lines
2.8 KiB
Dart

import 'package:flutter/material.dart';
import 'game.dart';
import 'tutFun.dart';
void main() {
runApp(const MainApp());
}
class GamePage extends StatelessWidget {
GamePage({super.key});
final Game _game = Game();
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
spacing: 5.0,
children: [
for (final guess in _game.guesses)
Row(
spacing: 5.0,
children: [
for (final letter in guess)
Tile(letter.char, letter.type)
],
)
],
),
);
}
}
class GuessInput extends StatelessWidget {
GuessInput({super.key, required this.onSubmitGuess});
final void Function(String) onSubmitGuess;
@override
Widget build(BuildContext context) {
return Row(
children: [
Expanded(
child: Padding(
child: TextField(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(35)),
),
),
maxLength: 5,
),
padding: const EdgeInsets.all(8.0),
),
)
]
);
}
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Align(
alignment: Alignment.centerLeft,
child: Text("Birdle"),
),
),
body: Center(child: GamePage()),
),
);
}
}
class Tile extends StatelessWidget {
const Tile(this.letter, this.hitType, {super.key});
final String letter;
final HitType hitType;
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Text(
letter.toUpperCase(),
style: Theme.of(context).textTheme.titleLarge,
),
),
decoration: BoxDecoration(
border: Border.all(color: Colors.grey.shade300),
color: tutTileColor(hitType),
),
height: 60,
width: 60,
);
}
}