Eu modifiquei o nome do robô pessoal para SkyNet e adicionei uma função para que ele realize cálculos simples ( as 4 operações ).
Iniciando com a Pergunta "print('Você quer sabe sobre as horas, dias e anos ou quer fazer um calculo matemático ?');"
E com base no código já existente fiz a função "isThisCalculation()" que confirma se o usuário quer fazer um calculo, assim ele entra na função "calculationQuestion()" onde vai ser solicitado os valores e qual operação vai ser realizada para printar o resultado.
import 'dart:io';
import 'questions/time_questions.dart';
void main() async {
String skyNet = 'SkyNet:\n';
var a = true;
String usuario = '';
print('-- Iniciando a Skynet, aguarde..--');
print('skyNet:\n Oi :) Este é o inicio de um grande aventura \n Como posso ajudar?\n');
print('Você quer sabe sobre as horas, dias e anos ou quer fazer um calculo matemático ?');
do {
usuario = stdin.readLineSync().toString();
print('-- Processando pergunta, aguarde..--');
if (usuario.contains('xau') ||
usuario.contains('Xau') ||
usuario.contains('Adeus') ||
usuario.contains('adeus')) {
a = false;
print(skyNet + ' Até a proxima!!');
} else if (TimeQuestions(usuario).isThisTime()) {
// verificar antes, assim não fazemos toda a função sem precisar.
TimeQuestions(usuario).timeQuestion();
print('E agora? você quer sabe sobre as horas, dias e anos ou quer fazer outra conta Matemática?');
} else if (TimeQuestions(usuario).isThisCalculation()) {
TimeQuestions(usuario).calculationQuestion();
print('E agora? você quer sabe sobre as horas, dias e anos ou quer fazer outra conta Matemática?');
} else {
print(skyNet +
' Não fui treinado para responder a essa pergunta \n Desculpe :( ');
print(skyNet + ' Você pode fazer outra pergunta ou dizer Adeus');
}
} while (a);
print('--Encerrando skyNet--');
}
time_questions.dart
bool isThisCalculation() {
if (question.contains('Conta') ||
question.contains('conta') ||
question.contains('calculo') ||
question.contains('Calculo')) {
isThisCalculationQuestion = true;
}
return isThisCalculationQuestion;
}
calculationQuestion() {
print('Ok, entendi, informe o primeiro numero:');
number1 = double.parse(stdin.readLineSync().toString());
print('Informe a operação? (Ex. +, -, x, /)\n');
qualCalculo = stdin.readLineSync().toString();
print('Informe o segundo numero');
number2 = double.parse(stdin.readLineSync().toString());
print('Ok, Aguarde processando o calculo...');
if (qualCalculo == '+') {
double _result = number1 + number2;
print('O resultado do seu calculo é $_result');
} else if (qualCalculo == '-') {
double _result = number1 - number2;
print('O resultado do seu calculo é $_result');
} else if (qualCalculo == 'x' || qualCalculo == 'X') {
double _result = number1 * number2;
print('O resultado do seu calculo é $_result');
} else if (qualCalculo == '/') {
double _result = number1 / number2;
print('O resultado do seu calculo é $_result');
}
}