Вычислить два случайных чисел в флаттер

Я пытаюсь сгенерировать два разных случайных числа и сложить их вместе, но Флаттер, похоже, не любит мою математику. Я продолжаю получать сообщение, что "+" не определено для класса 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'); 
Другие вопросы по тегам