zhoujian5457 2017-11-05 12:21 采纳率: 100%
浏览 982
已采纳

用Flash写一个计算题小游戏,循环过程中出错了,请求各位的帮助

游戏的思路:
(1)num1,num2为随机数
(2)运算符号为随机加减号
(3)input中填入数字,提交后判断对错yes或者no输出到output
(4)循环出题,做完十道题后输出over

图片说明
图片说明

出现的错误:
(1)做了几题之后,明明回答正确却输出no。且继续做题时持续输出no.
(2)不到十次就输出over

我的代码:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip
{

var number1:uint;
var number2:uint;
var answer:int;
var b:Number;
var count:uint;

    public function Main()
    {
        count=0;
        init();
    }

    function init():void
    {
        number1=Math.ceil(Math.random()*10);
        number2=Math.ceil(Math.random()*10);
        num1.text=""+number1;
        num2.text=""+number2;
        input.text="";
        b=Math.random();
        countGame();

    }

    function countGame():void
    {
        if(count<10)
        {
            count++;
            choseSymbol();

        }
        else
        {
            output.text="over";
            count=0;
        }
    }

    function choseSymbol():void
    {
        if(b>=0.5){
            a.text="+";
            submit.addEventListener(MouseEvent.CLICK,onSubmitClick1);
        }
        else{
            a.text="-";
            submit.addEventListener(MouseEvent.CLICK,onSubmitClick2);
        }
    }

    function onSubmitClick1(event:MouseEvent):void
    {
        answer=int(input.text);
        if(answer==number1+number2)
        {
            output.text="yes";
        }
        else
        {
            output.text="no";

        }
        init();
    }

    function onSubmitClick2(event:MouseEvent):void
    {
        answer=int(input.text);
        if(answer==number1-number2)
        {
            output.text="yes";
        }
        else
        {
            output.text="no";
        }
        init();
    }
}

}

  • 写回答

1条回答 默认 最新

  • hero82748274 2017-11-05 15:41
    关注

    package
    {
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    public class Main extends MovieClip
    {

        var number1:uint;
        var number2:uint;
        var answer:int;
        var b:Number;
        var count:uint;
        public function Main()
        {
            count = 0;
            init();
        }
    
        function init():void
        {
            number1 = Math.ceil(Math.random() * 10);
            number2 = Math.ceil(Math.random() * 10);
            num1.text = "" + number1;
            num2.text = "" + number2;
            input.text = "";
            b = Math.random();
            countGame();
    
        }
    
        function countGame():void
        {
            if (count<10)
            {
                count++;
                choseSymbol();
    
            }
            else
            {
                output.text = "over";
                count = 0;
            }
        }
    
        function choseSymbol():void
        {
            submit.removeEventListener(MouseEvent.CLICK,onSubmitClick2);
            submit.removeEventListener(MouseEvent.CLICK,onSubmitClick1);
            if (b>=0.5)
            {
                a.text = "+";
                submit.addEventListener(MouseEvent.CLICK,onSubmitClick1);
            }
            else
            {
                a.text = "-";
                submit.addEventListener(MouseEvent.CLICK,onSubmitClick2);
            }
        }
    
        function onSubmitClick1(event:MouseEvent):void
        {
            answer = int(input.text);
            trace(answer,(number1+number2))
            if (answer==(number1+number2))
            {
                output.text = "yes";
            }
            else
            {
                output.text = "no";
    
            }
            init();
        }
    
        function onSubmitClick2(event:MouseEvent):void
        {
            answer = int(input.text);
            trace(answer,(number1-number2))
            if (answer==(number1-number2))
            {
                output.text = "yes";
            }
            else
            {
                output.text = "no";
            }
            init();
        }
    }
    

    }

    你的监听重复监听导致问题,多检测一下问题,trace 排查一下就行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件