AS3:使用随机问题创建多项选择游戏

时间:2014-03-15 13:29:40

标签: actionscript-3

是否可以创建随机提问的多选游戏?或任何问题随机出现的问答游戏,只使用flash和actionscript 3.0?任何答案都将非常感谢。

2 个答案:

答案 0 :(得分:0)

首先,只要随机化测验,你应该创建一个存储测验句等内容的数组。并且这个数组使用以下的algorthims进行洗牌。

var quiz:Array = 
[
  "1+1 = ?",
  "2+2 = ?",
  "3+3 = ?",
  "4+4 = ?",
  "5+5 = ?"
];

function shuffleArray($arr:Array):Array
{
    var l:Number = $arr.length - 1;

    for (var it:uint = 0; it<l; it++)
    {
        var r:int = Math.round(Math.random() * l);
        var tmp:String = $arr[it];
        $arr[it] = $arr[r];
        $arr[r] = tmp;
    }
    return $arr;
}

var refreshQuiz:Array = shuffleArray(quiz);

trace(refreshQuiz);

如果您想构建一个真正的测验游戏,请参阅以下骨架代码。此代码向用户显示随机测验。在文本字段中输入每个答案,然后输入正确答案,正确答案。否则,它显示错误的答案是一个简单的游戏。

var quizModel:Array = [{q:"1+1 = ?", a:"2"}, {q:"5+5 = ?", a:"10"}, {q:"2+2 = ?", a:"4"}, {q:"6+6 = ?", a:"12"},{q:"8-7 = ?",a:"1"}];

var user_ans:Array = new Array();
var newQuizModel:Array = shuffleArray(quizModel);
stage.addEventListener(KeyboardEvent.KEY_DOWN, go);

function shuffleArray(arr:Array):Array
{
    var l:Number = arr.length - 1;

    for (var it:uint = 0; it<l; it++)
    {
        var r:int = Math.round(Math.random() * l);
        var tmp:Object = arr[it];
        arr[it] = arr[r];
        arr[r] = tmp;
    }
    return arr;
}

var index:int = 0;
questions_txt.text = newQuizModel[index]["q"];
var userAnswer:String = "";
function go(k:KeyboardEvent):void
{
    if (k.keyCode != Keyboard.ENTER)
    {
        return;
    }

    userAnswer = answers_txt.text;

    if (userAnswer == newQuizModel[index]["a"])
    {
        answers_txt.text = "Your answer is correct!";
    }
    else
    {
        answers_txt.text = "Your answer is wrong";
        return;
    }

    index++;
    index%= quizModel.length;
    showQuiz(index);
}

function showQuiz(idx:int):void
{
    questions_txt.text = newQuizModel[idx]["q"];
}

showQuiz(index);

答案 1 :(得分:0)

所以你的问题归结为随机排序一个数组是AS3。关于此问题还有另一个detailed answer,但摘要是:

var arr:Array = [ item1, item2, item3, item4, ... ];
arr.sort(function():int { return Math.random()<.5 ? -1 : 1; });

其中arr是你的问题项目数组 - 可能是字符串,可能是带有问题和答案细节的对象,但这是对数组进行随机排序的一种方法。