Вычислить два случайных чисел в флаттер
Я пытаюсь сгенерировать два разных случайных числа и сложить их вместе, но Флаттер, похоже, не любит мою математику. Я продолжаю получать сообщение, что "+" не определено для класса Random.
import 'package:flutter/material.dart';
import 'dart:math';
void main() => runApp(MaterialApp(
title: 'Random Numbers',
theme: ThemeData(primarySwatch: Colors.orange),
home: MyHome(),
));
class MyHome extends StatefulWidget {
@override
_MyHomeState createState() => _MyHomeState();
}
class _MyHomeState extends State<MyHome> {
@override
Widget build(BuildContext context) {
var num1 = new Random();
for (var i = 0; i < 10; i++) {
print(num1.nextInt(10));
}
var num2 = new Random();
for (var i = 0; i < 10; i++) {
print(num2.nextInt(10));
}
//var sum = num1 + num2;
return Container();
}
}
Моя цель - показать что-то вроде этого: "2 + 5 = ", где пользователь заполнит ответ. Если правильно, сделай это, сделай это.
2 ответа
Ошибка говорит вам, что вы пытаетесь добавить два Random
объекты, а не два числа. Вы печатаете их правильно, используя nextInt()
в ваших циклах, но когда вы пытаетесь суммировать их, вы используете исходную переменную типа Random
,
Попробуй это:
class _MyHomeState extends State<MyHome> {
@override
Widget build(BuildContext context) {
// Instantiate a Random class object
var numGenerator = new Random();
//You don't need a second loop because it was the same exact code,
//only with a different variable name.
for (var i = 0; i < 10; i++) {
print(numGenerator.nextInt(10));
}
// Save the numbers you generated. Each call to nextInt returns a new one
var num1 = numGenerator.nextInt(10);
var num2 = numGenerator.nextInt(10);
var sum = num1 + num2;
//use num1, num2 and sum as you like
return Container();
}
}
Спасибо большое, Джордж и извините за мое отсутствие.
Я получил некоторую помощь, чтобы решить это через дротик
Random seed = Random();
const int MAX_VALUE = 10;
int val1 = seed.nextInt(MAX_VALUE);
int val2 = seed.nextInt(MAX_VALUE);
int sum = val1 + val2;
print('$val1 + $val2 = $sum');