sense_the_rythm

rythm game for ESense Earable
git clone git://source.orangerot.dev:/university/sense_the_rythm.git
Log | Files | Refs | README | LICENSE

game_over.dart (2052B)


      1 import 'package:flutter/material.dart';
      2 import 'package:sense_the_rhythm/models/note.dart';
      3 import 'package:sense_the_rhythm/utils/simfile.dart';
      4 import 'package:sense_the_rhythm/screens/level.dart';
      5 
      6 class GameOverStats extends StatelessWidget {
      7   const GameOverStats({super.key, required this.simfile, required this.notes});
      8 
      9   final Simfile simfile;
     10   final List<Note> notes;
     11 
     12   @override
     13   Widget build(BuildContext context) {
     14     int hits = notes.where((note) => note.wasHit == true).length;
     15     int misses = notes.where((note) => note.wasHit == false).length;
     16     int total = notes.length;
     17     int percent = (hits.toDouble() / total.toDouble() * 100).toInt();
     18 
     19     return Scaffold(
     20       appBar: AppBar(
     21         leading: IconButton(
     22             onPressed: () => Navigator.pop(context),
     23             icon: Icon(Icons.arrow_back)),
     24         title: Text('Game Stats'),
     25       ),
     26       body: Center(
     27         child: Column(
     28           children: [
     29             Text('  $percent%',
     30                 style: TextStyle(
     31                     fontSize: 60,
     32                     fontWeight: FontWeight.bold,
     33                     color: Colors.orange)),
     34             DataTable(columns: [
     35               DataColumn(label: Container()),
     36               DataColumn(label: Container()),
     37             ], rows: [
     38               DataRow(cells: [
     39                 DataCell(Text('Hits')),
     40                 DataCell(Text(hits.toString())),
     41               ]),
     42               DataRow(cells: [
     43                 DataCell(Text('Misses')),
     44                 DataCell(Text(misses.toString())),
     45               ]),
     46               DataRow(cells: [
     47                 DataCell(Text('Total')),
     48                 DataCell(Text(total.toString())),
     49               ]),
     50             ]),
     51             TextButton(
     52                 onPressed: () {
     53                   Route route =
     54                       MaterialPageRoute(builder: (context) => Level(simfile));
     55                   Navigator.pushReplacement(context, route);
     56                 },
     57                 child: Text('Retry'))
     58           ],
     59         ),
     60       ),
     61     );
     62   }
     63 }