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 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的