Вычислить два случайных чисел в флаттер - PullRequest
0 голосов
/ 29 января 2019

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

0 голосов
/ 02 февраля 2019

Большое спасибо Джерорджу и Извините за мой абсцесс.

Мне помогли решить эту проблему с помощью дротика

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'); 
0 голосов
/ 29 января 2019

Ошибка говорит вам, что вы пытаетесь добавить два 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();
  }
}
...