| 
									
										
										
										
											2025-01-07 06:05:28 +01:00
										 |  |  | import 'package:flutter/material.dart'; | 
					
						
							| 
									
										
										
										
											2025-01-11 18:22:32 +01:00
										 |  |  | import 'package:sense_the_rhythm/models/note.dart'; | 
					
						
							|  |  |  | import 'package:sense_the_rhythm/utils/simfile.dart'; | 
					
						
							|  |  |  | import 'package:sense_the_rhythm/screens/level.dart'; | 
					
						
							| 
									
										
										
										
											2025-01-07 06:05:28 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class GameOverStats extends StatelessWidget { | 
					
						
							|  |  |  |   const GameOverStats({super.key, required this.simfile, required this.notes}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   final Simfile simfile; | 
					
						
							|  |  |  |   final List<Note> notes; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   Widget build(BuildContext context) { | 
					
						
							|  |  |  |     int hits = notes.where((note) => note.wasHit == true).length; | 
					
						
							|  |  |  |     int misses = notes.where((note) => note.wasHit == false).length; | 
					
						
							|  |  |  |     int total = notes.length; | 
					
						
							|  |  |  |     int percent = (hits.toDouble() / total.toDouble() * 100).toInt(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return Scaffold( | 
					
						
							|  |  |  |       appBar: AppBar( | 
					
						
							|  |  |  |         leading: IconButton( | 
					
						
							|  |  |  |             onPressed: () => Navigator.pop(context), | 
					
						
							|  |  |  |             icon: Icon(Icons.arrow_back)), | 
					
						
							|  |  |  |         title: Text('Game Stats'), | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |       body: Center( | 
					
						
							|  |  |  |         child: Column( | 
					
						
							|  |  |  |           children: [ | 
					
						
							|  |  |  |             Text('  $percent%', | 
					
						
							|  |  |  |                 style: TextStyle( | 
					
						
							|  |  |  |                     fontSize: 60, | 
					
						
							|  |  |  |                     fontWeight: FontWeight.bold, | 
					
						
							|  |  |  |                     color: Colors.orange)), | 
					
						
							|  |  |  |             DataTable(columns: [ | 
					
						
							|  |  |  |               DataColumn(label: Container()), | 
					
						
							|  |  |  |               DataColumn(label: Container()), | 
					
						
							|  |  |  |             ], rows: [ | 
					
						
							|  |  |  |               DataRow(cells: [ | 
					
						
							|  |  |  |                 DataCell(Text('Hits')), | 
					
						
							|  |  |  |                 DataCell(Text(hits.toString())), | 
					
						
							|  |  |  |               ]), | 
					
						
							|  |  |  |               DataRow(cells: [ | 
					
						
							|  |  |  |                 DataCell(Text('Misses')), | 
					
						
							|  |  |  |                 DataCell(Text(misses.toString())), | 
					
						
							|  |  |  |               ]), | 
					
						
							|  |  |  |               DataRow(cells: [ | 
					
						
							|  |  |  |                 DataCell(Text('Total')), | 
					
						
							|  |  |  |                 DataCell(Text(total.toString())), | 
					
						
							|  |  |  |               ]), | 
					
						
							|  |  |  |             ]), | 
					
						
							|  |  |  |             TextButton( | 
					
						
							|  |  |  |                 onPressed: () { | 
					
						
							| 
									
										
										
										
											2025-01-07 06:38:34 +01:00
										 |  |  |                   Route route = | 
					
						
							|  |  |  |                       MaterialPageRoute(builder: (context) => Level(simfile)); | 
					
						
							| 
									
										
										
										
											2025-01-07 06:05:28 +01:00
										 |  |  |                   Navigator.pushReplacement(context, route); | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 child: Text('Retry')) | 
					
						
							|  |  |  |           ], | 
					
						
							|  |  |  |         ), | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |