Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging I';我是颤振的初学者,如何修复此代码?_Debugging_Flutter_Dart - Fatal编程技术网

Debugging I';我是颤振的初学者,如何修复此代码?

Debugging I';我是颤振的初学者,如何修复此代码?,debugging,flutter,dart,Debugging,Flutter,Dart,我在这里得到随机数,用于我的加法、减法、乘法问题 import 'dart:math'; import 'package:dart_random_choice/dart_random_choice.dart'; import 'package:flutter/material.dart'; gameWin告诉玩家是否通过了数学考试,是否可以进入下一关 Map questions = { "Addition": AdditionWidget( num1: num1,

我在这里得到随机数,用于我的加法、减法、乘法问题

    import 'dart:math';

import 'package:dart_random_choice/dart_random_choice.dart';
import 'package:flutter/material.dart';
gameWin告诉玩家是否通过了数学考试,是否可以进入下一关

Map questions = {
  "Addition": AdditionWidget(
    num1: num1,
    num2: num2,
  ),
  "Subtraction": SubtractionWidget(
    num1: num1,
    num2: num2,
  ),
  "Multiplication": MultiplicationWidget(
    num1: num1,
    num2: num2,
  )
};
  @override
  void initState() {
    super.initState();
  }

  Widget build(BuildContext context) {
    initializeGame();

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Math Rush'),
        ),
        body: Center(
          child: Row(
            children: <Widget>[
              question,
              Flexible(
                child: TextField(
                  controller: answerController,
                  onChanged: (text) {
                    switch (question) {
                      case 'Addition':
                        {
                          if (num1 + num2 == int.parse(text)) {
                            gameWin = true;
                            checkAnswerIsCorrect();
                          }
                        }
                        break;

                        case 'Subtraction':
                        {
                          if (num1 - num2 == int.parse(text)) {
                            gameWin = true;
初始化游戏是一个函数,每当新游戏开始并选择 随机数学方程

bool gameWin = false;

TextEditingController answerController;

不清楚你有什么问题。你的标题需要更清楚。请在顶部告诉我们您看到了什么错误。顺便说一句,您没有正确使用
Random
。您应该实例化一个随机数生成器并重复从中获取随机数,而不是实例化多个随机数生成器。只能在@TommieC处进行第二次实例化。标题应该被编辑。但随机性不应该是他的主要问题;-)
initializeGame() {
  String typeOfQuestion = randomChoice(typeOfQuestions);

  switch (typeOfQuestion) {
    case 'Addition':
      {
        question = questions['Addition'];
      }
      break;
    case 'Subtraction':
      {
        question = questions['Subtraction'];
      }
      break;
    case 'Multiplication':
      {
        question = questions['Addition'];
      }
      break;
    default:
      {
        question = questions['Subtraction'];
      }
      break;
  }
}

class Game extends StatefulWidget {
  _GameState createState() => _GameState();
}

class _GameState extends State<Game> {
  @override
  void initState() {
    super.initState();
  }

  Widget build(BuildContext context) {
    initializeGame();

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Math Rush'),
        ),
        body: Center(
          child: Row(
            children: <Widget>[
              question,
              Flexible(
                child: TextField(
                  controller: answerController,
                  onChanged: (text) {
                    switch (question) {
                      case 'Addition':
                        {
                          if (num1 + num2 == int.parse(text)) {
                            gameWin = true;
                            checkAnswerIsCorrect();
                          }
                        }
                        break;

                        case 'Subtraction':
                        {
                          if (num1 - num2 == int.parse(text)) {
                            gameWin = true;
                            checkAnswerIsCorrect();
                          }
                        }
                        break;
                        case 'Multiplication':
                        {
                          if (num1 * num2 == int.parse(text)) {
                            gameWin = true;
                            checkAnswerIsCorrect();
                          }
                        }
                    }
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }

  checkAnswerIsCorrect() {
    setState(
      () {
        if (gameWin == true) {
          num1 = Random().nextInt(100);
          num2 = Random().nextInt(100);
          initializeGame();
        }
      },
    );
  }
}