Love Calculator (Error)
Error in firstname and secondname.
Main.dart
import 'package:flutter/material.dart';
import 'calculation.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Love Calculator',
home: MyCalculator(),
);
}
}
class MyCalculator extends StatefulWidget {
@override
_MyCalculatorState createState() => _MyCalculatorState();
}
class _MyCalculatorState extends State<MyCalculator> {
String firstName = "";
String secondName = "";
int score = 0;
void loveScore() {
// score = Random().nextInt(40) + 40;
score = calculation(firstName: firstName, secondName: secondName);
Navigator.of(context).push(MaterialPageRoute(builder: (context) => ScorePage(score: score)));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('LOVE CALCULATOR'),
),
body: Column(crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[
Flexible(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Hero(
tag: 'lovegif',
child: Image(image: AssetImage('assets/images/logo.gif')),
),
)),
TextField(
onChanged: (value) {
firstName = value;
},
decoration: InputDecoration(
hintText: 'Enter your name',
contentPadding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(32.0)),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.lightBlueAccent, width: 1.0),
borderRadius: BorderRadius.all(Radius.circular(32.0)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.lightBlueAccent, width: 2.0),
borderRadius: BorderRadius.all(Radius.circular(32.0)),
),
),
),
TextField(
onChanged: (value) {
secondName = value;
},
decoration: InputDecoration(
hintText: 'Enter your partner\'s name',
contentPadding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(32.0)),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.lightBlueAccent, width: 1.0),
borderRadius: BorderRadius.all(Radius.circular(32.0)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.lightBlueAccent, width: 2.0),
borderRadius: BorderRadius.all(Radius.circular(32.0)),
),
),
),
RaisedButton(
onPressed: () {
loveScore();
},
child: Text('Calculate'),
color: Colors.blue,
),
]),
);
}
}
class ScorePage extends StatelessWidget {
const ScorePage({
Key? key,
required this.score,
}) : super(key: key);
final int score;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
Flexible(
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Hero(
tag: 'lovegif',
child: Image(image: AssetImage('images/logo.gif')),
),
)),
Text(
'Your Score is : $score',
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
),
]),
);
}
}
calculation.dart
import 'package:flutter/material.dart';
int calculation({String firstName, String secondName}) {
int finalScore;
List<String> firstList = firstName.toLowerCase().split('');
List<String> secondList = secondName.toLowerCase().split('');
List<String> magicWord = firstList + "loves".split('') + secondList;
print(magicWord);
var nameMap = new Map();
magicWord.forEach((f) {
nameMap.containsKey(f) ? nameMap[f]++ : nameMap[f] = 1;
});
print(nameMap.values);
List magicCode = nameMap.values.toList();
print(magicCode);
List score;
while (magicCode.length > 2) {
score = _calculate(magicCode);
magicCode = score;
print(score);
}
finalScore = magicCode[0] * 10 + magicCode[1];
print(finalScore);
return finalScore;
}
List _calculate(List magicCode) {
int countsum;
var sum = new List();
do {
countsum = magicCode.first + magicCode.last;
if (countsum > 9) countsum -= 9;
sum.add(countsum);
magicCode.removeLast();
magicCode.removeAt(0);
} while (magicCode.length >= 2);
print(magicCode);
if (magicCode.isNotEmpty) {
sum.add(magicCode.first);
}
return sum;
}
Comments
Post a Comment